项目简介

该项目是一个实现了 Model Context Protocol (MCP) 的服务器,专门用于与 JupiterOne 安全平台集成。它允许支持 MCP 协议的大型语言模型(LLM)客户端通过标准化的方式,安全地访问和查询 JupiterOne 平台中的安全相关数据。

主要功能点

  • 安全数据查询: 允许LLM通过MCP服务器调用后端工具,执行 JupiterOne Query Language (J1QL) 查询,获取账户、资产、漏洞、配置等安全相关信息。
  • J1QL语法支持: 提供 J1QL 查询语言的详细指南,帮助LLM理解和构造有效的查询语句。
  • 标准化交互: 通过MCP协议(基于JSON-RPC over Stdio等传输方式)与LLM客户端通信,提供结构化的请求处理和响应。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/JupiterOne/jupiterone-mcp.git
    cd jupiterone-mcp
  2. 创建并激活Python虚拟环境:
    # 创建虚拟环境
    python -m venv .venv
    
    # 在 macOS/Linux 上激活
    source .venv/bin/activate
    
    # 在 Windows 上激活
    # .venv\Scripts\activate
  3. 安装依赖:
    pip install -r requirements.txt

服务器配置

MCP 服务器通常由支持 MCP 协议的 LLM 客户端(如 Cursor)启动和管理。您需要在客户端的配置文件中指定如何启动此服务器并传递必要的配置信息。

通常,MCP 客户端会在一个 JSON 格式的文件中(例如 '.cursor/mcp.json')配置 MCP 服务器。您需要添加一个条目来描述 JupiterOne MCP 服务器:

{
  "mcpServers": {
    "jupiterone": { // 服务器名称,可自定义
      "command": "/ABSOLUTE/PATH/TO/jupiterone-mcp/.venv/bin/python", // Python解释器的绝对路径,用于启动服务器脚本
      "args": ["/ABSOLUTE/PATH/TO/jupiterone-mcp/mcp_server.py"], // 服务器脚本的绝对路径作为参数
      "env": { // 需要传递给服务器进程的环境变量
        "JUPITERONE_API_KEY": "您的JupiterOne API Key", // 替换为您的API Key
        "JUPITERONE_ACCOUNT_ID": "您的JupiterOne Account ID", // 替换为您的账户ID
        "JUPITERONE_REGION": "us" // 可选,JupiterOne区域,默认为"us"
      }
    }
    // 如果有其他MCP服务器配置,请保留
  }
}

请确保:

  • 将 '/ABSOLUTE/PATH/TO/jupiterone-mcp/' 替换为您实际克隆仓库的绝对路径。
  • 在 'env' 部分填入您的 'JUPITERONE_API_KEY' 和 'JUPITERONE_ACCOUNT_ID'。
  • 根据需要设置 'JUPITERONE_REGION'。

完成配置后,启动或重启您的 MCP 客户端,它应该能够发现并连接到这个 MCP 服务器。

基本使用方法

一旦 MCP 客户端成功连接并启动了 JupiterOne MCP 服务器,您就可以通过与 LLM 客户端交互来使用服务器提供的功能。

  • 运行 J1QL 查询: 直接在 LLM 客户端中提出自然语言问题,描述您想从 JupiterOne 查询的信息。客户端将调用 MCP 服务器提供的 'run_j1_query' 工具,并将您的请求转化为 J1QL 查询发送给服务器执行。

    • 例如,您可以问 LLM:"你能帮我在 JupiterOne 里查一下所有的 AWS 账户吗?"
  • 获取 J1QL 指南: 您可以通过 LLM 客户端请求获取关于 J1QL 语法的信息。客户端将可能调用 MCP 服务器提供的 'j1ql_guide' Prompt,获取详细的 J1QL 语法规则和示例。

信息

分类

AI与计算