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 作为传输通道,便于在本地开发与集成测试场景中快速联调。

服务器信息