claudit MCP 服务端

使用说明内容(Markdown 格式)

项目简介

claudit 是一个基于 MCP 的服务器实现,聚合 Solodit 的安全审计 findings,通过标准化的 MCP 接口向 LLM 客户端提供查询、格式化和渲染结果的能力,包含搜索、获取具体发现和过滤选项等工具。

主要功能点

  • MCP 服务器实现:实现核心 MCP 服务端能力,暴露若干工具供客户端调用。
  • 工具集
    • search_findings:按关键词、严重性、标签、语言、协议等多维过滤检索 Findings,返回可直接用于展示的摘要信息和 Solodit 链接。
    • get_finding:按编号、URL 或 slug 获取完整的 Findings 详情(含完整 Markdown 内容与元数据)。
    • get_filter_options:列出可用于筛选的值(如公司、标签、分类、语言等)和简要说明。
  • 缓存与限流:内置简单缓存与速率限制,尽量减少对 Solodit API 的重复请求。
  • 数据格式化:对结果进行 Markdown 及表格化输出,方便在 LLM 输出中直接显示。
  • 传输层:通过 StdioTransport 使用标准输入/输出与客户端进行 JSON-RPC 通信,适用于命令行型的 MCP 客户端(如 Claude Code / Codex CLI)。

安装步骤

  1. 获取代码并安装依赖
  • 克隆仓库并进入项目目录
  • 运行安装与构建(示例)
    • npm install
    • npm run build
  1. 启动 MCP 服务器
  • 需要 Solodit 的 API Key,放在 SOLODIT_API_KEY 环境变量中
  • 启动命令示例(在开发和测试中使用)
    • SOLODIT_API_KEY=你的Key node dist/index.js
  1. 与 MCP 客户端对接
  • 客户端在连接此 MCP 服务器时,需通过 JSON-RPC 形式的通信来调用 server 的工具。

服务器配置(MCP 客户端需要的最小配置示例)

以下 JSON 配置用于 MCP 客户端描述该服务器的启动信息。请注意,客户端本身不需要该配置来运行服务器,但用于了解如何从客户端启动并连接该 MCP 服务。

{ "mcpServers": { "solodit": { "name": "solodit", "command": "node", "args": ["dist/index.js"], "env": { "SOLODIT_API_KEY": "<your_solodit_api_key>" } // 说明: // - name: MCP 服务的唯一标识名,与客户端的连接名对应(区分不同的 MCP 服务) // - command: 启动服务器的可执行命令 // - args: 启动命令的参数 // - env: 环境变量,必须提供 SOLODIT_API_KEY,以便访问 Solodit API } } }

基本使用方法

  • 准备环境
    • 安装依赖并构建后,确保 SOLODIT_API_KEY 正确设置。
  • 运行服务器
    • 在包含 dist/index.js 的目录执行:SOLODIT_API_KEY=your_key node dist/index.js
  • 与客户端对接
    • 配置客户端(如 Claude Code / Codex CLI)以使用上述服务器的名称(solodit)并通过 MCP 连接。客户端会通过标准输入/输出(stdio)与服务器进行 JSON-RPC 通信。
  • 常用操作
    • 使用 search_findings 进行多维筛选并查看摘要
    • 使用 get_finding 获取具体发现的完整 Markdown 内容与元数据
    • 使用 get_filter_options 获取可用筛选值,帮助构造查询

运行与调试提示

  • 如遇到 API Key 失效或速率限制,检查 SOLODIT_API_KEY 是否正确、以及 Solodit API 限流情况。
  • 服务器默认使用 STDIO 传输,确保在与客户端的集成中正确处理输入输出流。
  • 构建完成后,dist/index.js 是运行入口,确保客户端调用时路径一致。

使用示例(非代码块文本,直接描述)

  • 启动后,客户端可以请求 search_findings,传入关键词、严重性、标签等,服务器返回格式化后的文本结果以及每条结果的 Solodit 链接。
  • 通过 get_finding,可以按数字 ID、Solodit 链接或 slug 获取完整内容,服务器会返回完整 Markdown 和元数据。
  • 通过 get_filter_options,客户端可预览可用的筛选值,便于构造查询。

备注

  • 该实现明确包含服务器端代码、实现 MCP 协议要点、并非仅有客户端示例。
  • 服务器通过 StdioTransport 与客户端通信,适用于命令行型 MCP 集成场景。

服务器信息