使用说明

项目简介

MCP Mesh是一个旨在将MCP协议从单一应用开发推向生产级分布式系统的工作平台。它解决了在生产环境中扩展MCP应用面临的独特挑战,如基础设施复杂性、服务发现、依赖管理和可观测性。通过提供简洁的Python装饰器和Kubernetes原生支持,MCP Mesh让开发者能够专注于构建AI智能,而非基础设施管理,从而加速AI代理的开发和部署。

主要功能点

  • 简化MCP服务器开发: 仅需少量Python装饰器(如'@app.tool()', '@mesh.tool()', '@mesh.agent()'),即可将简单函数转化为功能齐全的MCP服务器(代理),无需手动进行客户端/服务器设置或连接管理。
  • 智能代理网络: 实现自动服务发现、动态依赖注入和负载均衡,代理可以自主注册、发现并使用其他代理提供的能力,无需人工配置。
  • 生产级部署: 提供开箱即用的Kubernetes原生部署能力,包括Helm Charts、水平伸缩、健康检查、服务网格集成和企业级可观测性(如Grafana仪表板、分布式追踪)。
  • LLM委托与集成: 允许将大型语言模型(LLM)视为一等公民依赖,通过'@mesh.llm()'和'@mesh.llm_provider()'装饰器实现LLM调用委托,支持动态提示、工具筛选和类型安全上下文。
  • 会话管理: 支持在分布式环境中进行高级会话管理,确保有状态的代理调用能够保持会话亲和性。
  • 'meshctl' CLI工具: 一个类似于'kubectl'的命令行工具,用于运行、监控和管理整个代理网络,提供实时网络状态和诊断信息。

安装步骤

MCP Mesh包含Go语言编写的命令行工具'meshctl'和'registry',以及Python库用于开发代理。

  1. 安装Go工具链 (可选,如果已安装Go 1.23+可跳过) 访问 Go官网 下载并安装Go语言环境。

  2. 安装'meshctl'和'mcp-mesh-registry' 推荐通过Homebrew(macOS/Linux)或手动下载发行版安装:

    • 通过Homebrew (macOS/Linux):
      brew install dhyansraj/mcp-mesh/mcp-mesh
    • 手动下载 (macOS/Linux): 从 GitHub Releases 页面 下载适用于您操作系统的最新版本 ('mcp-mesh_{version}{os}{arch}.tar.gz'),解压后将 'meshctl' 和 'registry' 复制到您的PATH中。
  3. 安装Python库 在您的Python项目环境中安装'mcp-mesh'及其依赖:

    pip install mcp-mesh
    # 如果需要运行示例或使用更多功能,可能需要安装fastmcp和其他相关依赖
    # pip install fastmcp litellm pydantic rich uvicorn anthropic openai

服务器配置(MCP客户端连接MCP Mesh代理)

MCP Mesh会启动并管理您的MCP代理(即MCP服务器)。MCP客户端通常不需要启动命令,而是直接连接到已经由MCP Mesh启动的代理的HTTP端点。

假设MCP客户端需要连接到一个名为“FastMCP服务”的代理,该代理在端口'9092'上监听HTTP请求:

{
  "server_name": "fastmcp-service",
  "endpoint_address": "http://localhost:9092/mcp",
  "endpoint_type": "http",
  "description": "连接到由MCP Mesh管理的FastMCP代理的HTTP端点。请确保此代理已在'localhost:9092'启动。"
}
  • 'server_name': 代理的逻辑名称,例如 'fastmcp-service'。
  • 'endpoint_address': 代理暴露的HTTP地址,MCP客户端将通过此地址发送JSON-RPC请求。'9092'是示例中该代理配置的端口,'/mcp'是FastMCP的默认JSON-RPC路径。
  • 'endpoint_type': 连接协议类型,这里是'http'。
  • 'description': 配置的简要说明。

基本使用方法

  1. 启动MCP Mesh注册中心 (Registry): 在您的终端中运行:

    mcp-mesh-registry

    注册中心负责管理代理的发现和元数据。它将在默认端口 '8000' 启动。

  2. 启动一个MCP Mesh代理: 选择一个代理定义文件(例如,'examples/k8s/base/agents/fastmcp_agent.py'),然后使用'meshctl'启动它:

    meshctl start examples/k8s/base/agents/fastmcp_agent.py

    这将启动一个MCP服务器(代理),它会在其配置的HTTP端口(例如 '9092')上监听请求,并向注册中心注册其能力。

  3. 列出所有已注册的代理: 使用'meshctl'查看网络中活跃的代理:

    meshctl list

    您将看到类似'fastmcp-service'这样的代理及其提供的能力。

  4. 通过MCP客户端调用代理能力: 一旦代理运行起来,您可以使用任何支持MCP协议的客户端(例如,一个LLM应用)通过其HTTP端点调用其工具、资源或Prompt。

    例如,使用'curl'命令调用'fastmcp-service'代理的'get_current_time'工具:

    curl -X POST http://localhost:9092/mcp \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/call",
        "params": {
          "name": "get_current_time",
          "arguments": {}
        }
      }'

    这将返回当前时间,展示了MCP客户端如何与由MCP Mesh管理的代理(MCP服务器)进行交互。

信息

分类

开发者工具