Cribl MCP服务器

一个模型上下文协议(MCP)服务器,用于通过标准化MCP工具与Cribl API进行AI交互。

  • by pebbletek
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 pebbletek/cribl-mcp

使用说明

Cribl MCP服务器

一种模型上下文协议(MCP)服务器,可实现与Cribl API的人工智能交互。

该服务器允许AI客户端使用标准化的MCP工具从Cribl部署中发现和调用数据操作。

有关详细文档,请参阅 docs/ 目录。以下是文档文件的细分:

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

入门指南

您可以在本地安装并运行,也可以通过以下方式立即执行 npx. npx 无需安装Git、依赖项或任何构建工具。这两种情况都要求您安装高于版本16的节点:

先决条件

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

  • Node.js 已安装(建议使用版本16或更高版本)
  • 互联网接入 可用(从npm获取MCP服务器包)

您可以从以下位置安装Node.js https://nodejs.org.

要验证您的设置:

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 使用配置,包括MCP客户端的相关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. 有关运行、构建和启动mcp服务器的信息,请参阅usage.md>本地开发

看 docs/configuration.md 有关环境变量和身份验证的详细信息,以及 docs/usage.md 用于运行服务器。

可用工具

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

  • 列出工人团体/车队
  • 获取/设置管道配置
  • 获取源配置
  • 重新启动工人组
  • 查询系统指标(带过滤)

有关详细列表和使用说明,请参阅 docs/usage.md.

示例用法(提示)

一旦通过MCP客户端连接(如 克劳德桌面),您可以使用利用可用工具的自然语言提示与Cribl实例进行交互。以下是一些示例:

  • 提示: what sources are we ingesting?
    (您需要允许MCP客户端访问该工具)

    • 响应将类似于:
      “要回答您关于摄入来源的问题,让我检查一下您的CriblStream环境中的可用数据源。
      <查看来自cribl_getSources的结果来自cribl(本地)>

      让我还检查一下您的CriblStream环境中配置了哪些管道:
      <从cribl(本地)查看来自cricl_getPipelines的结果>

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

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

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

      1. Cisco ASA事件-筛选和示例Cisco ASA安全日志
      2. Cisco eStreamer数据-处理Cisco eStreamers数据
      3. Palo Alto流量事件-筛选和采样Palo Alto-流量日志
      4. Windows事件日志-处理Windows安全事件日志

      这些管道表明,您正在从Cisco ASA防火墙、Cisco eStreamer(可能来自Firepower/FTD设备)、Palo Alto Networks防火墙和Windows安全事件中获取网络安全日志。
      您想了解有关任何特定源或管道配置的更详细信息吗?"

  • 提示: what functions are processing the palo alto traffic?

    • 答复:
      “让我更详细地检查处理Palo Alto流量的功能:
      <从cribl(本地)查看来自cricl_getPipelineConfig的结果>

      以下是在CriblStream环境中处理Palo Alto流量数据的详细分解:
      Palo Alto交通管道功能
      1.初始过滤器(评估):

      • 筛选器:源类型!='潘:交通'
      • 描述:短路(跳过)所有不属于源类型“pan”的事件
      • 这被设置为最终函数,这意味着如果条件为真,则该事件的处理将停止

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

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

      3.筛选事件(删除):

      • 筛选器:__log_subtype==“开始”
      • 描述:删除日志子类型为“start”的所有事件
      • 理由(来自评论):“删除log_subtype=start的事件,因为它们通常有不正确的应用程序分配。log_subtype=tend包含更好的信息。”
      • 等等”
  • 提示: please update the pipeline to include start events as well as end events.

    • 答复:
      “我将通过修改配置来更新Palo Alto流量管道,以包括“开始”和“结束”事件。让我为您进行更改:
      <从cribl(本地)查看来自cricl_getPipelineConfig的结果>

      现在,我将通过禁用drop函数和更新注释来更新管道配置,以保留“开始”和“结束”事件:
      <从cribl(本地)查看来自cricl_setPipelineConfig的结果>

      现在,让我们重新启动工作组以应用这些更改: <从cribl(本地)查看cricl_restartWorkerGroup的结果>

      Palo Alto流量管道已成功更新,包括“开始”和“结束”事件。以下是我修改的内容:

      1. 禁用拖放功能:

        • 筛选__log_subtype==“启动”事件的功能已被禁用
        • 这意味着现在将处理“开始”和“结束”会话事件
      2. 更新评论:

        • 将评论从解释为什么“开始”事件被删除改为注意到这两种事件类型现在都被保留以实现完全的交通可见性
      3. 重新启动工人组:

        • 通过重新启动CriblStream工作组应用更改

      更新后的管道现在将处理来自Palo Alto防火墙的“开始”和“结束”事件,使您能够完全了解从启动到完成的流量会话。所有其他处理功能保持不变,包括:

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

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

许可证

麻省理工学院