使用说明

项目简介

'mcp-connect' 项目旨在简化基于 Model Context Protocol (MCP) 的系统的开发、调试和部署。它作为一个中心化的服务器,可以连接和管理多个独立的 MCP 服务器,为 LLM 应用提供统一的上下文服务入口。通过 'mcp-connect',开发者可以更方便地集成和管理各种资源与工具,构建功能丰富的 LLM 应用。

主要功能点

  • MCP 服务器管理: 集中管理和配置多个外部 MCP 服务器,简化服务器部署和维护。
  • API 接口: 提供清晰的 API 接口,允许客户端通过 HTTP 或 Stdio 等协议与 MCP 服务器进行交互。
  • 工具和资源集成: 支持注册和调用外部 MCP 服务器提供的工具,集成各种数据资源和功能。
  • 会话管理: 服务器端负责会话管理,为客户端提供稳定的上下文服务。
  • 可扩展性: 支持多种传输协议,易于扩展和集成到不同的 LLM 应用场景中。

安装步骤

  1. 克隆仓库
    git clone https://github.com/gengyu/mcp-connect.git
    cd mcp-connect
  2. 进入 backend 目录
    cd backend
  3. 安装依赖
    npm install
  4. 启动服务器
    npm start
    服务器默认运行在 'http://localhost:3000'。

服务器配置

MCP Connect Server 本身并不直接提供资源或工具,而是作为桥梁管理和连接外部的 MCP 服务器。你需要通过 API 或前端界面配置要连接的 MCP 服务器信息。配置信息包括以下内容 (通过 API 进行配置,以下为配置示例,非直接编辑的配置文件):

{
  "name": "我的资源服务器",  // MCP 服务器的名称,方便识别和管理
  "command": "/path/to/mcp-resource-server", // 启动外部 MCP 服务器的命令,例如:'python' 或 '/path/to/executable'
  "args": ["--port", "8080"]  // 启动命令的参数,例如:指定端口号或其他配置
}
  • name: MCP 服务器的自定义名称,用于在管理界面或 API 中识别服务器。
  • command: 启动外部 MCP 服务器的可执行命令或脚本的路径。
  • args: 传递给启动命令的参数列表,例如端口号、配置文件路径等。

请注意,上述配置是在 MCP Connect Server 中配置外部 MCP 服务器的信息,而不是 MCP Connect Server 自身的配置。MCP 客户端需要配置 MCP Connect Server 的地址(例如 'http://localhost:3000')才能与之通信,并通过它间接访问和调用外部 MCP 服务器的功能。

基本使用方法

  1. 启动 MCP Connect Server: 按照安装步骤启动后端服务器。
  2. 配置外部 MCP 服务器: 通过 MCP Connect Server 提供的 API 接口(例如,使用 POST 请求到 '/invoke/config' 相关的端点,具体 API 文档需要参考项目代码或后续文档)添加和配置外部 MCP 服务器。配置信息包括服务器名称、启动命令和参数。
  3. 使用 MCP 客户端 SDK: 在你的 LLM 客户端应用中,集成 '@mcp-connect/core' 客户端 SDK (位于 'packages/mcp-core' 目录)。
  4. 配置客户端 SDK: 初始化 'MCPClient' 时,将 'MCP Connect Server' 的地址 (例如 'http://localhost:3000') 配置为 'serverUrl'。
  5. 调用工具或资源: 使用 'MCPClient' 的 'invokeTool' 方法,通过工具名称和 payload 与外部 MCP 服务器进行交互。MCP Connect Server 将会处理请求,并转发到相应的外部 MCP 服务器,最终将结果返回给客户端应用。
import { MCPClient } from '@mcp-connect/core';

const client = new MCPClient({
  config: {
    serverUrl: 'http://localhost:3000', // MCP Connect Server 的地址
    transport: 'http'
  }
});

async function invokeMyTool() {
  const response = await client.invokeTool({
    tool: 'my_external_mcp_tool', // 外部 MCP 服务器提供的工具名称
    payload: { input: 'some data' }
  });
  console.log(response);
}

invokeMyTool();

注意: 'mcp-connect' 本身作为一个 MCP 服务器的管理平台,其核心价值在于连接和管理其他 MCP 服务器,而非直接实现资源、工具或 Prompt 的托管。客户端应用实际上是通过 'mcp-connect' 间接地与被管理的外部 MCP 服务器进行交互。

信息

分类

网页与API