项目简介

BiRRe (Bitsight Rating Retriever) 是一个基于 Model Context Protocol (MCP) 构建的应用后端,它使大型语言模型(LLM)客户端能够以标准化的方式访问 BitSight 的安全评级数据,并执行公司订阅管理等操作。BiRRe 利用 FastMCP 框架进行开发,支持两种主要上下文模式:'standard' 模式专注于快速获取公司安全评级,而 'risk_manager' 模式则提供更丰富的工具集,用于执行 BitSight 订阅和公司请求等高级操作。它无需复杂安装,即可在隔离的 Python 环境中轻松运行。

主要功能点

  • 公司搜索: 允许 LLM 客户端根据公司名称或域名,在 BitSight 数据库中检索公司信息。
  • 获取公司评级: 提供公司的 BitSight 安全评级数据,并支持自动处理临时订阅,以获取详细评级报告。
  • 交互式公司搜索 (风险经理模式): 在风险经理模式下,搜索结果会包含更丰富的公司详情,如全球唯一标识符 (GUID)、多个域名、公司描述、员工数量以及所在的订阅文件夹,便于 LLM 进行更精确的决策。
  • 批量订阅/取消订阅 (风险经理模式): 支持对多个公司进行批量订阅或取消订阅操作,提供试运行(dry-run)功能,并生成详细的审计摘要。
  • 提交公司请求 (风险经理模式): 允许 LLM 提交新的 BitSight 公司请求,以加入监控列表,并能智能处理重复请求,支持指定目标文件夹。
  • 上下文模式: 服务器提供 'standard' 和 'risk_manager' 两种操作模式,以适应不同的业务角色和需求,动态加载相应的工具集。
  • CLI 工具: 内置命令行界面,用于服务器启动、配置检查、日志管理和健康自检,确保服务器的稳定运行。

安装步骤

  1. 设置 BitSight API 密钥: 在启动 BiRRe 服务器之前,您需要将您的 BitSight API 密钥配置为环境变量。
    export BITSIGHT_API_KEY="您的-bitsight-api-密钥"
  2. 启动 BiRRe 服务器: 使用 'uvx' 工具,可以直接从 GitHub 仓库运行 BiRRe。'uvx' 会自动处理依赖安装,并在一个临时的、隔离的 Python 环境中启动服务器。
    uvx --from git+https://github.com/boecht/birre birre run
  3. 连接您的 LLM 客户端: 服务器启动后,它将监听一个端口(通常是 'http://127.0.0.1:8080',具体地址请参考服务器启动时的输出)。将您的 LLM 客户端配置指向此地址,即可开始通过 LLM 与 BiRRe 服务器进行交互,例如查询 BitSight 评级或管理订阅。

服务器配置

MCP 客户端在连接 BiRRe 服务器时,需要提供服务器的启动命令和相关参数。以下是一个配置示例,以及各个参数的说明:

