Token导航 LogoToken导航TokenDH.com
H402 MCP Template logo
运维云端未说明官方级别未说明来源级核验

H402 MCP Template

MCP Server

用于构建Model Context Protocol (MCP)服务器的生产级TypeScript模板,提供声明式工具/资源、健壮的错误处理、依赖注入、简易认证、可选的OpenTelemetry支持,以及本地和边缘(Cloudflare Workers)运行时的优先支持。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
边缘计算错误处理Cloudflare WorkersClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AaronAbuUsama

提供方

AaronAbuUsama

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp-ts-template

Production-grade TypeScript template for building Model Context Protocol (MCP) servers. Ships with declarative tools/resources, robust error handling, DI, easy auth, optional OpenTelemetry, and first-class support for both local and edge (Cloudflare Workers) runtimes.

5 Tools • 1 Resource • 1 Prompt

______________________________________________________________________

✨ 特点

  • 声明式工具与资源在单个、自包含的文件中定义功能。框架负责注册和执行。
  • 启发支持(或引出支持,根据上下文可灵活翻译)工具可以在执行过程中交互式地提示用户输入缺失的参数,从而简化用户的工作流程。
  • 强大的错误处理一个统一的 McpError 该系统确保服务器上错误响应的一致性和结构化。
  • 可插拔认证为您的服务器提供无忧支持,确保安全 nonejwt,或者 oauth 模式。
  • 抽象存储交换存储后端(in-memoryfilesystemSupabaseSurrealDBCloudflare D1/KV/R2) 在不改变业务逻辑的情况下,具备安全的不透明游标分页、并行批量操作以及全面的验证功能。
  • 图数据库操作可选的图服务,用于关系管理、图遍历和路径查找算法(SurrealDB 提供商)。
  • 全栈可观测性通过结构化日志记录(Pino)和可选的自动插桩OpenTelemetry,获取深入见解,用于追踪和指标收集。
  • 依赖注入用……建造/构建 tsyringe 为了实现一个干净、解耦且可测试的架构。
  • 服务集成针对外部API的可插拔服务,包括大型语言模型(LLM)提供商(OpenRouter)、文本转语音(ElevenLabs)以及图数据库操作(SurrealDB)。
  • 丰富的内置实用工具套件解析(PDF、YAML、CSV、前置信息)、格式化(差异、表格、树形结构、Markdown)、调度、安全等辅助工具。
  • “Edge-Ready”可以翻译为“已就绪,可边缘部署”或“准备就绪,适用于边缘环境”。这个短语通常用于描述技术或产品已经准备好在边缘计算环境中使用或部署编写一次代码,即可在本地机器或 Cloudflare Workers 边缘节点上无缝运行。

🏗️ 建筑学

此模板遵循模块化、领域驱动的设计架构,具有明确的职责分离:

┌─────────────────────────────────────────────────────────┐
│              MCP Client (Claude Code, ChatGPT, etc.)    │
└────────────────────┬────────────────────────────────────┘
                     │ JSON-RPC 2.0
                     ▼
┌─────────────────────────────────────────────────────────┐
│           MCP Server (Tools, Resources)                 │
│           📖 [MCP Server Guide](src/mcp-server/)        │
└────────────────────┬────────────────────────────────────┘
                     │ Dependency Injection
                     ▼
┌─────────────────────────────────────────────────────────┐
│          Dependency Injection Container                 │
│              📦 [Container Guide](src/container/)       │
└────────────────────┬────────────────────────────────────┘
                     │
        ┌────────────┼────────────┐
        ▼            ▼            ▼
 ┌──────────┐   ┌──────────┐   ┌──────────┐
 │ Services │   │ Storage  │   │ Utilities│
 │ 🔌 [→]   │   │ 💾 [→]   │   │ 🛠️ [→]   │
 └──────────┘   └──────────┘   └──────────┘

[→]: src/services/    [→]: src/storage/    [→]: src/utils/

关键模块:

  • MCP 服务器 - 工具、资源、提示和传输层实现
  • 集装箱 - 使用tsyringe进行依赖注入设置,以实现整洁架构
  • 服务 - 与可插拔提供者集成的外部服务(大型语言模型、语音、图形)
  • 存储 - 支持多种后端的抽象持久层
  • 公用事业 - 横切关注点(日志记录、安全性、解析、遥测)
💡 灯泡(或表示“想法”、“灵感”的表情符号) 提示每个模块都附有详尽的README文件,其中包含架构图、使用示例和最佳实践。点击上方的链接深入了解!

🛠️ 包含的功能

这个模板包含了一些实用示例,帮助您快速上手。

工具

