项目简介
'mcp-server-playground' 是一个用 TypeScript 构建的 Model Context Protocol (MCP) 服务器实现,它支持基于 HTTP 的流式传输,并集成了 OAuth 代理以处理第三方授权服务器(如 Auth0)。该项目旨在为 LLM 应用提供一个安全、可扩展的上下文服务框架。
主要功能点
- MCP服务器核心功能: 支持MCP协议的请求与响应,包括资源管理、工具执行和Prompt模板渲染。
- 安全认证与授权: 实现 OAuth 代理,允许 MCP 客户端通过第三方授权服务器(如 Auth0)进行动态应用注册和认证,确保通信安全。
- 会话管理: 支持有状态会话,通过重放初始请求和可选的持久化存储(如 Valkey)实现跨多个服务器实例的会话管理。
- 丰富工具集: 内置多种实用工具,例如用于AWS ECS、AWS S3的云资源管理工具,获取系统时间的工具,消息回显(echo)工具,以及模拟实时数据流的工具等。
- Prompt模板支持: 包含可定制的 Prompt 模板(如 echo Prompt),方便 LLM 进行交互。
安装步骤
- 克隆仓库:
git clone https://github.com/chrisleekr/mcp-server-playground cd mcp-server-playground - 安装依赖:
npm install - 设置环境变量: 复制 '.env.example' 文件为 '.env',并根据您的实际需求修改其中的配置,特别是关于 OAuth 和 AWS 的部分。
cp .env.example .env - 启动服务器 (本地开发):
服务器将在 'http://localhost:3000' 端口启动并监听 MCP 客户端请求。npm run dev:setup - 通过 Helm 部署 (可选):
如果您需要在 Kubernetes 环境中部署,可以使用 Helm Chart:
helm repo add chrisleekr https://chrisleekr.github.io/helm-charts/ helm repo update helm install mcp-server-playground chrisleekr/mcp-server-playground
服务器配置(供MCP客户端使用)
MCP 客户端(如 Cursor)需要以下 JSON 格式的配置来连接此 MCP 服务器。请将此配置保存为 '.cursor/mcp.json'(项目级)或 '~/.cursor/mcp.json'(全局级)。
{ "mcpServers": { "mcp-server-playground-local": { "type": "http", "url": "http://localhost:3000/mcp" // "type": "http" 表示使用HTTP协议进行通信。 // "url": "http://localhost:3000/mcp" 指定了MCP服务器的访问地址和端点。 // // 对于此服务器实现,它作为一个独立的HTTP服务运行,因此MCP客户端 // 不需要配置 "command" 或 "args" 来启动服务器。客户端只需知道服务器 // 的网络地址即可进行连接。 // // 如果服务器启用了OAuth认证,您可能需要在MCP客户端配置中添加一个"auth"字段, // 包含OAuth的客户端ID、密钥等信息,以便客户端能够成功进行身份验证和授权。 // 具体配置方式请参考MCP客户端的文档。 } } }
基本使用方法
在您按照上述步骤启动服务器并配置好 MCP 客户端后,MCP 客户端即可与 'mcp-server-playground' 进行交互:
- 列出可用工具: 客户端可以向服务器请求列出所有已注册的工具,获取它们的名称、描述和输入要求。
- 调用工具: 客户端可以根据需要,向服务器发送请求以调用特定的工具,例如:
- 调用 'aws-ecs' 工具来调查 AWS ECS 服务和任务的状态。
- 调用 'system-time' 工具来获取当前的系统时间。
- 调用 'echo' 工具来回显消息。
- 获取 Prompt 模板: 客户端可以请求获取服务器上定义的 Prompt 模板,然后将这些模板应用于 LLM 的交互流程。
- 会话管理: 客户端可以通过在请求头中发送 'mcp-session-id' 来管理与服务器之间的会话状态。服务器将维护这些有状态的会话,确保上下文的连续性。
信息
分类
AI与计算