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 服务器解决方案。
- 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 传输。
- 运行前提