项目简介

'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 构建。

  1. 克隆仓库:
    git clone https://github.com/mcpc-tech/mcpc.git
    cd mcpc
  2. 安装依赖:
    pnpm install
  3. 构建项目:
    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客户端使用。

基本使用方法

  1. 启动MCP服务器: 使用 Deno task 启动特定的MCP服务器,例如:
    # 启动 Code Runner MCP 服务器 (Stdiod)
    deno task start:code-runner:stdio
    
    # 启动 Diagram Thinker MCP 服务器 (HTTP/SSE)
    deno task start:diagram-thinker:http
    具体的启动命令可以在项目的 'deno.json' 文件中找到。
  2. MCP客户端连接: 使用兼容 MCP 的客户端库(例如 '@modelcontextprotocol/sdk/client' 或 AI SDK 的 MCP 集成)加载上面提供的服务器配置信息,建立与MCP服务器的连接。
  3. 客户端交互: 客户端连接成功后,可以通过协议发现服务器提供的工具列表,并按需调用这些工具,传递参数并接收结果。

信息

分类

开发者工具