{
  "server_name": "BiRRe_MCP_Server",
  "command": "uvx",
  "args": [
    "--from", "git+https://github.com/boecht/birre",
    "birre", "run",
    "--context", "standard",
    "--log-level", "INFO",
    "--log-file", "birre.log"
  ],
  "env": {
    "BITSIGHT_API_KEY": "YOUR_BITSIGHT_API_KEY"
  },
  "description": "一个提供BitSight安全评级和订阅管理的MCP服务器,支持不同的操作上下文。",
  "parameters": [
    {
      "name": "BITSIGHT_API_KEY",
      "description": "BitSight API 密钥,用于认证到 BitSight API。这是一个必需参数,可以通过环境变量或命令行参数设置。优先级别:命令行参数 > 环境变量 > 配置文件。",
      "type": "string",
      "required": true,
      "location": "env"
    },
    {
      "name": "--context",
      "description": "选择服务器的运行上下文模式。'standard' 适用于快速评级查询工作流;'risk_manager' 适用于更高级的订阅和公司请求操作。默认值为 'standard'。",
      "type": "string",
      "enum": ["standard", "risk_manager"],
      "default": "standard",
      "required": false,
      "location": "arg"
    },
    {
      "name": "--subscription-folder",
      "description": "在 BitSight 中用于订阅公司时的默认文件夹名称。例如 'API' 或 'Managed Accounts'。",
      "type": "string",
      "required": false,
      "location": "arg"
    },
    {
      "name": "--subscription-type",
      "description": "用于订阅公司的类型,例如 'continuous_monitoring' 或 'vendor_monitoring'。",
      "type": "string",
      "required": false,
      "location": "arg"
    },
    {
      "name": "--debug",
      "description": "启用调试模式,会输出更详细的日志信息,包括 API 请求和响应的内部细节。默认值为 false。",
      "type": "boolean",
      "default": false,
      "required": false,
      "location": "arg"
    },
    {
      "name": "--allow-insecure-tls",
      "description": "禁用 TLS 证书验证(不安全,仅用于开发或测试环境)。启用此选项时,任何通过 --ca-bundle 指定的证书束都将被忽略。默认值为 false。",
      "type": "boolean",
      "default": false,
      "required": false,
      "location": "arg"
    },
    {
      "name": "--ca-bundle",
      "description": "指定企业根 CA 证书束(PEM 格式)的路径,用于自定义 TLS 验证。例如 '/path/to/corp-root.pem'。",
      "type": "string",
      "required": false,
      "location": "arg"
    },
    {
      "name": "--log-level",
      "description": "设置日志的最低显示级别。可选值包括 INFO, DEBUG, WARNING, ERROR, CRITICAL。默认值为 INFO。",
      "type": "string",
      "enum": ["INFO", "DEBUG", "WARNING", "ERROR", "CRITICAL"],
      "default": "INFO",
      "required": false,
      "location": "arg"
    },
    {
      "name": "--log-format",
      "description": "设置日志输出的格式。可选值包括 'text'(人类可读)或 'json'(机器可解析)。默认值为 'text'。",
      "type": "string",
      "enum": ["text", "json"],
      "default": "text",
      "required": false,
      "location": "arg"
    },
    {
      "name": "--log-file",
      "description": "指定日志文件的路径。如果设置为空字符串 ' '、'none'、'stderr' 或 'stdout',则禁用文件日志,日志将输出到标准错误或标准输出。",
      "type": "string",
      "required": false,
      "location": "arg"
    }
  ]
}

注意:在上述JSON配置中,'env' 字段用于设置环境变量,'args' 字段用于设置命令行参数。'parameters' 列表详细说明了 BiRRe 服务器支持的所有可配置选项,及其类型、描述和位置。LLM 客户端在调用服务器时,可以根据这些说明来构建启动命令和运行时参数。

基本使用方法

  1. 启动服务器: 按照上述“安装步骤”启动 BiRRe 服务器。
  2. LLM 客户端交互: 一旦服务器运行,您的 LLM 客户端就可以通过调用服务器提供的工具来获取 BitSight 数据或执行操作。
    • 查询公司评级: 让您的 LLM 提问:“帮我查询 GitHub 公司的 BitSight 安全评级。”(这将调用 'get_company_rating' 工具)
    • 搜索公司: 询问您的 LLM :“搜索所有与 'Microsoft' 相关的公司。”(这将调用 'company_search' 工具)
    • 管理订阅 (在风险经理模式下): 如果服务器以 'risk_manager' 上下文模式启动,您可以指示 LLM :“我需要订阅 GUID 为 '12345-abcde' 的公司到 '新客户' 文件夹。”(这将调用 'manage_subscriptions' 工具)
  3. 命令行工具: 您还可以直接使用 BiRRe 的命令行工具来管理服务器。
    • 查看当前配置: 打开新的终端并运行 'uv run birre config show'。
    • 运行健康自检: 运行 'uv run birre selftest' 来验证服务器与 BitSight API 的连接和所有工具的可用性。
    • 查看日志: 使用 'uv run birre logs show' 来查看服务器的运行时日志。

信息

分类

商业系统