SuperAPI AI 工具集

codesentinel

CodeSentinel(又称 CodeHealth MCP)是一个面向代码库健康分析的 AI 智能体,通过 Model Context Protocol(MCP)向 Claude Desktop、Cursor、Windsurf 和 Slack 等客户端暴露分析工具。它围绕四类常见但容易被忽视的代码问题展开:死代码、循环依赖、过度耦合与架构漂移。项目提供 7 个分析工具,可在任何兼容 MCP 的客户端中使用,并附带完整的 Slack Agent Builder 应用,支持 Block Kit 界面、线程对话、建议提示词与 MCP 服务器复用。用户可以通过 stdio(本地)或 Streamable HTTP(远程,需 HTTPS)方式接入,配置支持本地默认地址与 Vercel 部署路径。分析结果可通过 Daytona 沙箱对 GitHub 仓库进行浅克隆扫描,或在不可用时回退到确定性的演示发现,并明确标记回退状态。项目采用 MIT 许可证开源。

访问官网

工具介绍

CodeSentinel(CodeHealth MCP)是一个基于 Model Context Protocol(MCP)的代码库健康分析智能体,旨在将死代码、循环依赖、过度耦合和架构漂移等“日常工作中不可见”的问题,直接呈现在开发者实际使用的工具里,而非仅停留在无人查看的 CI 仪表盘中。

【主要能力】 项目提供 7 个分析工具,可在任何兼容 MCP 的客户端中调用。分析覆盖死代码、循环依赖、过度耦合与架构漂移。它同时附带一个完整的 Slack Agent Builder 应用,具备 Block Kit UI(按严重程度编码的发现、健康分数、可操作建议)、基于线程的后续分析对话、一键触发分析的建议提示词,以及可全局复用的 MCP 服务器。此外还包含远程 MCP 协议健康探测功能:合成 Streamable HTTP / 旧版 SSE 握手(initialize + tools/list)、规范工具模式哈希与漂移告警、发现延迟指标,以及在工具描述和模式进入智能体上下文前进行秘密扫描。

【使用方式】 接入方式分为本地与远程:

  • Claude Desktop 配置(stdio)
  • 远程 Streamable HTTP(Glama / 托管):要求公共 HTTPS + streamable-http,本地默认地址为 http://127.0.0.1:8787/mcp(健康检查:GET /health),生产环境必须使用 HTTPS。Cursor / Claude 远程连接器使用相同的 url + Authorization 头;未认证访问 /mcp 返回 HTTP 401,LLM_API_KEY 等提供方密钥保留在服务器端且不会被回显。
  • 部署到 Vercel(公共 HTTPS):无状态 Streamable HTTP(JSON 请求/响应)运行在 Vercel Fluid Compute 上,无粘性会话。部署后 MCP 端点为 https://$VERCEL_PROJECT_PRODUCTION_URL/mcp(特定部署用 VERCEL_URL),健康检查为 https://$VERCEL_PROJECT_PRODUCTION_URL/health。需关闭生产主机上的 Vercel Deployment Protection,否则 Glama/客户端无法完成 initialize。
  • Slack 集成:添加 Slack 应用清单,启用 Agent Builder,并在任意频道中 @CodeHealth 即可触发分析。演示工作区为 codehealthdemo.slack.com,CodeSentinel 智能体(App ID A0BEHRDN5TQ)已安装并授权。

【数据扫描方式】 可选启用 Daytona 沙箱扫描:设置 DAYTONA_API_KEY(私有仓库可另设 GITHUB_TOKEN),MCP 工具与 Slack 分析将在 Daytona VM 中浅克隆 GitHub URL,并返回实时导入图发现而非演示数据。当 Daytona 不可用或实时扫描超时(lib/repo-fetcher.js 中的 SCAN_DEADLINE_MS)时,lib/analysis-engine.js 会将请求标记为 fallback: true,分析器返回确定性的演示发现,这是一种有文档记录的、有意的回退行为,而非静默错误;实时扫描标记为 scanMode: "daytona"。

【扩展与项目结构】 自定义分析器遵循简单接口:在 lib/analyzers/ 添加新分析器,并在 analysis-engine.js 中注册,即可自动在 Slack 和 MCP 中可用。项目结构包含真实 AST 分析(TypeScript 使用 ts-morph,多语言使用 tree-sitter)、GitHub App(PR 自动分析并内联评论)、历史趋势(按仓库跟踪健康分数)、自定义架构规则(通过配置定义层边界)、团队仪表盘(在 Slack Canvas 中聚合健康度)等。

【可用性说明】 项目采用 MIT 许可证(见 LICENSE)。已知会出现在 awesome-mcp-servers、MCP Registry 和 Glama 等目录中。Slack 助手流程(listeners/assistant/message.js)执行确定性扫描(runAnalysis)后请求 AI 执行摘要(lib/llm-provider.js);摘要步骤现通过 summarizeWithLadder 运行有界降级阶梯(FULL → DEGRADED),LLM 不可用时明确降级——发现仍随附交付,但内联标注“AI summary unavailable — LLM unreachable. Deterministic findings only”,LLMUnavailableError 仍作为其他情况的类型化失败保留,非不可用错误仍会显式失败。测试覆盖在 test/assistant-degradation.test.js。当分析路径本身变为模型依赖(模型评分发现而非模型摘要报告)时,需要重新审视并扩展该降级阶梯。