使用说明
项目简介
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库用于开发代理。
-
安装Go工具链 (可选,如果已安装Go 1.23+可跳过) 访问 Go官网 下载并安装Go语言环境。
-
安装'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中。
- 通过Homebrew (macOS/Linux):
-
安装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': 配置的简要说明。
基本使用方法
-
启动MCP Mesh注册中心 (Registry): 在您的终端中运行:
mcp-mesh-registry注册中心负责管理代理的发现和元数据。它将在默认端口 '8000' 启动。
-
启动一个MCP Mesh代理: 选择一个代理定义文件(例如,'examples/k8s/base/agents/fastmcp_agent.py'),然后使用'meshctl'启动它:
meshctl start examples/k8s/base/agents/fastmcp_agent.py这将启动一个MCP服务器(代理),它会在其配置的HTTP端口(例如 '9092')上监听请求,并向注册中心注册其能力。
-
列出所有已注册的代理: 使用'meshctl'查看网络中活跃的代理:
meshctl list您将看到类似'fastmcp-service'这样的代理及其提供的能力。
-
通过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服务器)进行交互。
信息
分类
开发者工具