AI Gateway MCP 服务器实现合集
使用说明内容(Markdown格式)
-
项目简介
- 该仓库聚合了基于 MCP(Model Context Protocol)的多种服务器实现示例,展示如何在后端托管资源、注册与执行工具、定义并渲染 Prompt 模板,以及通过不同传输协议(如 SSE、HTTP、stdio)与客户端进行 JSON-RPC 通信。
- 每个示例都包含核心服务端代码,通常以 FastMCP / MCP Server 组件实现工具暴露、以及 Starlette / Uvicorn 等方式提供传输入口。
-
主要功能点
- 资源与工具的托管:服务器可注册并暴露资源与工具,LLM 客户端可查询、调用并获取结果。
- 工具执行与响应流:工具执行支持同步与流式返回,便于 LLM 在推理过程中逐步得到结果。
- 提示模板与渲染:提供 Prompts/模板以定制化 LLM 的对话模式与行为。
- 多传输适配:包括 SSE、Streamable HTTP、Stdio 等传输途径,确保不同部署场景的可用性。
- 会话与安全:示例中常包含会话标识、访问凭证/令牌传输的能力,以及对外部系统的集成入口。
-
安装步骤
- 逐个实验/示例的安装与运行通常需要 Python 环境与依赖(如 fastmcp/mcp、Starlette、uvicorn、httpx 等),请按照各示例的 README/Notebook 指引安装依赖。
- 以 ServiceNow MCP 服务器为例,运行方式通常为直接执行 Python 脚本(主入口会启动一个基于 Starlette 的 SSE/HTTP 服务),并在环境变量中配置所需的外部服务凭证和目标端点。
-
服务器配置(示例 MCP 客户端无需实现;以下是服务器端的启动配置示例) { "server_name": "ServiceNow-MCP", "command": "uvicorn", "args": [ "labs.model_context_protocol.src.servicenow.mcp_server.mcp_server:starlette_app", "--host", "0.0.0.0", "--port", "8080" ] }
说明:
- server_name:服务器实例名称,标识该 MCP 服务的身份。
- command:启动服务器所用的执行程序,示例中常见为 uvicorn(用于 Starlette/FastAPI 之类的应用),也可使用直接运行 Python 脚本的方式。
- args:启动命令的参数,包含模块路径和应用对象名称,以及监听的主机与端口。具体路径请依据实际仓库中的可执行入口来设定(例如某些示例的入口可能是 starlette_app、app、mcp_server 等名称)。
-
基本使用方法
- 启动服务器后,MCP 客户端通过 MCP 协议向服务器发起请求,读取资源、调用工具、获取 prompts 等。
- 客户端在配置好服务器地址后,即可发起 JSON-RPC 请求,服务器返回标准 JSON-RPC 响应。
- 如需测试,可使用仓库中的 Mock/测试工具或示例客户端,逐步向工具列表发起调用并查看 streaming/分块结果。
-
连接示例(简述)
- 选择一个 MCP 服务实现(如 ServiceNow、Weather、GitHub 等实验示例),在服务器入口处启动后端服务。
- 使用 MCP 客户端连接到服务器,读取 available_tools、invoke_tool 等接口,执行操作并获取结果。
-
额外说明
- 本仓库包含多种实现、多个实验场景,具体运行依赖、环境变量、输入参数请参考各实验的 README/Notebook。
- 由于不同语言结构与目录命名的实现差异,实际运行时请确保能通过脚本入口直接启动(如 python 脚本或 uvicorn 模块入口)并正确暴露服务端口。