工具描述
template_echo_message 将消息回传,可选格式化和重复。
template_cat_fact 从外部API获取一个随机的猫咪趣事。
template_madlibs_elicitation 通过要求说出词语来完成一个故事,从而展示如何引出(或激发)回答。
template_code_review_sampling使用大型语言模型(LLM)服务进行模拟代码审查。
template_image_test返回一个以 base64 编码的数据 URI 格式的测试图像。

资源

资源URI描述
echoecho://{message} 一个简单的资源,用于回传消息。

提示

提示描述
code-review 一个用于指导大型语言模型(LLM)进行代码审查的结构化提示。

🚀 开始入门

MCP 客户端设置/配置

在您的MCP客户端配置文件中添加以下内容(例如。, cline_mcp_settings.json)。

{
  "mcpServers": {
    "mcp-ts-template": {
      "type": "stdio",
      "command": "bunx",
      "args": ["mcp-ts-template@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "STORAGE_PROVIDER_TYPE": "filesystem",
        "STORAGE_FILESYSTEM_PATH": "/path/to/your/storage"
      }
    }
  }
}

先决条件

安装

  1. 克隆仓库:
git clone https://github.com/cyanheads/mcp-ts-template.git
  1. 导航进入该目录:
cd mcp-ts-template
  1. 安装依赖项:
bun install

⚙️ 配置

所有配置在启动时集中进行并验证 src/config/index.ts您系统中的关键环境变量 .env 文件包含:

