ai-detection-engineering MCP Cribl 服务端
使用说明内容(Markdown格式)
使用概要
本仓库实现了一个基于 MCP 的服务器端组件,用于为 LLM 客户端提供对 Cribl Stream 的统一访问与控制能力。通过 MCP 协议,客户端可以查询可用工具、调用工具执行具体任务,并获取资源、提示模板等信息,以实现对日志管线、输入输出、路由等的管理和自动化操作。
主要功能点
- MCP 服务器核心:实现 MCP 的 ListTools 与 CallTool 两类请求,支持在客户端通过 JSON-RPC 获取工具清单并执行工具。
- Cribl 集成工具:对 Cribl Stream 的健康状况、管道、样例预览、添加/移除管道函数、路由等进行封装,并暴露成 MCP 工具。
- 安全与通信:通过 StdioServerTransport 将服务器与 Claude Code 进行标准 IO 通信,便于本地开发和 CI 场景的集成。
- 统一接口:所有 Cribl 相关操作统一通过 MCP,客户端无需了解 Cribl 的细节实现即可完成管线管理与测试。
安装与运行
- 依赖环境:Node.js(支持 ESModule)、Cribl Stream、MCP 客户端(如 Claude Code)及相关依赖。
- 启动方式:在支持 MCP 的环境中运行 Cribl Stream MCP 服务器脚本,通过标准输入输出与客户端通信。
- 运行示例(简述,不给出具体命令行代码):将 Cribl 的 MCP 服务器脚本放在合适位置后,通过 Node.js 运行并监听 STDIO 入口,客户端通过 MCP 协议与之通信。
服务器配置(MCP 客户端所需信息,非代码形式说明)
说明:MCP 客户端需要知道 MCP 服务器的启动信息以建立连接。以下为示例配置字段,实际使用时请结合项目实际环境填写。
- server_name: cribl-stream-mcp
- command: node
- args: [ "cribl/mcp-server/index.js" ]
- env (可选,用于配置 Cribl 以及 MCP 运行时依赖):
- CRIBL_URL: http://localhost:9000
- CRIBL_USER: admin
- CRIBL_PASS: admin
- 其他自定义环境变量可按需添加
说明:
- server_name 用于标识 MCP 服务器的名称,便于在客户端侧进行引用与管理。
- command 与 args 指定如何启动 MCP 服务器脚本,确保路径与运行环境正确。
- env 提供运行所需的外部依赖配置(如 Cribl)及连接参数,客户端本身无需额外的实现。
基本使用方法
- 客户端通过 MCP 协议发送请求(如获取工具列表、调用具体工具、获取资源等),服务器返回标准的 JSON-RPC 响应。
- 常见工作流:客户端查询 Cribl 相关工具集合 -> 调用工具执行具体操作(如健康检查、管道预览、路由设置) -> 获取返回结果并进行后续处理。
- 如需集成到 Claude Code 或其他 LLM 客户端,请将本 MCP 服务器通过 STDIO 与客户端建立通信通道,使得 LLM 客户端能以统一的接口调用相应工具。
注意事项
- 该实现将 Cribl Stream 的管线管理能力暴露为 MCP 工具,便于在 LLM 驱动的工作流中进行管线测试与变更。
- 运行环境要求对 Cribl、Elasticsearch、Splunk 等后端有可用性与连通性,实际使用时需确保相关服务就绪并正确配置。
- 如需拓展更多 Cribl 功能,请在 TOOLS 数组中添加对应的工具定义并实现相应的调用方法。
设计与实现亮点
- 直接使用 MCP 的服务器端框架,通过 ListToolsRequestSchema 与 CallToolRequestSchema 暴露工具接口,便于 LLM 客户端以标准化方式获取能力并执行操作。
- 代码结构清晰,工具实现覆盖 Cribl 的核心能力(健康、管道、预览、路由等),有利于构建可扩展的上下文服务体系。
- 以 STDIO 作为传输通道,便于在本地开发与集成测试场景中快速联调。