Octave MCP服务器
用于非交互式执行Octave脚本的模型上下文协议(MCP)服务器。
特性
- 通过MCP协议执行Octave脚本
- 支持HTTP和stdio通信模式
- HTTP模式的内置安全性(仅限本地主机)
- 自动倍频程安装验证
先决条件
- 转到1.21+(用于构建/运行)
- GNU Octave已安装并在PATH中可用(测试版本8.4.0)
安装
- 克隆存储库:
git clone https://github.com/fmcato/octave-mcp.git
cd octave-mcp- 构建服务器:
go build ./cmd/octave-server用法
HTTP模式
启动HTTP服务器:
./octave-server -http localhost:8080标准模式
启动stdio服务器:
./octave-serverMCP工具使用
服务器提供两个工具:
run_octave-执行Octave脚本:
{
"script": "string"
}例子:
{
"script": "disp('Hello from Octave');"
}generate_plot-从Octave脚本生成图表:
{
"script": "string",
"format": "png|svg"
}例子:
{
"script": "plot([1,2,3,4]);",
"format": "png"
}绘图生成说明:
- 支持的输出格式:PNG或SVG
使用Docker运行
您可以使用Docker运行Octave MCP服务器,以便于部署和隔离。
Docker镜像使用多阶段构建过程:
- 构建阶段:使用
golang:alpine用于编译二进制文件 - 运行时阶段:使用官方
gnuoctave/octave图像 - 这种方法减小了最终图像大小并提高了安全性
使用Docker Compose(推荐)
构建并运行服务器:
docker-compose up --build服务器将在以下时间可用 http://localhost:8080.
直接使用Docker
塑造形象:
docker build -t octave-mcp -f docker/Dockerfile .运行容器:
docker run -p 8080:8080 octave-mcp测试Docker镜像
要验证Docker镜像是否正常工作:
- 启动容器:
docker-compose up -d- 使用MCP Inspector等工具验证服务器是否可访问http://localhost:8080/mcp
- 检查日志:
docker-compose logs octave-mcp- 停止容器:
docker-compose down配置
服务器接受以下标志:
-http:要侦听的HTTP地址(stdio模式为空)
环境变量
以下环境变量可用于配置服务器行为:
OCTAVE_SCRIPT_TIMEOUT:脚本执行超时(秒)(默认值:10)OCTAVE_CONCURRENCY_LIMIT:最大并发执行数(默认值:10)OCTAVE_SCRIPT_LENGTH_LIMIT:最大脚本长度(字符)(默认值:10000)OCTAVE_MCP_ALLOW_NON_LOCALHOST:设置为true允许非本地主机连接(默认:false).在生产环境中小心使用。
安全
- 扫描脚本以查找危险模式
- 过滤输出以删除敏感信息
- 使用具有受限权限的临时目录
在HTTP模式下运行时:
- 仅接受来自本地主机的连接(除非
OCTAVE_MCP_ALLOW_NON_LOCALHOST=true已设置) - 实现严格的CORS和安全标头
- 验证请求来源
许可证
此项目根据GNU通用公共许可证v3.0获得许可。看 许可证 获取完整的许可证文本。
