🚀 加速MCP服务器
](https://nodejs.org/)     
高性能MCP(模型上下文协议)服务器 基于Fastify、TypeScript和函数式编程原则构建。生产就绪,具有身份验证、指标和自动发现功能。
🎯 关于本项目
加速MCP服务器 是模型上下文协议(MCP)规范的生产级实现,专为AI代理和LLM应用程序设计。它采用现代TypeScript和函数式编程范式构建,为需要安全、可扩展MCP服务器功能的AI驱动应用程序提供了坚实的基础。
🔑 主要优势
- ⚡ 迅速的:基于Fastify构建-最快的Node.js web框架
- 🔒 企业安全:承载令牌身份验证和安全会话管理
- 📊 生产就绪:Kubernetes健康检查、指标端点和监控
- 🧩 自动发现:工具、资源和提示的自动注册
- 🛡️ 类型安全:通过Zod验证完全支持TypeScript
- 🎯 功能的:可靠性的纯函数式编程方法
📋 目录
✨ 特性
- 🏎️ 禁食动力 -闪电般快速的HTTP服务器,支持TypeScript
- 🔧 MCP协议 -使用工具、资源和提示实现完整的模型上下文协议
- 🛡️ 安全认证 -用于MCP服务器连接的承载令牌中间件
- 📊 生产就绪 -Kubernetes健康端点和指标路由
- 🧩 模块化架构 -MCP功能的自动注册系统
- 🔒 类型安全 -Zod验证
@modelcontextprotocol/sdk - 🎯 函数式编程 -贯穿始终的严格功能范式
🚀 用例
非常适合建筑:
- AI代理平台 -为AI应用程序提供安全的MCP服务器
- LLM集成 -将语言模型与外部工具和数据连接起来
- 企业人工智能 -面向组织的生产就绪MCP基础设施
- 开发者工具 -用于开发工作流的自定义MCP服务器
- API网关 -具有MCP功能的高性能API端点
- 微服务 -分布式架构中的可扩展MCP服务
🏆 为什么选择此服务器?
| 功能 | 加速MCP服务器 | 其他解决方案 |
|---|---|---|
| 演出 | ⚡ 基于禁食❌ 快/慢 | |
| 类型安全 | ✅ 完整TypeScript | ❌ 仅限JavaScript |
| 安全 | 🔒 持有者代币 | ❌ 基本身份验证 |
| 生产 | 📊 指标与健康 | ❌ 仅限开发 |
| 建筑 | 🧩 自动发现 | ❌ 手动设置 |
| 标准 | ✅ 符合MCP 1.0标准❌ 自定义协议 |
⚡ 生产就绪
- ✅ Kubernetes -健康检查和准备情况调查
- ✅ 监控 -内置指标和日志记录
- ✅ 安全 -承载令牌身份验证
- ✅ 可扩展性 -水平缩放支持
- ✅ 可靠性 -每会话MCP隔离,自动清除过时会话
🏗️ 建筑
核心组件
- Fastify服务器 -带有自定义MCP插件的高性能HTTP服务器
- MCP传输 -作为Fastify插件注入,实现无缝集成
- 会话管理 -处理MCP客户端连接和状态
- 自动注册 -自动发现并注册MCP功能
端点
GET /health-Kubernetes活性探测(无身份验证)GET /metrics-应用程序指标(无身份验证)POST /mcp-MCP流式HTTP传输(需要承载身份验证)
会话管理
MCP SDK需要 一 Server/Protocol 每个传输实例,因此会话管理器实例化一个新的 McpServer 每个连接(参见 src/mcp/sessions.ts).会话按ID跟踪,并在30分钟不活动后收获。
- 每会话隔离 -每个MCP客户端都有自己的服务器实例
- 基于活动的超时 -会话在积极使用时保持活动状态
- 自动清理 -每5分钟删除一次停滞会话(30分钟空闲)
- 平滑关闭 -服务器停止时所有会话都已关闭
会话生命周期:创建(新UUID)→ 在后续具有相同请求的情况下重用 mcp-session-id 头球→ 过期时进行清理。
🔐 安全
服务器包括身份验证中间件(src/middleware/auth.ts)其使用承载令牌验证MCP连接。令牌是通过以下方式配置的 MCP_SERVER_TOKEN 环境变量,确保对MCP服务器功能的安全访问。
📁 MCP能力
服务器自动注册 工具, 资源,以及 提示 更新时,从其各自的文件夹中 index.ts 每个目录中的文件:
🛠️ 工具
执行操作并返回结构化输出的活动、可调用函数。非常适合:
- 状态变化和副作用
- 外部API调用和计算
- LLM选择调用哪个工具的代理工作流
📚 资源
通过URI公开的只读结构化数据表面。非常适合:
- 背景知识和文件
- 跨会话共享上下文
- 二进制内容和大型工件
📝 提示
用于可重用AI工作流程的参数化指令模板。非常适合:
- 标准化任务(总结、翻译等)
- 将快速工程与应用程序逻辑分离
- 多步骤编排的工作流
💡 每种能力类型都有其各自的详细文档 README.md 文件。🚀 快速开始
先决条件
- Node.js >=22(建议:24.x LTS,请参阅
.nvmrc) - pnpm (该项目运送a
pnpm-lock.yaml) - Git
💡 使用nvm:nvm use将拾取固定的版本.nvmrc自动。
安装
git clone https://github.com/your-username/fastify-mcp-server.git
cd fastify-mcp-server
pnpm install
pnpm build发展
pnpm dev # HTTP server with hot reload (tsx watch)
pnpm mcp # Run as stdio MCP server (for Claude Desktop direct integration)
pnpm start # Production server (after pnpm build)配置
cp .env.example .envMCP_SERVER_PORT=9080
MCP_SERVER_HOST=localhost
MCP_SERVER_TOKEN=super-secret-token # change for non-local use
LOG_LEVEL=debug🔌 MCP客户端集成
两条整合路径-- 标准 (最简单,不需要服务器)或 超文本传输协议 (测试生产传输、身份验证、会话)。
Claude Desktop--stdio(建议用于本地开发)
先构建: pnpm build。然后添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"fastify-mcp-local": {
"command": "node",
"args": ["/absolute/path/to/fastify-mcp-server/dist/mcp-stdio.js"]
}
}
}ℹ️ 默认情况下,记录器在stdio模式下写入stderr,因此不需要额外的配置。
克劳德桌面——通过HTTP mcp-remote 桥
Claude Desktop仅在本地生成stdio进程。要使用HTTP传输,请将其与桥接 mcp-remote:
{
"mcpServers": {
"fastify-mcp-local": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:9080/mcp",
"--header",
"Authorization: Bearer super-secret-token"
]
}
}
}跑 pnpm dev 第一;然后退出并重新打开Claude Desktop。日志位于 ~/Library/Logs/Claude/mcp-server-*.log.
⚠️npx解决node从PATH。如果您通过nvm安装了多个Node版本,请确保您的默认(nvm alias default)节点≥18,或mcp-remote将崩溃undici.
cURL/邮递员
curl -X POST http://localhost:9080/mcp \
-H "Authorization: Bearer super-secret-token" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'邮递员: POST http://localhost:9080/mcp,认证→ 承载令牌=您的 MCP_SERVER_TOKEN.
🛠️ 发展
添加新功能
- 工具:添加您的工具
src/tools/并从导出src/tools/index.ts - 资源:在中添加您的资源
src/resources/并从导出src/resources/index.ts - 提示:在中添加您的提示
src/prompts/并从导出src/prompts/index.ts
服务器将在重新启动时自动注册它们。
脚本
pnpm dev # HTTP server with hot reload (tsx watch)
pnpm build # Compile TypeScript → dist/
pnpm start # Run compiled server (node dist/index.js)
pnpm mcp # Run as stdio MCP server (after build)
pnpm check # Type check without emit
pnpm lint # ESLint --fix
pnpm lint:check # ESLint, no fixes
pnpm format # Prettier --write
pnpm format:check # Prettier --check
pnpm clean # Remove dist/📦 技术栈
核心技术
- 快速 -快速且低开销的web框架
- @模型上下文协议/sdk -MCP TypeScript官方SDK
- 萨德 -TypeScript第一模式验证
- 皮诺 -超快速、全自然的JSON记录器
- TypeScript -类型安全和现代JavaScript功能
开发工具
- 埃斯林特 -代码linting
- 更漂亮 -代码格式
- TSX -TypeScript执行和监视模式
- pnpm -包管理器
关键词和标签
mcp-server fastify typescript ai-agents llm-integration model-context-protocol nodejs api-server production-ready authentication metrics kubernetes functional-programming type-safety enterprise microservices ai-platform developer-tools
🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发流程
- 叉子 存储库
- 创建 特征分支(
git checkout -b feature/amazing-feature) - 提交 您的更改(
git commit -m 'Add amazing feature') - 推 到分行(
git push origin feature/amazing-feature) - 打开 拉取请求
代码质量
- ✅ TypeScript -全型安全
- ✅ 埃斯林特 -代码质量和一致性
- ✅ 更漂亮 -代码格式
- ✅ 测试 -全面的测试覆盖率
- ✅ 文档 -清晰且最新的文档
📚 资源
文档
- MCP规范 -MCP官方文件
- Fastify文档 -Fastify框架指南
- TypeScript 手册 -TypeScript引用
社区
- -社区讨论
- 问题 -Bug报告和功能请求
- Discord 的中文翻译是“不和谐”或“纷争”。 -实时社区聊天
相关项目
- 模型上下文协议 -MCP官方组织
- Fastify生态系统 -Fastify插件和工具
- TypeScript MCP SDK -TypeScript官方SDK
📄 许可证
版权所有©2025–2026穆斯塔法
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
_内置于❤️ 使用函数式编程原理和现代TypeScript_
🌟 为该存储库添加星号
如果你觉得这个项目有帮助,请给它一颗星⭐ 在GitHub上!
