项目简介
Penrose MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,专为 Penrose 项目设计。Penrose 允许用户通过自然语言创建精美的数学图表。此 MCP 服务器作为 Penrose 的后端,提供了资源管理和工具调用能力,使得 LLM 客户端可以通过标准化的 MCP 协议与 Penrose 系统进行交互,从而实现数学图表的生成和管理。
主要功能点
- 资源管理:
- 托管和管理 Domain (DSL)、Substance 和 Style 这三种 Penrose 图表定义资源。
- 允许客户端列出和读取这些资源,方便 LLM 理解可用的图表定义。
- 工具调用:
- 提供创建 Domain、Substance 和 Style 的工具,以及根据这些定义生成图表的工具。
- 允许 LLM 客户端调用这些工具,驱动 Penrose 系统完成图表的创建和渲染过程。
- 基于标准 MCP 协议:
- 使用 JSON-RPC 协议进行通信,保证了与 MCP 客户端的兼容性。
- 通过 Stdio 传输协议与客户端交互。
安装步骤
-
克隆仓库
git clone https://github.com/bmorphism/penrose-mcp.git cd penrose-mcp -
安装依赖 确保你已安装 Node.js 和 npm。在项目根目录下运行:
npm install -
构建项目
npm run build构建成功后,会在 'dist' 目录下生成可执行文件。
服务器配置
MCP 客户端需要配置以下信息以连接到 Penrose MCP Server。以下是一个 JSON 格式的配置示例,请根据你的实际情况进行调整:
{ "serverName": "penrose-mcp", "command": "./dist/index.js", "args": [], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,设置为 "penrose-mcp" 即可。
- 'command': 服务器启动命令。这里假设你在项目根目录下运行 MCP 客户端,且已构建项目。'./dist/index.js' 指向构建后的服务器入口文件。如果你的客户端和服务器部署路径不同,请修改为正确的服务器脚本路径。
- 'args': 启动参数,本服务器不需要额外的启动参数,所以设置为空数组 '[]' 即可。
- 'transport': 传输协议,本服务器使用 Stdio,所以设置为 '"stdio"'。
注意: 请确保 MCP 客户端能够找到并执行 './dist/index.js' 文件。你可能需要根据你的系统和环境调整 'command' 的路径。
基本使用方法
-
启动服务器 在项目根目录下,或者 MCP 客户端配置的 'command' 所在的目录中,启动服务器。由于配置中使用的是 Stdio 传输,服务器会在终端中以前台进程方式运行。
-
使用 MCP 客户端发送请求 你可以使用任何兼容 MCP 协议的客户端与 Penrose MCP Server 进行交互。客户端需要按照 MCP 协议规范,构造 JSON-RPC 请求,通过 Stdio 发送给服务器。
例如,客户端可以发送 'ListToolsRequest' 请求列出服务器提供的工具,或者发送 'CallToolRequest' 请求调用 'create_domain'、'create_substance'、'create_style' 或 'generate_diagram' 等工具来创建和生成数学图表。
-
查看服务器响应 服务器会将处理结果通过 JSON-RPC 响应返回给客户端。对于 'generate_diagram' 工具,服务器会返回包含 SVG 格式图表数据的响应,客户端可以解析并展示图表。
提示: 由于此服务器使用内存存储资源,服务器重启后所有已创建的 Domain、Substance 和 Style 数据将会丢失。
信息
分类
AI与计算