← 返回目录
F

Fastify MCP Server

社区
框架 / SDK
面向 Fastify 的 MCP 服务器插件,内置 SSE、stdio、OAuth 2.1 与 Redis 横向扩展支持。

这是用于开发 MCP Server 或 Agent 的框架,不是可以直接连接到客户端的 Server。

分类
开发工具 第 74 / 438
Stars
★ 58 热门
传输方式
stdio(本地进程) · SSE · Streamable HTTP
运行环境
Node.js
凭据
无需凭据
许可证
Apache-2.0
最近提交
63FMRS · C

这是 Platformatic 团队维护的开源 Fastify 插件,用于快速搭建符合 MCP 规范的服务器骨架,功能覆盖协议协商、SSE/stdio 传输、Redis 横向扩展、OAuth 2.1 鉴权与任务/征询等新特性,但它是开发框架而非开箱即用的工具服务,实际安全性和可用工具集完全取决于使用者自行编写的代码。

最强项 · 文档质量 17/20 最弱项 · 可靠性 9/20

可靠性
9/20
安全与权限
14/20
维护活跃度
10/20
文档质量
17/20
安装易用性
13/20
查看各项评分依据
可靠性 9/20
README 详细描述了协议版本协商(2025-11-25 向下兼容至 2024-11-05)、initialize 握手、工具/资源/提示注册及 TypeBox/AJV 校验等行为,逻辑自洽且给出大量代码示例,声称“全面的测试覆盖”,但本次审查未获得实际的 CI workflow 文件或测试文件作为可验证证据,也没有提供服务器清单(manifest not cached)。按静态校准规则,没有可核实的执行证据时可靠性不得超过 12 分;由于完全无法验证工具行为与文档描述是否一致、错误处理是否真实可控,进一步扣分至 9 分。
安全与权限 14/20
安全设计覆盖面较广:Origin 校验防 DNS rebinding、OAuth 2.1 + PKCE + JWT/introspection、bearer-auth 建议、canAccessTool 细粒度工具授权钩子、输入净化与深度/长度限制、URL 模式 elicitation 将敏感信息(密码/密钥/支付)移出表单模式、任务在启用授权时绑定 token subject 且匿名模式下 tasks/list 被拒绝以防止 ID 枚举。未发现红线问题(无恶意代码、无不可逆的默认破坏性操作)。但这些描述均来自未经验证的 README/文档本身,没有源码或测试证实实现正确性,且速率限制被描述为“应由生产环境自行实现”而非内置强制,因此不能给满分。
维护活跃度 10/20
仓库使用 Apache-2.0 许可证、未被归档,符合基本合规要求。但可获得的元数据仅有 58 星和 23 个未关闭 issue,没有提供提交历史、发布节奏、变更日志或安全响应渠道等可验证信息,无法判断维护是否持续活跃或问题响应速度。按“证据缺失即扣分”的原则,只能给中等偏低分数。
文档质量 17/20
文档质量很高:涵盖安装、快速开始、协议版本协商表格、SSE/Redis 横向扩展、stdio 传输、OAuth 2.1 完整流程、TypeBox/AJV 校验行为差异、per-tool 授权钩子、路由 schema 定制、安全注意事项及测试示例,层次分明且示例丰富,并明确指出了一些边界情况(如无 Origin 头请求总是被接受、AJV 未启用时 JSON Schema 不做运行时校验)。轻微扣分因为部分行为(如速率限制、许多安全断言)仍属自我声明,没有独立故障排查/已知限制章节,且清单信息缺失。
安装易用性 13/20
安装步骤清晰:npm install 与可选的 TypeBox 依赖、Fastify 插件注册示例、stdio 与 HTTP 两种传输方式的最小可运行代码。但按静态校准规则,没有 CI 或测试证据验证这些示例真的可运行,安装易用性上限为 15 分;同时该插件涉及多个可选前置条件(Redis 用于水平扩展、OAuth 授权服务器、bearer-auth 插件),增加了实际落地的复杂度,因此扣分至 13 分。

静态评测 · 未实际运行收录于 2026-08-26

查看 FMRS 评分方法 →

选型与风险

适合谁

  • 熟悉 Node.js/Fastify 的后端开发者,需要自建可扩展、可鉴权的 MCP 服务器
  • 需要 Redis 支持的分布式、多实例部署场景
  • 希望使用 TypeBox 获得类型安全的工具入参校验的团队

不适合谁

  • 希望零配置直接获得一组现成工具(如文件系统、数据库访问)的最终用户
  • 非 Node.js/Fastify 技术栈的团队
  • 只需要简单单机原型、不关心横向扩展或鉴权的极简场景

所需权限

  • 作为库运行于开发者自己的 Fastify 进程,具体文件系统/网络权限取决于开发者实现的工具处理函数
  • 启用 Redis 后需要网络访问 Redis 实例(用于会话存储与消息代理)
  • 启用 OAuth 2.1 后需要访问授权服务器的 JWKS 端点或令牌自省端点
  • URL 模式的征询(elicitation)会引导用户跳转到外部 URL 完成敏感操作

