API变更监控工具

MCP上游API监控工具v2通过智能LLM分析监控API变更,并在检测到需要操作的变更时发送Slack通知。

  • by yesper-ai
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 furrytailapps/mcp-monitoring

使用说明

MCP上游API监视器v2

使用智能LLM分析监控MCP服务器的上游API更改,并在检测到可操作的更改时发送Slack通知。

特性

  • 自动发现:通过扫描自动查找MCP mcp-* 目录
  • 基于哈希的变化检测:有效检测网页或RSS提要何时更改
  • LLM动力分析:使用Claude Sonnet智能分析变化并确定影响
  • 三剂管道:API研究员→ MCP研究员→ 工程师决定
  • 智能缓存:MCP依赖性分析已缓存30天
  • Slack通知:仅在需要采取行动时发送警报
  • GitHub操作:具有手动触发选项的自动月度检查

快速开始

# Install dependencies
npm install

# Discover MCPs in parent directory
npm run discover

# Check sources for changes (hash-based only)
npm run check-sources

# Run full check with LLM analysis
ANTHROPIC_API_KEY="sk-ant-..." npm run check

命令

命令 描述
npm run discover 列出所有MCP及其上游API
npm run check-sources 检查源是否有更改(基于哈希,无LLM)
npm run check 使用LLM代理运行完整分析
npm run notify-test 发送测试Slack通知

环境变量

变量 必填 描述
ANTHROPIC_API_KEY For check 用于LLM分析的Claude API密钥
SLACK_WEBHOOK_URL 用于通知 Slack传入webhook URL
MCP_SCAN_ROOT 否 目录包含 mcp-* 文件夹(默认:父目录)

GitHub操作设置

工作流在每月1日自动运行,也可以手动触发。

  1. 去你的仓库 设置→ 秘密和变量→ 行动
  2. 添加这些秘密:
    • ANTHROPIC_API_KEY -您的Claude API密钥
    • SLACK_WEBHOOK_URL -您的Slack webhook URL
  3. 手动触发: 行动→ MCP上游API监测器→ 运行工作流

运作原理

v2监视器使用3代理LLM管道:

  1. 基于哈希的变化检测:获取网页和RSS提要,计算哈希值,高效检测更改

  2. 代理人1-API研究员:分析更改的页面内容以提取与API相关的公告(弃用、中断更改、新功能、维护)

  3. 代理人2-MCP研究员:通过阅读CLAUDE.md和源代码(结果缓存30天)了解每个MCP所依赖的API

  4. 代理人3-工程师:根据API变更和MCP依赖性决定需要采取什么行动

  5. 通知:仅在需要采取行动时发送到Slack(紧急或通知级别)

监控源

监测人员追踪以下瑞典政府API来源:

提供者 来源
瑞典水文气象局 开放式数据门户、API文档、RSS提要
交通 Trafiklab新闻,开发者门户,RSS订阅源
上海大学 主页,资源门户
自然 保护 局 Geodata门户、开放数据门户、RSS订阅源

配置

源注册表(config/sources.yaml)

sources:
  my-api:
    name: "My API"
    web_pages:
      - url: "https://api.example.com/docs"
        description: "API documentation"
      - url: "https://api.example.com/feed.rss"
        description: "RSS feed"

状态文件(state/last-check.json)

商店:

  • 用于变化检测的内容哈希
  • MCP研究员缓存(30天TTL)
  • 上次检查时间戳

建筑

├── .github/
│   └── workflows/
│       └── monitor.yml        # GitHub Actions workflow
├── config/
│   └── sources.yaml           # Web pages and RSS feeds to monitor
├── state/
│   └── last-check.json        # Hashes + MCP researcher cache
├── src/
│   ├── agents/
│   │   ├── api-researcher.ts  # LLM: Extracts API changes from pages
│   │   ├── mcp-researcher.ts  # LLM: Understands MCP dependencies
│   │   └── engineer.ts        # LLM: Decides action needed
│   ├── types.ts               # Shared type definitions
│   ├── llm-client.ts          # Claude API wrapper
│   ├── discovery.ts           # Auto-discover MCPs
│   ├── source-checker.ts      # Hash-based change detection
│   ├── slack-notifier.ts      # Send Slack notifications
│   └── index.ts               # CLI entry point
└── README.md

成本

将Claude Sonnet用于所有3个代理:

  • 估计:每次完整运行约0.15-0.30美元(4个API×3个代理)
  • MCP研究人员的结果已缓存,以尽量减少重复调用
  • 仅分析实际更改的页面
  • 无需支付任何费用 check-sources (仅哈希,无LLM)

操作级别

级别 描述 通知
紧急 需要立即采取行动的重大变更和弃用 是
通知 值得了解的变化 是
无 没有可操作的更改 否

故障排除

“未设置ANTHROPIC_API_KEY”:

  • 这 check 命令需要用于LLM分析的API密钥
  • 使用 check-sources 用于无LLM的基于哈希的检测

Slack通知未发送:

  • 验证 SLACK_WEBHOOK_URL 设置正确
  • 跑 npm run notify-test 测试webhook
  • 仅在需要采取行动时发送通知(不是“无”)

未发现MCP:

  • 确保目录名以开头 mcp-
  • 集 MCP_SCAN_ROOT 转到包含MCP的目录
  • 检查MCP目录是否有CLAUDE.md文件

未分析的变更:

  • 首次运行建立基线(检测到新页面)
  • 后续运行会比较哈希值以检测实际变化

GitHub操作失败:

  • 验证是否在仓库设置中设置了机密
  • 检查一下 ANTHROPIC_API_KEY 和 SLACK_WEBHOOK_URL 有效