项目简介
'mcpc' 仓库是一个monorepo项目,包含多个独立的Model Context Protocol (MCP) 服务器实现以及一个核心库,该核心库提供了基础功能和构建可组合MCP服务器的能力。这些MCP服务器可以作为大语言模型 (LLM) 应用的后端,为其提供特定的工具能力。
主要功能点
- 多种功能化服务器: 仓库中包含了以下MCP服务器实现示例:
- Code Runner MCP: 提供执行Python和JavaScript (Deno) 代码片段的能力,作为LLM的编程工具。
- OpenAPI Invoker MCP: 能够解析OpenAPI (Swagger) 规范,将API操作注册为LLM可调用的工具,实现LLM与外部API的集成。
- Diagram Thinker MCP: 提供根据文本描述生成思维导图(或其他支持的图表)的能力,并返回可访问的SVG图片链接。
- Template MCP: 一个基础的MCP服务器模板,用于快速开发新的MCP服务,提供一个简单的echo工具示例。
- 可组合MCP服务器: 核心库提供 'ComposableMCPServer' 类,允许将多个独立的MCP服务器的能力聚合到一个新的MCP服务器中,方便管理和扩展。
- 多种传输协议支持: 内置对 Stdiod (标准输入输出) 和 SSE (Server-Sent Events) 传输协议的支持,方便与不同类型的MCP客户端集成。
- 能力声明与工具注册: 符合MCP标准,服务器能够向客户端声明其提供的工具能力。
安装步骤
该项目主要使用 Deno 和 pnpm 构建。
- 克隆仓库:
git clone https://github.com/mcpc-tech/mcpc.git cd mcpc - 安装依赖:
pnpm install - 构建项目:
pnpm build
服务器配置 (供MCP客户端使用)
MCP服务器启动后,LLM客户端需要知道如何连接和与服务器通信。常见的连接方式是通过 Stdiod (标准输入输出) 或 HTTP (通常使用 SSE)。MCP客户端通常需要一个JSON格式的配置来建立连接,配置中需要包含以下信息:
- 'name': 服务器的唯一名称(字符串)。例如:"code-runner" 或 "diagram-thinker"。
- 'transportType': 使用的传输协议类型(字符串)。可以是 "stdio" 或 "sse"。
- 'command' (仅 Stdiod 需要): 启动MCP服务器进程的命令(字符串)。例如:'deno'。
- 'args' (仅 Stdiod 需要): 启动命令的参数列表(字符串数组)。例如:'["run", "--allow-all", "jsr:@mcpc/code-runner-mcp/bin"]'。
- 'url' (仅 SSE 需要): MCP服务器的HTTP入口URL(字符串)。例如:'http://localhost:9000/diagram-thinker'。
- 'env' (可选, 仅 Stdiod 需要): 启动进程时需要设置的环境变量(键值对对象)。
示例配置信息结构(JSON格式,实际使用时根据具体服务器调整参数)
{ "name": "your-server-name", "transportType": "stdio", "command": "your-start-command", "args": ["arg1", "arg2"], "env": { "VAR_NAME": "value" } }
或
{ "name": "your-server-name", "transportType": "sse", "url": "http://your-server-address/your-path" }
您需要根据您选择启动的具体MCP服务器(如 Code Runner, Diagram Thinker 等)以及其启动方式(Stdiod 或 HTTP)来构建相应的配置信息,提供给您的MCP客户端使用。
基本使用方法
- 启动MCP服务器:
使用 Deno task 启动特定的MCP服务器,例如:
具体的启动命令可以在项目的 'deno.json' 文件中找到。# 启动 Code Runner MCP 服务器 (Stdiod) deno task start:code-runner:stdio # 启动 Diagram Thinker MCP 服务器 (HTTP/SSE) deno task start:diagram-thinker:http - MCP客户端连接: 使用兼容 MCP 的客户端库(例如 '@modelcontextprotocol/sdk/client' 或 AI SDK 的 MCP 集成)加载上面提供的服务器配置信息,建立与MCP服务器的连接。
- 客户端交互: 客户端连接成功后,可以通过协议发现服务器提供的工具列表,并按需调用这些工具,传递参数并接收结果。
信息
分类
开发者工具