MCP 通知服务器 - 完整演示
A. 全面且可投入生产的演示 关于MCP(模型上下文协议)的通知和订阅,提供工作示例、多种模式、交互式演示以及完整的文档。
🎯 这是什么?
这个仓库提供了 最完整的演示 现有MCP通知包括:
- 实际运行的服务器实现(基础版和高级版)
- 交互式客户端演示
- 现实世界中的通知模式
- 全面的测试场景
- 完整的架构文档
- 分步指南
非常适合学习如何在自己的MCP服务器上实现通知功能!
⚡ 快速入门
5分钟内开始跑步 → QUICKSTART.md 翻译为中文是:快速入门指南.md
git clone https://github.com/whocaresthat/mcp-notification-server.git
cd mcp-notification-server
npm install
npm run build
# Run interactive demo
node dist/examples/client.js📚 完整文档
| 文件 | 描述 |
|---|---|
| 🚀 QUICKSTART.md 翻译为中文是:“快速入门指南.md”(其中“.md”通常表示Markdown格式的文件) | 5分钟内快速启动并运行 |
| 🎬(视频播放图标) DEMO.md 翻译为中文是:“演示文件.md” 或 “示例文件.md”(具体翻译可能根据上下文有所调整,但“DEMO”通常可译为“演示”或“示例”) | 交互式演示指南 |
| 🏗️ ARCHITECTURE.md 翻译为中文是:“架构.md”(其中,“md”通常表示Markdown文件格式) | 系统设计、模式与最佳实践 |
| 🧪 test-scenarios.md 翻译为中文是:“测试场景.md” | 10个全面的测试场景 |
| 📚(一本书) patterns.md(文件名,可译为“模式.md”或保持原样,因为文件扩展名通常不翻译) | 7种通知模式及代码示例 |
✨ 特点/功能
三个实施层面
- 简单,易于理解 - 核心通知概念 - 非常适合学习
- 高级服务器 (示例/高级服务器.ts)
- 文件系统监控 - Webhook 端点 - 定期更新 - 生产模式
- 交互式客户端 (\
examples/client.ts\翻译为中文是:“示例/客户端代码.ts” 或 “示例/客户端文件.ts”(具体翻译可能根据上下文调整,但基本意思是表示这是一个示例中的客户端代码或文件))
- 完整的客户端实现 - 自动化演示 - 显示通知在运行中的状态
综合示例
✅ 事件驱动的通知 ✅ 定期更新(定时器) ✅ 文件系统监控 ✅ Webhook 集成 ✅ 基于阈值的警报 ✅ 批量通知 ✅ 多个订阅者 ✅ 订阅生命周期管理
🎓 你将学到的内容
适合初学者
- ✓ 什么是MCP通知?
- ✓ 如何启用订阅
- ✓ 发送您的第一条通知
- ✓ 使用Claude桌面版进行测试
针对高级用户
- ✓ 可投入生产的图案/模板
- ✓ 性能优化
- ✓ 错误处理策略
- ✓ 安全考量
- ✓ 可扩展性模式
🚀 使用方法
选项1:互动演示
npm install
npm run build
node dist/examples/client.js通过自动化演示,实时查看通知功能!
选项2:Claude桌面版
在您的Claude配置中添加:
{
"mcpServers": {
"notification-demo": {
"command": "node",
"args": ["/absolute/path/to/mcp-notification-server/dist/index.js"]
}
}
}然后在Claude上试试:
- “订阅 counter://main”
- “将计数器增加5”
- “当前计数器的值是多少?”
选项3:MCP检查器
npx @modelcontextprotocol/inspector dist/index.js打开 http://localhost:5173 进行交互式测试。
选项4:自定义集成
将此代码作为您自己的MCP服务器的模板来使用!
📖 文档亮点
架构概述
Client ──subscribe──> Server
Client {
subscriptions.set(clientId, request.params.uri);
return {};
});
// Send notifications
await server.notification({
method: "notifications/resources/updated",
params: { uri: "resource://example" }
});最小化客户端
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
// Handle notifications
client.setNotificationHandler({
method: "notifications/resources/updated",
handler: async (notification) => {
console.log(`Updated: ${notification.params.uri}`);
}
});
// Subscribe
await client.request({
method: "resources/subscribe",
params: { uri: "resource://example" }
});🧪 测试
运行综合测试场景:
# See all test scenarios
cat examples/test-scenarios.md
# Run with MCP Inspector
npx @modelcontextprotocol/inspector dist/index.js🌟 主要特点
| 功能 | 基础服务器 | 高级服务器 |
|---|---|---|
| 订阅/取消订阅 | ✅ | ✅ |
| 工具触发的通知 | ✅ | ✅ |
| 文件系统监视 | ❌ | ✅ |
| 定期更新 | ❌ | ✅ |
| Webhook 集成 | ❌(否) | ✅(是) |
| 多个订阅者 | ✅ | ✅ |
| 错误处理 | ✅ | ✅ |
| 性能优化 | 基本 | ✅ |
🤝 贡献(或“参与贡献”)
欢迎投稿!请:
- 阅读 ARCHITECTURE.md 翻译为中文是:“架构.md”(其中“.md”通常表示Markdown格式文件,但在此处作为文件名的一部分,直接保留原样翻译)
- 检查 test-scenarios.md 翻译为中文是:“测试场景.md”
- 为新功能添加测试
- 更新文档
📚 了解更多
- 📖 书籍 MCP 规范
- 🔧(扳手或修理工具的象征) MCP TypeScript SDK
- 🌐 表示“地球/网络/互联网”(具体含义根据上下文可能有所不同)。 MCP 文档
- 💬 MCP社区
🎯 下一步行动
- 从这里开始 → QUICKSTART.md 翻译为中文是:“快速入门指南.md”(其中,“.md”表示这是一个Markdown格式的文件)
- 试用演示版 →
node dist/examples/client.js - 阅读模式 → \
patterns.md\翻译为中文是:“模式.md” - 理解设计 → ARCHITECTURE.md(文件名,可译为“架构说明.md”或保持原样,因为文件名通常不直接翻译)
- 自建你的专属(系统/项目/产品等) → 把这个当作模板使用!
📄 许可证
MIT 许可证 - 详见 许可证 文件中详述
______________________________________________________________________
🌟 为什么选择这个仓库?
这是 最全面的MCP(可能是指某种特定系统或协议的缩写,如“多协议转换”或根据上下文具体确定)通知演示 之所以可用,是因为它包含:
- ✅ 三级实施(基础级、高级、客户端)
- ✅ 七种现实世界中的通知模式
- ✅ 完整的架构文档
- ✅ 设计全面的测试场景
- ✅ 你可以立即运行的交互式演示
- ✅ 可直接投入生产的代码,可用作模板
- ✅ 各技能水平的分步指南
准备好掌握MCP通知了吗? 从……开始 QUICKSTART.md 翻译为中文是:“快速入门指南.md”(其中“.md”通常表示Markdown文件格式,但在此处作为文件名的一部分,直接保留不翻译)🚀!
