使用说明
MCP服务器示例(原始传输)
此示例演示了如何使用以下命令创建未经身份验证的无状态MCP服务器 WebStandardStreamableHTTPServerTransport 从 @modelcontextprotocol/sdk 直接地, 没有 代理SDK助手。
这使您可以完全控制传输层。如果您想要更简单的方法,请参阅 mcp-worker 它使用 createMcpHandler() 从代理SDK。
用法
pnpm install
pnpm run dev
测试
您可以使用MCP检查器或支持以下功能的任何MCP客户端测试MCP服务器 streamable-http 运输。
MCP检查员进行本地测试
-
在新终端中,运行MCP检查器:
npx @modelcontextprotocol/inspector@latest -
MCP检查器将在您的web浏览器中启动
http://localhost:5173 -
输入MCP服务器的URL(
http://localhost:8788/mcp)并选择 连接 -
选择 列出工具 显示MCP服务器公开的工具
部署到Cloudflare
此MCP服务器旨在使用代理SDK部署在Cloudflare Workers上。
部署到生产
pnpm run deploy
这将:
- 使用生成TypeScript类型
wrangler types worker-configuration.d.ts - 将您的MCP服务器部署到Cloudflare Workers
您的MCP服务器将在 https://your-worker.your-account.workers.dev/mcp
类型生成
该项目使用 wrangler types 在中生成TypeScript定义 worker-configuration.d.ts这提供了:
- 环境绑定 (KV、D1、AI、浏览器、资产等)作为全球
Env接口 - 运行时类型 基于你的
compatibility_date和compatibility_flags - 无需进口 -The
Env接口在整个代码库中都是全局可用的
更改后重新生成类型 wrangler.jsonc:
pnpm run types
生成的 worker-configuration.d.ts 文件:
- 定义全局
Env在所有TypeScript文件中自动可用的接口 - 包括与Worker配置匹配的所有Cloudflare Workers运行时类型
- 替换已弃用的
@cloudflare/workers-types包裹
您可以在不导入的情况下访问环境绑定:
export default {
async fetch(request: Request, env: Env): Promise<Response> {
// env.KV, env.DB, env.AI, etc. are all typed and available
const value = await env.KV.get("key");
return new Response(value);
}
}
持续部署
如果你有 已连接git存储库 对于您的Worker,您可以通过以下方式进行部署:
- 将更改推送到存储库
- 将拉取请求合并到主分支
添加州
要创建有状态的MCP服务器,请使用 McpAgent 一个耐用的物体。请参阅 mcp 例如,对于有状态的服务器,或 mcp-elicitation 用于具有用户输入启发的有状态会话。
