使用说明(Markdown 格式)
- 项目简介
- MCP Outlet 是一个通用的 MCP 服务器运行时与沙箱代理。它能托管、管理 MCP 资源、注册并执行工具、渲染提示模板,并通过统一的 JSON-RPC 协议与 MCP 客户端通信。它还支持在本地或云端环境中通过多种传输协议进行通信,提供 tracing 与会话管理等能力。
- 主要功能点
- 资源、工具、提示等 MCP 资源的托管与访问
- 将 MCP 请求转发给实际的 MCP 服务器(包含对 Prompts、Resources、Tools 等方法的支持)
- 通过 JSON-RPC 与 MCP 客户端通信,支持初始化、调用、读取等流程
- 提供多传输协议支持(stdio、SSE、HTTP/WS 等)和端到端 tracing
- 沙箱 isolation:安全执行业务 MCP 服务器、自动清理资源
- 支持 Python 与 TypeScript 两种运行时,并提供 Azure/AWS 等云端打包部署模板
- 内置本地开发服务器(offline 模式)用于快速本地调试
- 安装与运行步骤
- 克隆仓库并安装依赖(仓库内同时提供 TS 和 Python 运行时示例,任选其一进入开发)
- 安装依赖后运行对应的运行时入口(如 Python 运行时或 TypeScript 运行时)
- 运行后通过 MCP 客户端连接,传入服务器配置以建立连接并初始化 MCP 服务
- 服务器配置(供 MCP 客户端使用的启动配置) 说明:MCP 客户端需要一个 JSON 配置来启动 MCP 服务器进程。该配置包含服务器名称、启动命令及参数等,用于建立与 MCP 服务器的连接。以下为可参考的配置字段及说明(非代码示例,便于理解):
- server.name: 服务器名称,如 "mcp-outlet-python" 或 "mock-mcp-server"
- server.type: 启动类型,通常为 "stdio"(表示通过标准输入输出启动子进程并通讯)
- server.command: 启动 MCP 服务器的主命令(如 uv、npx、node、python 等,视实现而定)
- server.args: 启动命令的参数数组,例如 ["mcp-server-entry.js"]、["-y","@modelcontextprotocol/server-everything"]、["pip","show","mcp-yahoo-finance"] 等
- server.cwd: 启动工作目录(若需要特定工作路径)
- server.env: 启动时注入的环境变量
- server.protocolVersion: MCP 使用的协议版本,例如 "2025-03-26"
- server.jsonrpc: JSON-RPC 版本,通常为 "2.0"
示例(描述性文本,不包含代码段): { server: { name: "my-mcp-outlet", type: "stdio", command: "uv", // 启动 MCP 服务器的主程序 args: ["run", "my-mcp-server"], // 启动参数,指向具体 MCP 服务器实现 cwd: "/path/to/server", env: { NODE_ENV: "production" }, protocolVersion: "2025-03-26", jsonrpc: "2.0" } }
说明:
- 该配置信息是 MCP 客户端所需的最小启动信息,真实执行时需将字段替换为实际环境一致的值。
- MCP 客户端不需要知道实现细节,只需要知道启动命令及参数,以建立连接并发起初始化 handshake。
- 基本使用方法
- 启动阶段
- 使用配置启动 MCP Outlet 服务(如本地运行或在云端启动),Outlet 会加载并运行被托管的 MCP 服务器实例。
- 连接阶段
- MCP 客户端通过 Outlet 的 JSON-RPC 接口向 MCP Outlet 发出请求(如 prompts/list、resources/list、tools/list、resources/read、tools/call 等)。
- Outlet 将请求转发给实际的 MCP 服务器,并将 MCP 服务器的响应再通过 JSON-RPC 返回给客户端。
- 运行阶段
- Outlet 负责会话管理、能力声明以及对请求的统一处理,支持 tracing 与资源清理。
- 常见用法要点
- 在本地开发时,可以使用离线/本地开发服务器(offline 模式)模拟 MCP 服务器,与前端/LLM 客户端进行联调。
- 通过 Azure/AWS 的打包模版,可以将 MCP Outlet 部署到云端并对接实际 MCP 服务器。
- 备注
- 项目包含 TypeScript 与 Python 两个运行时实现,核心是将 MCP 请求与 MCP 服务器的通信解耦,提供统一的运行环境与沙箱机制。
- 具体 MCP 方法(如 prompts/list、resources/read、tools/call 等)的实现和路由在 Outlet 层完成,服务器实现的具体细节取决于被托管的 MCP 服务器。
- 参考与扩展
- 本仓库还包含本地开发服务器、云端打包模板、以及针对不同运行时的包装器、测试与 mocks 等,便于扩展与集成。
信息
分类
网页与API