使用说明
项目简介
本项目 'matlab-mcp' 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将强大的 MATLAB 计算能力桥接到大型语言模型 (LLM) 应用中。通过此服务器,LLM 客户端(如 Claude)可以调用 MATLAB 执行脚本、函数,并获取计算结果、图形和工作区变量,从而扩展 LLM 在科学计算和数据分析领域的应用能力。
主要功能点
- MATLAB 代码执行: 支持创建、编辑和执行 MATLAB 脚本和函数。
- 结果返回: 返回 MATLAB 脚本或函数的文本输出、生成的图形(PNG 格式)以及工作区变量。
- 工具集成: 通过 MCP 协议向 LLM 客户端暴露 MATLAB 的功能,使其可以作为工具被 LLM 调用。
- 资源管理: 将 MATLAB 脚本和函数存储在服务器本地,并可通过资源路径访问脚本内容。
安装步骤
-
环境准备:
- 确保已安装 Python 3.11 (不支持 3.12 和 3.13)。
- 确保已安装 MATLAB R2024a 或兼容版本。
- 安装 uv 包管理器 (如果未安装,请参考 uv installation)。
-
创建 Python 虚拟环境: 打开终端,进入项目目录,执行以下命令:
# 锁定 Python 版本为 3.11 uv python pin 3.11 # 创建虚拟环境 uv venv # 激活虚拟环境 source .venv/bin/activate -
安装 MCP 库: 在激活的虚拟环境中,执行命令安装 'mcp' 库:
uv add "mcp[cli]" -
安装 MATLAB Engine: 首次运行服务器时,MATLAB Engine 会尝试自动安装。服务器会根据 'MATLAB_PATH' 环境变量指定的 MATLAB 安装路径查找并安装 Engine。如果自动安装失败,请参考仓库 README 手动安装。
服务器配置
要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供以下配置信息。以下是 Claude Desktop 'claude_desktop_config.json' 文件的配置示例,请根据您的实际情况修改:
{ "mcpServers": { "matlab": { // 服务器名称,客户端用以标识,可以自定义 "command": "uv", // 启动服务器的命令,这里使用 uv 包管理器 "args": [ // 启动参数 "--directory", // 指定工作目录 "/absolute/path/to/matlab-mcp", // **请替换为 matlab-mcp 项目的绝对路径** "run", // uv run 命令,用于执行 Python 脚本 "matlab_server.py" // 要执行的服务器脚本文件名 ], "env": { // 环境变量 "MATLAB_PATH": "/Applications/MATLAB_R2024a.app" // **请替换为您的 MATLAB 安装路径** } } } }
配置说明:
- '"matlab"': 服务器的名称,您可以自定义,客户端会使用这个名称来引用该服务器。
- '"command": "uv"': 指定用于启动服务器的命令。这里使用 'uv' 包管理器来运行 Python 脚本。
- '"args"': 启动参数列表。
- '"--directory", "/absolute/path/to/matlab-mcp"': 指定 'uv run' 命令的工作目录为您的 'matlab-mcp' 项目的绝对路径。请务必替换为实际路径。
- '"run", "matlab_server.py"': 告诉 'uv' 运行 'matlab_server.py' 脚本。
- '"env"': 环境变量设置。
- '"MATLAB_PATH": "/Applications/MATLAB_R2024a.app"': 指定 MATLAB 的安装路径。请务必替换为您实际的 MATLAB 安装路径,并使用绝对路径。
注意:
- 请将 '/absolute/path/to/matlab-mcp' 和 '/Applications/MATLAB_R2024a.app' 替换为您的实际路径。
- 配置文件中请使用绝对路径,避免使用相对路径。
基本使用方法
- 启动 MCP 客户端 (如 Claude Desktop)。
- 在客户端中配置并连接到名为 "matlab" (或您在配置中设置的名称) 的 MCP 服务器。
- 使用客户端的功能,例如在 Claude 中,您可以使用 '@matlab' 前缀来调用 MATLAB 服务器提供的工具,例如:
- '@matlab.create_matlab_script script_name="my_script" code="x = 1:10; plot(x, sin(x));"' (创建 MATLAB 脚本)
- '@matlab.execute_matlab_script script_name="my_script"' (执行 MATLAB 脚本)
- '@matlab.call_matlab_function function_name="my_function" args=[1, 2]' (调用 MATLAB 函数,假设已定义 my_function)
具体工具的使用和参数请参考仓库 'README.md' 文件中 "Features" 部分的描述,以及代码中 '@mcp.tool()' 装饰器下方函数的文档字符串。
信息
分类
AI与计算