姜饼mcp服务器
演示MCP服务器(HTTP+OAuth保护),它公开了一些姜饼主题的工具、提示和资源。
需求
- Node.js(ESM)+npm
安装
npm install所需的环境变量
此服务器使用Auth0风格的JWT验证(远程JWKS)和演示OAuth外观。
创建 .env repo根目录中的文件:
AUTH0_DOMAIN="https://YOUR_AUTH0_TENANT"
CLIENT_ID="your_client_id"
CLIENT_SECRET="your_client_secret"| 变量 | 必需 | 示例 | 用于 |
|---|---|---|---|
AUTH0_DOMAIN | 是的 | https://example.eu.auth0.com | JWKS+发行商+代币交易所 |
CLIENT_ID | 是的 | abc123 | /register + /token (基本身份验证到Auth0) |
CLIENT_SECRET | 是的 | xyz789 | /token (基本身份验证到Auth0) |
运行(HTTP/流式传输)
在端口上启动HTTP服务器 3000 并在以下位置为MCP端点提供服务 /mcp.
npm run dev终点:
GET /mcp(以及POST /mcp)–MCP可流式HTTP传输GET /logo和GET /logo.png–服务器图标GET /.well-known/oauth-protected-resource/mcp–受保护的资源元数据GET /.well-known/oauth-authorization-server–OAuth服务器元数据代理POST /register–演示动态客户端注册响应POST /token–令牌交换代理AUTH0_DOMAINGET /confirm-sending?elicitation=...和POST /do-confirm-sending–URL启发使用的确认UI
注: /mcp 受JWT中间件保护(预期 Authorization: Bearer ).
MCP检查员
npm run inspector暴露的MCP表面
工具
| 工具名称 | 标题 | 输入 | 输出 | 注释 | 使用的MCP功能 | |||
|---|---|---|---|---|---|---|---|---|
bakeCookies | 烘焙饼干 | quantity (1..100) | success, message | 启用 decorateCookies 烘焙并记录调试消息后 | 记录;动态工具启用 | |||
decorateCookies | 装饰饼干 | quantity (1..100), color (`red\ | blue\ | green\ | yellow`) | success, message | 最初被禁用。如果 color=red,进行形式启发以选择替代方案;还更新其架构以删除 red | 激励(形式);工具模式更新 |
createWishes | 创造圣诞愿望 | forWho (字符串) | message | 通过以下方式使用客户端采样 createMessage 生成愿望 | 采样 | |||
metadata | Metada工具 | type (`addresses\ | other`) | metadata (object) | 返回演示地址ID;标记的 readOnlyHint | 工具注释 | ||
sendTo | 将Cookie发送到地址 | to (地址ID), sendDate (预计 DDMMYYYY) | success, result | 需要通过URL引导和本地确认页面进行确认(/confirm-sending) | 引用(url);登录中;外部确认回路 |
提示
| 提示名称 | 标题 | 参数 | 返回内容 |
|---|---|---|---|
christmasWishes | 圣诞愿望 | 无 | 一条要求“创建圣诞愿望”的单用户消息 |
christmasWishesFor | 圣诞祝福 | recipientName, senderName | 一条单用户消息,要求指定发件人为指定收件人许愿 |
资源
| 资源名称 | URI | 标题 | MIME | 内容 |
|---|---|---|---|---|
cookie-recipe | gingerbread://cookie-recipe | 饼干食谱 | text/plain | 姜饼饼干食谱(配料+说明) |
使用的MCP协议功能
- 工具:注册工具+动态启用/禁用和模式更新
- 提示:已注册的提示模板
- 资源:已注册的静态文本资源
- 日志记录:服务器发出关键步骤的日志消息
- 引出:
elicitInput在form模式和url模式 - 采样:服务器调用
createMessage要求客户/模型生成文本
