项目简介

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 传输协议与客户端交互。

安装步骤

  1. 克隆仓库

    git clone https://github.com/bmorphism/penrose-mcp.git
    cd penrose-mcp
  2. 安装依赖 确保你已安装 Node.js 和 npm。在项目根目录下运行:

    npm install
  3. 构建项目

    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' 的路径。

基本使用方法

  1. 启动服务器 在项目根目录下,或者 MCP 客户端配置的 'command' 所在的目录中,启动服务器。由于配置中使用的是 Stdio 传输,服务器会在终端中以前台进程方式运行。

  2. 使用 MCP 客户端发送请求 你可以使用任何兼容 MCP 协议的客户端与 Penrose MCP Server 进行交互。客户端需要按照 MCP 协议规范,构造 JSON-RPC 请求,通过 Stdio 发送给服务器。

    例如,客户端可以发送 'ListToolsRequest' 请求列出服务器提供的工具,或者发送 'CallToolRequest' 请求调用 'create_domain'、'create_substance'、'create_style' 或 'generate_diagram' 等工具来创建和生成数学图表。

  3. 查看服务器响应 服务器会将处理结果通过 JSON-RPC 响应返回给客户端。对于 'generate_diagram' 工具,服务器会返回包含 SVG 格式图表数据的响应,客户端可以解析并展示图表。

提示: 由于此服务器使用内存存储资源,服务器重启后所有已创建的 Domain、Substance 和 Style 数据将会丢失。

信息

分类

AI与计算