风险与副作用

  • 该插件本身不自带工具,安全性很大程度上取决于开发者自行实现的工具处理逻辑
  • 未启用鉴权(authorization)时,任务(tasks)仅凭随机 UUID 保护,持有 ID 的任何人都可访问该任务
  • 生产环境的速率限制(rate limiting)需要开发者自行接入,插件仅提供基础的 DoS 防护(长度/深度/属性数量限制)
  • 同一 session 允许多个 SSE 连接并广播消息,这一实现有意偏离了 MCP 规范中“每条消息只发往一个连接”的要求,可能导致重复消息
  • `transformRouteSchema` 仅修改 OpenAPI 文档元数据,不会强制执行鉴权,需自行确保实际鉴权钩子已配置

安装接入

准备工作

运行环境:Node.js

OAUTH_CLIENT_SECRET 可选密钥 OAuth 2.1 客户端密钥,从授权服务器获取,属敏感凭据。
REDIS_PASSWORD 可选密钥 Redis 认证密码,属敏感凭据。
MCP_BEARER_TOKEN 可选密钥 配合 @fastify/bearer-auth 使用的 Bearer 令牌,属敏感凭据。
其他可选配置项(6 个)
OAUTH_CLIENT_ID 可选 OAuth 2.1 客户端 ID,来自授权服务器注册,仅启用 authorization 时使用。
REDIS_HOST 可选 Redis 主机名,用于水平扩展的会话共享,默认 localhost。
REDIS_PORT 可选 Redis 端口,默认 6379。
REDIS_DB 可选 Redis 数据库编号,默认 0。
DEBUG 可选 设为 true 时在 stdio 模式下向 stderr 输出调试日志。
PORT 可选 HTTP 监听端口,示例中使用 3000 等。

通过 npm 安装:npm install @platformatic/mcp(如需 TypeBox 类型校验,另装 @sinclair/typebox)。随后在自己的 Fastify 应用中 await app.register(mcpPlugin, { ... }),并使用 app.mcpAddTool / app.mcpAddResource / app.mcpAddPrompt 注册具体的工具、资源和提示后运行服务。若需 stdio 传输,调用包内导出的 runStdioServer(app, options)。

验证是否装好

启动 Fastify 应用并向 /mcp 发送 initialize 请求,或在 stdio 模式下运行 node server.js 并发送 initialize JSON-RPC 消息;客户端成功协商协议版本并通过 tools/list 看到注册的工具即说明安装成功。

常见排障

  1. HTTP 请求返回 400:检查 `MCP-Protocol-Version` 请求头是否与已协商的会话版本一致,或是否传入了不受支持的协议版本
  2. 浏览器请求被拒绝(403):检查请求的 Origin 是否在 `allowedOrigins` 允许列表中
  3. `tasks/result` 返回 not found:检查任务的 `ttl` 是否过短,任务可能在完成前已过期
  4. 多实例部署下消息未能跨实例送达:确认已正确配置 `redis` 选项,并检查各实例是否连接同一 Redis 实例
  5. 鉴权请求返回 401:确认 Bearer Token、JWKS/自省端点或 `authorization.enabled` 等配置是否正确

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 列出这个服务器注册的所有工具
  • 用 calculate 工具计算 12 乘以 8
  • 读取 file://config. 这个资源的内容
  • 调用 echo 工具,把 'Hello, stdio!' 原样返回

使用场景

在现有 Fastify 后端中快速添加符合 MCP 规范的工具/资源/提示接口
构建需要跨实例广播通知、支持客户端断线重连的 SSE 流式 MCP 服务
需要 OAuth 2.1、JWT/令牌自省等企业级鉴权的多用户 MCP 服务
需要任务式(长耗时)工具调用与结果轮询的场景

详细介绍

@platformatic/mcp 是一个 Fastify 插件,用于在 Fastify 应用中实现 Model Context Protocol (MCP) 服务器(基于 JSON-RPC 2.0)。它本身不是一个带有固定工具集的独立服务器,而是供开发者在自己的 Fastify 项目中注册工具(tools)、资源(resources)和提示(prompts)的框架库。支持协议版本协商(最新为 2025-11-25,向下兼容 2025-06-18、2025-03-26、2024-11-05),提供 HTTP/SSE 与 stdio 两种传输方式,支持基于 Redis 的会话与消息代理以实现多实例横向扩展,并内置 OAuth 2.1 授权、TypeBox/AJV 参数校验、输入净化、任务(tasks,实验性)与征询(elicitation,含表单模式和 URL 模式)等能力。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 63.3k · 工具数 2 与当前对比 →

源版本 8525bb43b3b5 数据同步于 2026-10-19 查看 FMRS 评分方法