Clawdstrike MCP 服务器实现(Cursor 插件集成)

使用说明(Markdown 形式)

  • 项目简介

    • 这是 Clawdstrike 项目的一部分,实现了一个基于 MCP 的服务器端,暴露资源、工具和提示模板(Prompts),通过 JSON-RPC 与 LLM 客户端通信。服务器内部通过调用 clawdstrike 的命令行界面(CLI)来执行策略评估和相关操作,并将结果以统一格式返回给客户端。
  • 主要功能点

    • MCP 服务器实现
      • 使用 STDIO 传输(StdioServerTransport)接收 JSON-RPC 请求并返回响应。
      • 注册并暴露工具(Tools):如 clawdstrike_check、clawdstrike_scan、clawdstrike_query、clawdstrike_timeline、clawdstrike_correlate 等等,均通过 CLI 调用实现,并将输出转换为 MCP 工具调用结果。
      • 暴露静态与动态资源(Resources):如当前会话 receipts、策略对某个 ruleset 的 YAML 表示等,支持被 MCP 客户端按需检索。
      • 提供 Prompts 模板(Prompts):定义供 LLM 交互使用的提示集合,支持复杂的工作流如 incident investigation、posture assessment 等。
    • 与客户端的交互
      • 客户端通过 JSON-RPC 调用服务器的工具、资源、提示等,服务器统一返回 ToolResult 结构或资源/提示的内容。
    • 安全与健康
      • 内置对 CLI 二进制可用性的健康检查(healthCheck),确保在启动前具备执行能力。
    • 集成点
      • Cursor 插件中包含完整的 MCP 服务器实现(cursor-plugin/scripts/mcp-server.ts),与其他插件/组件共同工作,形成端到端的 MCP 服务器解决方案。
  • 安装与运行步骤(简要)

    • 运行前提
      • 需要在系统中具备 Bun 环境以运行 TypeScript 的 MCP 服务器脚本(mcp-server.ts)。
      • 需要确保 clawdstrike CLI 已安装且在 PATH 可用(服务器通过 CLI 调用实现工具执行和资源加载)。
    • 启动服务器
      • 使用 Bun 直接运行 mcp-server.ts(例:bun run cursor-plugin/scripts/mcp-server.ts),服务器将通过 STDIO 建立 MCP 传输并对外提供服务。
    • 连接客户端
      • MCP 客户端通过标准的 JSON-RPC 调用与服务器通信,服务器按 MCP 规范返回响应。
    • 服务器配置示例(JSON 配置,供 MCP 客户端了解链接信息,避免直接暴露实现细节)
      • server_name: clawdstrike-mcp
      • command: bun
      • args: ["run", "cursor-plugin/scripts/mcp-server.ts"]
      • transport: stdio 说明:该配置描述了使用 Bun 运行 mcp-server.ts 的命令与参数,以及服务器使用的传输通道(stdio,等同于通过标准输入输出进行 JSON-RPC 通信)。客户端本身不需要此配置,服务器端提供的只是运行信息,MCP 客户端通过 MCP 连接即可。
    • 基本使用方法
      • 启动后,客户端通过 MCP 协议发送读取资源、执行工具、获取 Prompt 等请求。
      • 常见工作流包括:读取资源、执行工具、渲染和获取提示模板、并通过 Receipts(签名凭证)等进行审计记录。
      • 如需查看策略、对比差异等,也可通过对应工具/资源进行访问。
    • 注意事项
      • 服务器依赖 clawdstrike CLI,确保 CLI 可执行且版本兼容。
      • 运行环境需具备适配 MCP 的传输与解析能力,若在某些环境(如没有图形界面或 GUI 的场景)亦可使用 STDIO 传输。

服务器信息