返回市场
cribl-MCP

cribl-MCP

作者:pebbletek4 星标更新:2025-05-07

项目介绍

Cribl MCP Server

npm 版本 许可证

一个模型上下文协议(MCP)服务器,使AI能够与Cribl API进行交互。

此服务器允许AI客户端发现并调用来自Cribl部署的数据操作,使用标准化的MCP工具。

对于详细的文档,请参阅docs/目录。这里是对文档文件的分解:

  • README.md(此文件):提供最高级别的介绍、快速入门指南、非常基础的例子以及指向文档目录的链接。
  • docs/configuration.md:专门关注配置所需的环境变量,并解释身份验证模式。它纯粹是关于设置的。
  • docs/usage.md:专注于如何运行服务器(通过npx或本地开发命令),以及如何配置MCP客户端以连接到它。它提供了调用工具的概念性例子。
  • docs/overview.md:位于README和具体的配置/使用文档之间。它详细介绍了服务器在身份验证方面提供的内容,最重要的是,提供了可用工具及其特定参数/输出的详细参考指南,以及未来的工具。

快速开始

您可以选择安装并本地运行,或者通过npx即时执行。npx可以节省您安装Git、依赖项或任何构建工具的时间。两种情况都需要您安装版本高于16的Node.js:

先决条件

要运行此服务器,请确保以下事项:

  • 安装了Node.js(推荐版本16或更高)
  • 可以访问互联网(用于从npm获取MCP服务器包)

您可以在https://nodejs.org安装Node.js。

要验证您的设置:

node -v
npx -v

使用npx快速开始

CRIBL_BASE_URL=https://your.cribl.cloud.instance CRIBL_AUTH_TYPE=cloud CRIBL_CLIENT_ID=abc123 CRIBL_CLIENT_SECRET=secret npx @pebbletek/cribl-mcp

注意:运行npx需要设置必要的环境变量(如CRIBL_BASE_URL和认证详情),这些变量要么在环境中设置,要么直接在命令行中传递,以便服务器成功连接。

请参阅docs/usage.md了解高级npx使用配置,包括相关的JSON文件和所需变量。

本地开发

  1. 浏览到您将存储代码库的高层次文件夹(克隆会创建包含文件夹)。克隆仓库:
    git clone https://github.com/pebbletek/cribl-mcp.git
    cd cribl-mcp
    
  2. 安装依赖项:
    npm install
    
  3. 复制.env.example文件并填充所需值:
    cp .env.example .env
    
  4. 请参阅usage.md > 本地开发了解运行、构建和启动mcp服务器的方法。

请参阅docs/configuration.md了解有关环境变量和认证的详细信息,以及如何运行服务器,请参阅docs/usage.md

可用工具

此服务器提供了与Cribl交互的工具,包括:

  • 列出工作组/舰队
  • 获取/设置管道配置
  • 获取源配置
  • 重启工作组
  • 查询系统指标(带过滤)

要详细了解和使用说明,请参阅docs/usage.md

示例用法(提示)

一旦通过MCP客户端(如Claude Desktop)连接,您可以使用自然语言提示与您的Cribl实例进行交互,这些提示利用了可用工具。这里有一些例子:

  • 提示:我们正在摄取哪些来源? (您需要允许MCP客户端访问该工具)

    • 响应可能如下: "为了回答您关于摄取来源的问题,让我检查一下您Cribl Stream环境中的可用数据来源。 <查看来自Cribl(本地)的cribl_getSources结果>

      让我再检查一下您Cribl Stream环境中的配置管道: <查看来自Cribl(本地)的cribl_getPipelines结果>

      根据我从您的Cribl Stream环境中检索到的信息,以下是您正在摄取的数据来源: 活跃数据来源 您的Cribl Stream实例有几个配置的数据来源,其中值得注意的有:

      1. HTTP/HTTPS来源: HTTP来源(端口10080) Cribl HTTP(端口10200) Splunk HEC(端口8088)...
      2. <等等>

      管道配置 您的环境还配置了几条管道来处理特定类型的数据:

      1. Cisco ASA事件 - 过滤和采样Cisco ASA安全日志
      2. Cisco eStreamer数据 - 处理Cisco eStreamer数据
      3. Palo Alto流量事件 - 过滤和采样Palo Alto流量日志
      4. Windows事件日志 - 处理Windows安全事件日志

      这些管道表明您正在摄取来自Cisco ASA防火墙的网络安全性日志、来自Firepower/FTD设备的Cisco eStreamer数据、来自Palo Alto Networks防火墙的日志以及Windows安全事件。您是否希望了解更多关于任何特定来源或管道配置的详细信息?"

  • 提示:处理Palo Alto流量的功能是什么?

    • 响应: "让我更详细地检查处理Palo Alto流量的功能: <查看来自Cribl(本地)的cribl_getPipelineConfig结果>

      这里是您Cribl Stream环境中处理Palo Alto流量数据的详细分解: Palo Alto流量管道功能 1. 初始过滤器(评估):

      • 过滤器:sourcetype!='pan:traffic'
      • 描述:短路(跳过)所有不是sourcetype 'pan'的事件
      • 设置为最终函数,这意味着如果条件为真,则停止对该事件的处理

      2. 字段提取(正则表达式提取):

      • 使用正则表达式匹配模式从原始事件中提取多个关键字段:
        • __log_subtype:确定日志是否为开始/结束记录
        • __src_zone 和 __dest_zone:源和目标安全区域
        • __transport:传输协议
        • __action:采取的操作(允许、拒绝等)
        • __bytes_in:接收的字节数

      3. 过滤事件(丢弃):

      • 过滤器:__log_subtype=='start'
      • 描述:丢弃所有日志子类型为'start'的事件
      • 理由(来自评论):"丢弃日志子类型为'start'的事件,因为它们经常具有错误的应用分配。日志子类型为'end'的事件包含更好的信息。"
      • 等等"
  • 提示:请更新管道以包括开始事件和结束事件。

    • 响应: "我将通过修改配置来更新Palo Alto流量管道,使其包括“开始”和“结束”事件。让我为您做出这个更改: <查看来自Cribl(本地)的cribl_getPipelineConfig结果>

      现在我将更新管道配置,以保留“开始”和“结束”事件,禁用丢弃功能并更新评论: <查看来自Cribl(本地)的cribl_setPipelineConfig结果>

      现在让我们重新启动工作组以应用这些更改: <查看来自Cribl(本地)的cribl_restartWorkerGroup结果>

      Palo Alto流量管道已成功更新,现在包括“开始”和“结束”事件。这里是所做的更改:

      1. 禁用了丢弃功能:

        • 过滤掉__log_subtype=='start'事件的功能已被禁用
        • 这意味着“开始”和“结束”会话事件都将被处理
      2. 更新了评论:

        • 将评论从解释为什么“开始”事件被丢弃改为指出现在保留两种类型的事件以获得完整的流量可见性
      3. 重新启动了工作组:

        • 通过重新启动Cribl Stream工作组应用了更改

      更新后的管道现在将处理来自您的Palo Alto防火墙的“开始”和“结束”事件,为您提供从初始化到完成的完整流量会话可见性。所有其他处理功能仍然存在,包括:

      • 关键流量属性的字段提取
      • 零字节流量和可信区域流量的采样
      • 删除不可靠日期字段

      您的Palo Alto流量数据现在将包括网络连接的整个生命周期,同时仍保持采样规则的效率优势。"

许可证

MIT