使用说明
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种通知模式及代码示例 |
✨ 特点/功能
三个实施层面
-
基本服务器 (src/index.ts 翻译为中文是:源代码目录下的入口文件(或索引文件).ts(TypeScript文件))
- 简单,易于理解
- 核心通知概念
- 非常适合学习
-
高级服务器 (示例/高级服务器.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 <──notify──────┘
服务器:
- 接受客户的订阅
- 监控资源的变化
- 自动通知订阅者
- 管理订阅生命周期
看 ARCHITECTURE.md 翻译为中文是:“架构.md”(其中,“.md”表示这是一个Markdown格式的文件) 以获取完整详情。
通知模式
- 事件驱动 - 用户操作触发通知
- 周期性的 - 定期更新(定时器)
- 文件系统 - 监控文件变化
- 阈值 - 对重要数值发出警报
- 批量处理的 - 群组通知
- 过滤过的 - 条件更新
- 级联 - 相关资源更新
测试场景
- 基本订阅和通知
- 多个订阅者
- 退订行为
- 多种资源
- 错误处理
- 负载下的性能
- 连接丢失恢复
- 还有更多。。。
🎯 实际应用场景
这个演示展示了以下模式:
- 📊 表格/数据图表 实时仪表板 - 实时数据更新
- 🔍(放大镜图标,通常表示搜索或查看细节) 系统监控 - 健康检查和警报
- 📁 文件夹 文件同步 - 热加载配置
- 📝 翻译成中文是:📝(这个符号本身没有直接的中文翻译,但通常代表“便签”或“记事本”的意思,所以可以理解为“📝(便签/记事本)”) 日志流 - 实时日志查看
- 🚨(紧急警报/危险信号) 警报系统 - 基于阈值的通知
- 👥(表示“人们”或“人群”的符号,具体翻译可能根据上下文有所不同) 协作工具 - 多用户更新
- 📈 分析(或:数据分析) - 实时指标追踪
📦 包含内容
mcp-notification-server/
├── 📄 QUICKSTART.md # 5-minute setup guide
├── 📄 DEMO.md # Interactive walkthrough
├── 📄 ARCHITECTURE.md # System design docs
├── src/
│ └── index.ts # Basic server (start here!)
├── examples/
│ ├── advanced-server.ts # Production patterns
│ ├── client.ts # Interactive demo
│ ├── patterns.md # 7 notification patterns
│ ├── test-scenarios.md # Testing guide
│ └── run-demo.sh # Easy demo runner
├── package.json
└── tsconfig.json
🔧 开发
# Install dependencies
npm install
# Build everything
npm run build
# Run basic server
npm start
# Run advanced server
node dist/examples/advanced-server.js
# Run interactive client demo
node dist/examples/client.js
📊 代码示例
最小化服务器
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
const server = new Server(
{ name: "my-server", version: "1.0.0" },
{ capabilities: { resources: { subscribe: true } } }
);
// Handle subscriptions
server.setRequestHandler(SubscribeRequestSchema, async (request) => {
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文件格式,但在此处作为文件名的一部分,直接保留不翻译)🚀!
