federated-mcp 使用说明

项目简介

federated-mcp 是一个基于 Model Context Protocol (MCP) 构建的分布式运行时系统,旨在为联邦AI服务提供边缘计算能力。它遵循 MCP 规范,支持AI系统与各种数据源之间的标准化连接,并维护跨联邦工具和数据集的上下文。此实现支持本地和远程连接,以及多种传输协议,如 Stdio 和 HTTP with Server-Sent Events,并强调安全性和可扩展性。

主要功能点

  • MCP协议完整实现: 遵循官方MCP规范,提供资源管理、工具注册与执行、Prompt模板定义和渲染等核心功能。
  • 联邦架构支持: 通过联邦控制器和代理层管理跨服务器通信和身份验证,实现多个MCP服务器的无缝连接和上下文维护。
  • 边缘计算能力: 支持多云服务提供商(如 Supabase, Cloudflare Workers, Fly.io),能够部署为Serverless函数,具备实时日志监控和自动伸缩能力。
  • 多种网络协议: 支持 JSON-RPC 2.0、HTTP/REST 和 WebSocket 等网络协议,满足不同场景的通信需求。
  • 安全特性: 提供联邦身份验证和授权、跨服务器资源隔离、分布式 consent 管理和加密通信,保障数据安全和访问控制。

安装步骤

  1. 环境准备:

    • 确保已安装 Deno
    • (可选)如果需要部署到边缘计算平台,请准备相应的云服务提供商账号,例如 Supabase、Cloudflare 或 Fly.io。
  2. 克隆仓库:

    git clone https://github.com/ruvnet/federated-mcp.git
    cd federated-mcp
  3. 运行服务器: 使用 Deno 运行服务器代码:

    deno run --allow-net --allow-env --allow-read --allow-write --allow-run src/apps/deno/server.ts

    此命令会启动 MCP 服务器。'--allow-*' 参数用于授予 Deno 运行时所需的系统权限。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是 'federated-mcp' 服务器的配置信息示例 (JSON 格式,仅供参考,MCP 客户端具体配置方式请参考对应客户端文档):

{
  "serverName": "federated-mcp-server",
  "command": "deno",
  "args": [
    "run",
    "--allow-net",
    "--allow-env",
    "--allow-read",
    "--allow-write",
    "--allow-run",
    "src/apps/deno/server.ts"
  ],
  "description": "启动 federated-mcp 服务器",
  "transport": "websocket",
  "address": "ws://localhost:3000/mcp"
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端用于标识连接的服务器。
  • 'command': 启动服务器的可执行命令,这里是 'deno'。
  • 'args': 传递给 'deno run' 命令的参数,包括 Deno 运行时权限和服务器入口文件路径 'src/apps/deno/server.ts'。
  • 'description': 服务器配置的描述信息,方便用户理解服务器用途。
  • 'transport': MCP 客户端与服务器通信的传输协议,例如 'websocket'。根据仓库信息,也可能支持 'stdio' 和 'sse' (Server-Sent Events),但WebSocket是更通用的远程连接方式。
  • 'address': MCP 服务器的地址,客户端通过此地址与服务器建立连接。对于 WebSocket 协议,地址通常以 'ws://' 或 'wss://' 开头,并指向服务器的 WebSocket 端点 '/mcp'。如果服务器运行在本地,可以使用 'localhost' 和默认端口 '3000'。

注意: 实际配置可能需要根据 MCP 客户端的具体要求进行调整。请参考 MCP 客户端的文档,了解如何配置和连接到 MCP 服务器。

基本使用方法

  1. 启动服务器: 按照上述安装步骤运行 'src/apps/deno/server.ts'。
  2. 配置 MCP 客户端: 在 MCP 客户端中,配置连接到 'federated-mcp' 服务器,使用上述提供的服务器配置信息。
  3. 通过 MCP 客户端与服务器交互: 使用 MCP 客户端提供的界面或 API,发送 MCP 请求到 'federated-mcp' 服务器,例如请求资源列表、调用工具或获取 Prompt 模板。
  4. 探索边缘功能: 'federated-mcp' 提供了 'intent-detection', 'meeting-info', 'webhook-handler' 等边缘功能,可以通过 MCP 客户端调用这些工具,利用服务器的边缘计算能力。

部署到边缘平台 (Supabase 示例)

仓库中包含将部分功能部署到 Supabase Edge Functions 的示例。您可以参考 'supa_src' 目录下的文件,了解如何将 'intent-detection'、'meeting-info' 和 'webhook-handler' 函数部署到 Supabase。

部署步骤 (简要):

  1. 安装 Supabase CLI: 参考 Supabase CLI 文档 安装 Supabase CLI。
  2. 配置 Supabase 项目: 使用 Supabase CLI 登录并关联您的 Supabase 项目。
  3. 部署函数: 使用 Supabase CLI 部署 'supa_src/supabase/functions' 目录下的函数。 例如,部署 'intent-detection' 函数:
    supabase functions deploy intent-detection --no-verify-jwt
    (更多部署细节请参考仓库 'README.md' 或 Supabase 文档)

部署到边缘平台后,您可以配置 MCP 客户端直接与部署在边缘平台的函数交互,或者通过 'federated-mcp' 服务器作为联邦网络的一部分进行访问。

请注意,边缘平台的部署和配置可能需要额外的步骤和云服务提供商特定的配置。详细信息请参考仓库文档和相关云服务提供商的文档。

信息

分类

AI与计算