MCP服务器示例

一个使用WebStandardStreamableHTTPServerTransport创建的无状态MCP服务器示例,可直接部署到Cloudflare Workers。

  • by jmbish04
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jmbish04/core-mcp

使用说明

MCP服务器示例(原始传输)

此示例演示了如何使用以下命令创建未经身份验证的无状态MCP服务器 WebStandardStreamableHTTPServerTransport 从 @modelcontextprotocol/sdk 直接地, 没有 代理SDK助手。

这使您可以完全控制传输层。如果您想要更简单的方法,请参阅 mcp-worker 它使用 createMcpHandler() 从代理SDK。

用法

pnpm install
pnpm run dev

测试

您可以使用MCP检查器或支持以下功能的任何MCP客户端测试MCP服务器 streamable-http 运输。

MCP检查员进行本地测试

  1. 在新终端中,运行MCP检查器:

    npx @modelcontextprotocol/inspector@latest
    
  2. MCP检查器将在您的web浏览器中启动 http://localhost:5173

  3. 输入MCP服务器的URL(http://localhost:8788/mcp)并选择 连接

  4. 选择 列出工具 显示MCP服务器公开的工具

部署到Cloudflare

此MCP服务器旨在使用代理SDK部署在Cloudflare Workers上。

部署到生产

pnpm run deploy

这将:

  1. 使用生成TypeScript类型 wrangler types worker-configuration.d.ts
  2. 将您的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 用于具有用户输入启发的有状态会话。

其他资源