变量描述默认值
MCP_TRANSPORT_TYPE要使用的传输方式: stdio 或者 http. (此句为分隔符或无实际意义的空行,在中文中可不翻译或翻译为“。”) http
MCP_HTTP_PORT HTTP服务器的端口。3010
MCP_HTTP_HOST HTTP服务器的主机名。127.0.0.1
MCP_AUTH_MODE认证模式: nonejwt或者 oauthnone
MCP_AUTH_SECRET_KEY所需(的)用于 jwt 认证模式。 一个32个字符以上的密码。 (此行无实际内容,故不翻译) (none)
OAUTH_ISSUER_URL所需用于 oauth 认证模式。 OIDC 提供商的 URL。(none)
STORAGE_PROVIDER_TYPE存储后端: in-memoryfilesystemsupabasesurrealdbcloudflare-d1cloudflare-kvcloudflare-r2in-memory
STORAGE_FILESYSTEM_PATH所需用于 filesystem 存储。 存储目录的路径。(none)
SUPABASE_URL所需用于 supabase 存储。 您的Supabase项目URL (none)
SUPABASE_SERVICE_ROLE_KEY所需用于 supabase 存储。 您的Supabase服务角色密钥。(none)
SURREALDB_URL所需(用于) surrealdb 存储。 SurrealDB 端点(例如。, wss://cloud.surrealdb.com/rpc)。(none)
SURREALDB_NAMESPACE所需用于 surrealdb 存储。 SurrealDB 命名空间。(none)
SURREALDB_DATABASE所需(的)用于 surrealdb 存储。 SurrealDB 数据库名称。(none)
SURREALDB_USERNAME可选用于 surrealdb 存储。 用于身份验证的数据库用户名。(none)
SURREALDB_PASSWORD可选用于 surrealdb 存储。 用于认证的数据库密码。(none)
OTEL_ENABLED设置为 true 以启用 OpenTelemetry。false
LOG_LEVEL日志记录的最低级别 (debuginfowarnerror)。info
OPENROUTER_API_KEY OpenRouter LLM服务的API密钥。(none)

认证与授权

  • 模式: none (默认), jwt (需要 MCP_AUTH_SECRET_KEY),或者 oauth (需要 OAUTH_ISSUER_URL 并且 OAUTH_AUDIENCE)。
  • 执行包装你的工具/资源 logic 带有函数的功能/特性 withToolAuth([...]) 或者 withResourceAuth([...]) 以执行范围检查。当认证模式为(某种模式时,为开发者的便利起见,会跳过范围检查) none

存储

  • 服务一个由DI(依赖注入)管理的 StorageService 提供了一致的API用于持久化。 永远不要访问 fs 或直接从工具逻辑中使用其他存储SDK。
  • 服务提供者默认设置是 in-memory仅节点提供者包括 filesystem与Edge兼容的提供商包括 supabasesurrealdbcloudflare-kv,以及 cloudflare-r2
  • SurrealDB 安装配置当使用时 surrealdb 提供者,使用(工具/方法)初始化数据库架构 docs/surrealdb-schema.surql 首次使用前。
  • 多租户(性)这个(或:该) StorageService 需要 context.tenantId这个会自动从……传播过来 tid 当启用身份验证时,在JWT(JSON Web Token)中声明。
  • 高级功能

- 安全分页带有租户ID绑定的不透明光标可防止跨租户攻击 - 批处理操作并行执行用于 getMany()setMany()deleteMany() - TTL 支持在所有提供商中实现带适当过期处理的生存时间(Time-to-live) - 全面验证租户ID、密钥和选项的集中输入验证

可观测性

  • 结构化日志记录Pino开箱即用。所有日志均为JSON格式,并包含 RequestContext
  • OpenTelemetry默认禁用。如需启用,请使用 OTEL_ENABLED=true 并配置OTLP(Open Telemetry Protocol)端点。每次工具调用时,都会自动捕获追踪信息、指标(持续时间、有效载荷大小)和错误。

▶️ 运行服务器

本地开发

  • 构建并运行生产版本:
  # One-time build
  bun rebuild

  # Run the built server
  bun start:http
  # or
  bun start:stdio
  • 运行检查和测试
  bun devcheck # Lints, formats, type-checks, and more
  bun run test # Runs the test suite (Do not use 'bun test' directly as it may not work correctly)

Cloudflare Workers(云网工)

  1. 构建Worker包
bun build:worker
  1. 使用 Wrangler 在本地运行
bun deploy:dev
  1. 部署到Cloudflare
bun deploy:prod
这个 wrangler.toml 文件已预先配置以启用 nodejs_compat 以获得最佳效果。

📂 项目结构

目录目的与内容指南
src/mcp-server/tools/definitions您的工具定义(*.tool.ts)。 这就是你添加新功能的地方。📖 MCP指南
src/mcp-server/resources/definitions您的资源定义(*.resource.ts)。 这是您添加新数据源的地方。📖 MCP指南
src/mcp-server/transports 实现HTTP和STDIO传输协议,包括认证中间件。📖 MCP指南
src/storageThe StorageService 抽象化以及所有存储提供程序的实现。💾 存储指南
src/services与外部服务的集成(例如,默认的OpenRouter大型语言模型(LLM)提供商)。🔌 服务指南
src/container 依赖注入容器的注册项和令牌。📦 容器指南
src/utils用于日志记录、错误处理、性能、安全和遥测的核心工具。
src/config 使用Zod解析和验证环境变量。
tests/ 单元测试和集成测试,模拟(或映射) src/ 目录结构。

📚 文档

每个主要模块都包含全面的文档,其中包括架构图、使用示例和最佳实践:

核心模块

- 使用声明式定义创建工具 - 使用URI模板进行资源开发 - 认证和授权 - 传输层(HTTP/stdio)配置 - SDK上下文和客户端交互 - 响应格式化和错误处理

- 理解DI令牌和注册 - 服务生命周期(单例、瞬态、实例) - 构造函数注入模式 - 使用模拟依赖进行测试 - 向容器中添加新服务

- 大型语言模型(LLM)提供商集成(OpenRouter) - 语音服务(使用ElevenLabs、Whisper的TTS/STT) - 图数据库操作(SurrealDB) - 创建自定义服务提供者 - 健康检查和错误处理

- 存储提供商的实现 - 多租户和租户隔离 - 基于光标的分页(安全实现) - 批处理操作和TTL支持 - 特定提供商的设置指南

额外资源

🧑‍💻 代理开发指南

如需了解在使用此模板与AI代理时应遵循的严格规则,请参阅 AGENTS.md关键原则包括:

  • 逻辑抛出,处理程序捕获永远不要使用 try/catch 在你的工具/资源中 logic. 扔一个 McpError 相反。
  • 使用引出法处理缺失的输入如果某个工具需要用户输入而用户未提供,使用 elicitInput 来自(或:来自...的功能) SdkContext 向用户请求它。
  • 传递上下文总是要传递 RequestContext 通过你的调用栈来获取对象。
  • 使用桶装出口仅在(指定的)地方注册新的工具和资源 index.ts 桶装文件。

❓ 常见问题解答 (FAQ)

  • 这个功能同时支持STDIO和Streamable HTTP吗?

- 是的。这两种传输方式都是第一等的。使用 bun run dev:stdio 或者 bun run dev:http

  • 我可以将这个部署到边缘吗?

- 是的。这个模板是为Cloudflare Workers设计的。运行 bun run build:worker 并使用 Wrangler 进行部署。

  • 我必须使用 OpenTelemetry 吗?

- 不,默认情况下它是禁用的。通过设置来启用它 OTEL_ENABLED=true 在你的 .env 文件。

  • 如何将我的服务器发布到MCP注册表中?

- 按照以下分步指南操作 docs/publishing-mcp-server-registry.md.

🤝 贡献(或:参与贡献)

欢迎提出问题和拉取请求!如果您计划做出贡献,请在提交拉取请求前先进行本地检查和测试。

bun run devcheck
bun test

📜 许可证

此项目遵循Apache 2.0许可证。详见 许可证 文件中详述。

______________________________________________________________________

Sponsor this project • Buy me a coffee

目录标签

目录标签

边缘计算错误处理Cloudflare WorkersClaudeMCP服务器TypeScript本地部署依赖注入声明式工具CloudflareWorkers

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP