Skip to main content
Glama
Cgisclair29

Rapid7 Bulk Export MCP

by Cgisclair29

Rapid7 Bulk Export MCP

AI 驱动的 Rapid7 Command Platform 数据分析,使用 MCP(Model Context Protocol)和 AgentSkills。

此工具为尽力而为的支持。由于使用此工具的工具和工作流具有定制化且不断变化的特性,我们无法提供 MCP Code 和 AgentSkill 内容之外的支持或指导。

这是什么?

此工具通过 Rapid7 Bulk Export API 从 Rapid7 Command Platform 导出数据,并使其可在 GenAI 和 Agentic 工作流中查询。

  • MCP Server:嵌入工具,用于获取、处理和查询数据

  • Agent Skill / Kiro Power:提供额外的上下文、模式知识以及如何使用 MCP 工具的说明

  • DuckDB 数据库:基于文件的本地数据库,支持结构化快速查询

Related MCP server: Rapid7 Bulk Export MCP Server

功能特性

  • AI 驱动分析:可与 Kiro、Claude Desktop 或任何兼容 MCP 的 AI 助手一起使用

  • 按需数据加载:自动从 Rapid7 获取并加载数据

  • 导出复用:自动复用当天导出,避免冗余 API 调用

  • 自然语言查询:使用简单英语提问

  • SQL 查询执行:针对漏洞、资产和其他数据运行复杂 SQL 查询

  • 模式探索:发现可用的数据字段

  • 统计与洞察:获取即时摘要和分布情况

  • 安全锁定:用户查询在沙箱中运行 —— 在 DuckDB 引擎级别禁用文件系统和网络访问

  • Docker 支持:作为容器化 HTTP 服务运行,适用于远程或共享部署

本地模式与远程模式

你可以根据你的环境以两种模式运行 MCP 服务器:

本地 (stdio) — AI 客户端将服务器作为子进程启动,并通过 stdin/stdout 进行通信。这是默认且最简单的选项。服务器在您的机器上运行,数据库位于其旁边,所有内容都保留在本地。最适合在工作站或笔记本电脑上个人使用。

远程 (Docker / 可流式 HTTP) — 服务器作为容器化 HTTP 服务运行,暴露单个 /mcp 端点。客户端通过网络 URL 连接。最适合共享环境、团队使用,或当您希望服务器在与 AI 工具分离的专用基础设施上运行时。需要注意的是,这将使数据在远程 mcp 的所有用户之间共享,您应对 /mcp 端点进行身份验证和保护。

两种模式使用相同的 MCP 工具和安全控制。唯一的区别是客户端的连接方式。

快速开始

0. 获取您的 Rapid7 API 密钥和区域

在开始之前,您需要从您的 Rapid7 Insight Platform 帐户获取凭据。

生成 API 密钥:

重要提示: API 密钥必须由平台管理员生成。批量导出 API 会返回整个平台的所有漏洞数据,因此需要管理员级访问权限。

  1. 以平台管理员身份登录 Rapid7 Insight Platform

  2. 导航到“管理 → API 密钥管理”

  3. 选择密钥类型:

    • 组织密钥(推荐):完全管理员权限(需要平台管理员角色)

    • 用户密钥:继承您的帐户权限 —— 必须由平台管理员创建,才能拥有足够的权限进行批量导出

  4. 点击“生成新的管理员密钥”(如果使用平台管理员帐户,则点击“生成新的用户密钥”)

  5. 选择您的组织并为密钥提供名称

  6. 立即复制密钥——您将无法再次查看它!

查找您的区域:

您的区域决定了使用哪个 API 端点。要查找您的区域:

  1. 前往 insight.rapid7.com 并登录

  2. 在右上角您的帐户名下方查找“数据存储区域”标签

更多详情,请参阅:

1. 设置您的 AI 工具

在下方选择您的 AI 工具。每份指南都会介绍如何安装 MCP 服务器、添加 Agent Skill 以及验证连接。

保护您的 API 密钥: 避免将 RAPID7_API_KEY 明文存储在磁盘上。使用机密管理器在运行时注入密钥——例如 1Password CLI、Bitwarden CLI、macOS Keychain、Windows Credential Manager 或 PowerShell SecretManagement。使用 1Password 时,您可以设置 "command": "op" 和 "args": ["run", "--", "rapid7-mcp-server"],并在 env 块中使用 op:// 机密引用——密钥将从您的保管库中解析,绝不会写入配置文件。将此模式调整为适合您使用的任何密码管理器。

安装 MCP 服务器

  1. 打开 Claude Desktop,导航到“自定义 → 连接器”

  2. 在连接器目录中搜索“Rapid7 Bulk Export”

  3. 点击“安装”,并在提示时提供您的 RAPID7_API_KEY 和 RAPID7_REGION

Installing from the Connectors directory

安装 Agent Skill

  1. 前往“自定义 → 技能”

  2. 点击 (+)

  3. 创建技能

  4. 上传技能

  5. 从右侧的发布版本中上传最新的技能 zip 文件

Installing the agent skill

验证

  1. 尝试:/rapid7-bulk-export-analysis-expert Load the latest vulnerability data from Rapid7

安装 MCP 服务器

# Using uv
uv pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

# Or using pip
pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

配置

创建或编辑 .kiro/settings/mcp.json:

{
  "mcpServers": {
    "rapid7-bulk-export": {
      "command": "rapid7-mcp-server",
      "args": [],
      "env": {
        "RAPID7_API_KEY": "your-api-key-here",
        "RAPID7_REGION": "your-region"
      }
    }
  }
}

安装 Agent Skill

  1. 打开 Kiro 技能面板(命令面板 → “Kiro: Open Skills”)

  2. 点击“从 GitHub 安装”

  3. 输入仓库 URL:https://github.com/rapid7/rapid7-bulk-export-mcp/rapid7-bulk-export-skill

在聊天中使用 #rapid7-bulk-export-skill 激活技能。

验证

  1. 重启或重新连接 MCP 服务器(命令面板 → “MCP: Reconnect All Servers”)

  2. 在 MCP 面板中检查“rapid7-bulk-export”服务器(应显示“已连接”)

  3. 尝试:#rapid7-bulk-export-skill Load the latest vulnerability data from Rapid7

安装 MCP 服务器

# Using uv
uv pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

# Or using pip
pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

配置

使用 Claude Code CLI:

claude mcp add --transport stdio \
  --env RAPID7_API_KEY=your-api-key-here \
  --env RAPID7_REGION=your-region \
  rapid7-bulk-export \
  -- rapid7-mcp-server

或手动编辑 ~/.claude.json(用户范围)或 .mcp.json(项目范围):

{
  "mcpServers": {
    "rapid7-bulk-export": {
      "command": "rapid7-mcp-server",
      "args": [],
      "env": {
        "RAPID7_API_KEY": "your-api-key-here",
        "RAPID7_REGION": "your-region"
      }
    }
  }
}

使用 --scope user 进行跨项目访问,或使用 --scope project 进行团队共享。

安装 Agent Skill

# User-level (available in all projects)
mkdir -p ~/.claude/skills/rapid7-bulk-export
curl -sL https://raw.githubusercontent.com/rapid7/rapid7-bulk-export-mcp/main/rapid7-bulk-export-skill/SKILL.md \
  -o ~/.claude/skills/rapid7-bulk-export/SKILL.md

# Or project-level (only in current project)
mkdir -p .claude/skills/rapid7-bulk-export
curl -sL https://raw.githubusercontent.com/rapid7/rapid7-bulk-export-mcp/main/rapid7-bulk-export-skill/SKILL.md \
  -o .claude/skills/rapid7-bulk-export/SKILL.md

或使用 npx skills 直接安装:

npx skills install https://github.com/rapid7/rapid7-bulk-export-mcp

Claude Code 会在相关时自动发现并使用该技能。

验证

  1. 重启 Claude Code 或重新加载窗口

  2. 在聊天中输入 /mcp 检查服务器状态

  3. 确认“rapid7-bulk-export”出现在列表中

  4. 尝试:Load the latest vulnerability data from Rapid7

安装 MCP 服务器

# Using uv
uv pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

# Or using pip
pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

配置

编辑 VS Code 中的 MCP 设置:

  • 使用命令面板:“MCP: Edit Configuration”

  • 或手动编辑:.vscode/mcp.json(工作区)或用户设置

{
  "mcpServers": {
    "rapid7-bulk-export": {
      "command": "rapid7-mcp-server",
      "args": [],
      "env": {
        "RAPID7_API_KEY": "your-api-key-here",
        "RAPID7_REGION": "your-region"
      }
    }
  }
}

安装 Agent Skill

# Project-level (recommended, stored in repository)
mkdir -p .github/skills/rapid7-bulk-export
curl -sL https://raw.githubusercontent.com/rapid7/rapid7-bulk-export-mcp/main/rapid7-bulk-export-skill/SKILL.md \
  -o .github/skills/rapid7-bulk-export/SKILL.md

# Or user-level (available across all projects)
mkdir -p ~/.copilot/skills/rapid7-bulk-export
curl -sL https://raw.githubusercontent.com/rapid7/rapid7-bulk-export-mcp/main/rapid7-bulk-export-skill/SKILL.md \
  -o ~/.copilot/skills/rapid7-bulk-export/SKILL.md

或使用 npx skills 直接安装:

npx skills install https://github.com/rapid7/rapid7-bulk-export-mcp

使用该技能作为斜杠命令:/rapid7-bulk-export。

验证

  1. 重新加载 VS Code 窗口

  2. 在状态栏或输出面板中检查 MCP 状态

  3. 尝试:Load the latest vulnerability data from Rapid7

安装 MCP 服务器

# Using uv
uv pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

# Or using pip
pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

配置

使用 Codex CLI 添加服务器:

codex mcp add rapid7-bulk-export \
  --env RAPID7_API_KEY=your-api-key-here \
  --env RAPID7_REGION=your-region \
  -- rapid7-mcp-server

或手动编辑 ~/.codex/config.toml:

[mcp_servers.rapid7-bulk-export]
command = "rapid7-mcp-server"
args = []
enabled = true

[mcp_servers.rapid7-bulk-export.env]
RAPID7_API_KEY = "your-api-key-here"
RAPID7_REGION = "your-region"

如果从 shell 使用环境变量而不是硬编码它们:

[mcp_servers.rapid7-bulk-export]
command = "rapid7-mcp-server"
args = []
enabled = true
env_vars = ["RAPID7_API_KEY", "RAPID7_REGION"]

验证

  1. 列出已配置的服务器:codex mcp list

  2. 查看服务器详情:codex mcp get rapid7-bulk-export

  3. 尝试:Load the latest vulnerability data from Rapid7

安装 MCP 服务器

# Using uv
uv pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

# Or using pip
pip install git+https://github.com/rapid7/rapid7-bulk-export-mcp.git

配置

编辑您的 Antigravity MCP 配置文件:

  • macOS/Linux: ~/.gemini/antigravity/mcp_config.json

  • Windows: C:\Users\<USERNAME>\.gemini\antigravity\mcp_config.json

您也可以从 Antigravity Agent 面板 → “...” → MCP 服务器 → 管理 MCP 服务器 → 查看原始配置来访问此文件。

将以下内容添加到 mcp_config.json:

{
  "mcpServers": {
    "rapid7-bulk-export": {
      "command": "rapid7-mcp-server",
      "args": [],
      "env": {
        "RAPID7_API_KEY": "your-api-key-here",
        "RAPID7_REGION": "your-region"
      }
    }
  }
}

验证

  1. 重启 Antigravity 以使更改生效

  2. 打开 MCP 服务器面板(“...” 菜单 → MCP 服务器)

  3. 确认“rapid7-bulk-export”出现在可用工具中

  4. 尝试:Load the latest vulnerability data from Rapid7

Docker 镜像

使用 Red Hat UBI 10 Python 3.12 Minimal 基础镜像,预装 Python 3.12.13。支持只读文件系统操作。无需 Red Hat 订阅。

构建并运行

使用 docker compose(推荐):

RAPID7_API_KEY=your-key RAPID7_REGION=us docker compose up -d

使用 docker run:

# Build
docker build -t rapid7-bulk-export-mcp .

# Run with read-only filesystem
docker run -d \
  -p 8000:8000 \
  -e RAPID7_API_KEY=your-api-key-here \
  -e RAPID7_REGION=us \
  -e DATA_DIR=/data \
  -e TMPDIR=/tmp \
  -v rapid7-data:/data \
  --tmpfs /tmp \
  --read-only \
  --security-opt no-new-privileges:true \
  --name rapid7-bulk-export-mcp \
  rapid7-bulk-export-mcp

配置您的 MCP 客户端

将任何兼容 MCP 的客户端指向 HTTP 端点:

{
  "mcpServers": {
    "rapid7-bulk-export": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

安装 Agent Skill

按照上方对应 AI 工具的技能安装说明操作。无论 MCP 服务器是本地还是远程,该技能的工作方式都相同。

验证

  1. 确认容器正在运行:docker ps

  2. 测试端点:curl http://localhost:8000/mcp

  3. 连接您的 AI 工具并尝试:Load the latest vulnerability data from Rapid7

2. 开始分析

注意: 首次导出需要 1-5 分钟,具体取决于组织规模。完成后,数据会被缓存,后续加载会复用同一导出。您随时可以要求刷新数据以获取最新数据集。

Show me the top 10 critical vulnerabilities with known exploits
What's the severity distribution across my cloud assets?

工具参考

start_rapid7_export

在 Rapid7 服务器上启动新的导出任务。立即返回导出 ID。支持三种导出类型:vulnerability、policy 和 remediation。

Start a vulnerability export from Rapid7

check_rapid7_export_status

轮询 Rapid7 API 一次以获取导出任务的当前状态。在 start_rapid7_export 之后使用,以了解数据何时就绪。

Check the status of export abc-123

download_rapid7_export

下载已完成导出的 Parquet 文件,并将其加载到本地 DuckDB 数据库中。这是数据变为可查询状态的地方。

Download and load export abc-123

load_rapid7_parquet

直接从磁盘加载现有的 Parquet 文件(必须位于 ~/.rapid7_mcp/imports/ 内)。如果您已经有导出的文件并希望跳过 API 调用,这将非常有用。

Load parquet files from ~/.rapid7_mcp/imports/my-export/

query_rapid7

对已加载的数据执行 SQL。加载后连接会被锁定——在 DuckDB 引擎级别阻止文件系统读取、写入和网络访问。

可用表:assets、vulnerabilities、policies、vulnerability_remediation。

Run: SELECT severity, COUNT(*) FROM vulnerabilities GROUP BY severity

get_rapid7_schema

返回所有已加载表的列名和数据类型。在编写查询之前,使用此工具了解哪些字段可用。

Show me the schema of the loaded data

get_rapid7_stats

返回汇总统计信息——行数、严重性分布、CVSS 分数范围、漏洞利用计数和云提供商细分。

Give me an overview of the vulnerability data

list_rapid7_exports

显示最近的导出历史,包括 ID、日期、状态和行数。对于查找之前要重新加载的导出非常有用。

List my recent exports

purge_rapid7_data

从磁盘永久删除漏洞数据库和导出跟踪数据库。在完成分析后或在移交机器之前使用。

Purge all local Rapid7 data

架构

graph TB
    subgraph "AI Layer"
        LLM[LLM/AI Assistant<br/>Copilot, Kiro, Claude Desktop, etc.]
    end

    subgraph "Rapid7 Bulk Export MCP Tool"
        MCP[MCP Server<br/>rapid7-bulk-export]
        Skill[Agent Skill / Power<br/>rapid7-bulk-export-skill]
    end

    subgraph "Data Layer"
        DB[(DuckDB<br/>rapid7_bulk_export.db)]
        Tracker[(Export Tracker<br/>rapid7_bulk_export_tracking.db)]
    end

    subgraph "Rapid7 API"
        R7[Rapid7 Bulk Export API<br/>/export/graphql ]
    end

    LLM <-->|Model Context Protocol| MCP
    LLM -.->|Enhanced Context| Skill
    MCP -->|SQL Queries| DB
    MCP -->|Track Exports| Tracker
    MCP -->|Fetch Data| R7
    R7 -->|Parquet Files| MCP
    MCP -->|Load Data| DB

    style LLM fill:#e1f5ff
    style MCP fill:#fff4e1
    style Skill fill:#f0e1ff
    style DB fill:#e8f5e9
    style Tracker fill:#e8f5e9
    style R7 fill:#ffe1e1

开发

可以在本地对 AgentSkill 和 MCP 进行更改,以便您根据自身环境进行定制——欢迎向本仓库贡献代码。

克隆并安装

git clone https://github.com/rapid7/rapid7-bulk-export-mcp.git
cd rapid7-bulk-export-mcp
uv sync

为开发进行配置

创建或编辑 .kiro/settings/mcp.json:

{
  "mcpServers": {
    "rapid7-bulk-export": {
      "command": "/absolute/path/to/rapid7-bulk-export-mcp/.venv/bin/rapid7-mcp-server",
      "args": [],
      "env": {
        "RAPID7_API_KEY": "your-api-key-here",
        "RAPID7_REGION": "your-region",
        "DATA_DIR": "/Users/you/.rapid7-mcp"
      }
    }
  }
}

注意: 将 command 直接指向 venv 入口点,而不是将 uv run 与 cwd 一起使用。Claude Desktop 在启动 MCP 服务器时不保证工作目录,因此 uv run 可能会解析到缓存或系统安装的包版本,而不是本地源代码。

运行测试

uv run pytest

环境变量

变量

必需

默认值

描述

RAPID7_API_KEY

是

—

Rapid7 InsightVM API 密钥

RAPID7_REGION

是

us

API 区域:us、us2、us3、eu、ca、au、ap

DATA_DIR

否

~/.rapid7_mcp

数据库文件目录;必须可写。手动 parquet 导入必须放置在 $DATA_DIR/imports/ 中

MCP_TRANSPORT

否

stdio

传输协议:stdio 或 http

MCP_HOST

否

0.0.0.0

HTTP 绑定地址(仅当 MCP_TRANSPORT=http 时)

MCP_PORT

否

8000

HTTP 端口(仅当 MCP_TRANSPORT=http 时)

Available Tools

9 tools
check_rapid7_export_statusCheck Rapid7 Export StatusA
Read-onlyIdempotent

Check the current status of a Rapid7 export job.

This is a fast, non-blocking call that queries the Rapid7 API once and returns the current status. Does NOT poll or wait.

ParametersJSON Schema
NameRequiredDescriptionDefault
export_idYesThe export ID returned by start_rapid7_export.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful context beyond annotations by specifying it is a fast, non-blocking call that queries the API once and does not poll or wait, which clarifies the operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the purpose and followed by the key non-polling behavior. Every word earns its place and there is no redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: one parameter, full schema coverage, rich annotations, and an output schema present. The description adds the crucial behavioral guarantee of non-polling. Nothing material is missing for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the sole parameter export_id is already fully documented in the schema. The tool description does not add additional parameter meaning, but the baseline of 3 is appropriate when the schema carries the full load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Check the current status of a Rapid7 export job.' It clearly differentiates itself from sibling tools by emphasizing this is a status check and by noting 'Does NOT poll or wait,' which distinguishes it from any waiting/polling or export-starting workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need the current status without blocking or waiting. However, it does not explicitly name alternatives or state conditions for when not to use it, such as 'if you need to wait for completion, use start_rapid7_export' or 'use download_rapid7_export when ready.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_rapid7_exportDownload Rapid7 ExportA
Idempotent

Download a completed Rapid7 export and load into the database.

Call this after check_rapid7_export_status confirms the export is COMPLETE. Downloads the Parquet files and loads them into the local DuckDB database for querying.

ParametersJSON Schema
NameRequiredDescriptionDefault
export_idYesThe export ID of a completed export.
export_typeNoType of export. One of "vulnerability", "policy", or "remediation".vulnerability

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that this tool downloads Parquet files and loads them into the local DuckDB database for querying, which adds side-effect context beyond the annotations. It also states the completion prerequisite. It does not detail overwrite behavior or failure handling, but idempotentHint and destructiveHint already cover safety expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose. There is mild redundancy between the first sentence and the final sentence, both saying the export is loaded into a database, but overall every sentence carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the key invocation context: call after status is COMPLETE, download Parquet files, and load into DuckDB for querying. With a complete input schema and an output schema present, an agent has enough information to invoke it correctly. The only notable gap is the relationship to load_rapid7_parquet.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents both parameters with clear descriptions, so the baseline is 3. The description adds no extra parameter-level meaning beyond restating 'completed export,' which the schema already includes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Download a completed Rapid7 export' and 'load into the database.' It is distinct from siblings like start_rapid7_export or check_rapid7_export_status, but it does not explicitly differentiate itself from load_rapid7_parquet, since both involve loading Parquet into DuckDB.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to call this after check_rapid7_export_status confirms the export is COMPLETE, giving clear timing guidance. It does not mention when not to use it or point to alternatives such as load_rapid7_parquet, but the prerequisite is concrete and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rapid7_schemaGet Rapid7 SchemaA
Read-onlyIdempotent

Get the schema of all database tables.

Returns column names and data types for all existing tables: assets, vulnerabilities, policies, and vulnerability_remediation. Tables that have not been loaded yet are omitted.

Use this to understand what data is available before writing queries.

Returns: Table schemas as formatted JSON, keyed by table name

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful behavior beyond annotations: tables not yet loaded are omitted, and schemas are returned as formatted JSON keyed by table name. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, well-structured, and front-loaded with the core action. Every sentence adds useful information: scope, included tables, omission behavior, and usage intent. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only schema tool with an output schema and rich annotations, the description covers everything needed: what it returns, which tables, the omission nuance, and how to use it. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to document parameter behavior. The baseline of 4 applies because the schema already fully covers the empty parameter set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: 'Get the schema of all database tables,' then enumerates exactly which tables are included. This makes the tool's scope unambiguous and distinguishes it from query/stats/export tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent when to use the tool: 'Use this to understand what data is available before writing queries.' It does not discuss exclusions or compare against alternatives, but given the sibling set, no other tool claims schema discovery, so the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rapid7_statsGet Rapid7 StatisticsA
Read-onlyIdempotent

Get summary statistics for all database tables.

Returns row counts and relevant distributions for all existing tables: assets, vulnerabilities, policies, and vulnerability_remediation. Tables that have not been loaded yet are omitted.

Useful for getting an overview of the data across all loaded datasets.

Returns: Summary statistics as formatted JSON, keyed by table name

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it readOnly, idempotent, and non-destructive. The description adds meaningful behavior beyond those hints: it returns row counts plus distributions, omits tables not yet loaded, and returns formatted JSON keyed by table name. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose and return shape. A small redundancy exists between 'Returns row counts...' and the later 'Returns: Summary statistics as formatted JSON...' line, but the latter adds keying detail so the duplication is minor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-argument read-only tool with annotations and an output schema available, the description is complete: it identifies the covered tables, the omission behavior for unloaded tables, and the return format. No critical call-time information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so there is nothing to document beyond the baseline for zero-parameter tools. The description's statement of what the stats cover is the only relevant semantic context and it is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Get summary statistics for all database tables') and then enumerates the exact outputs ('row counts and relevant distributions') and the tables involved (assets, vulnerabilities, policies, vulnerability_remediation). This makes it clearly distinct from siblings like query_rapid7 or get_rapid7_schema, which are for detailed queries or schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit use context: 'Useful for getting an overview of the data across all loaded datasets.' It does not name alternatives or state when not to use it, so it stops short of a full routing rule, but the intended scenario is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_rapid7_exportsList Rapid7 ExportsA
Read-onlyIdempotent

List recent Rapid7 exports tracked in the system.

Shows export metadata including export ID, date, status, type, and row counts. Useful for understanding what exports are available for reuse.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of exports to return (default: 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context: it lists only 'recent' exports, scopes them to 'tracked in the system', and specifies the metadata fields returned. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The primary action is front-loaded, and the second sentence adds valuable detail about output contents and intended use. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool with one optional parameter, a full output schema, and safety annotations already present, the description provides sufficient context. It explains what the tool returns, what the results represent, and why an agent would call it. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the limit parameter already documented including its default. The description adds no additional parameter semantics, but the schema fully covers the single optional parameter. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('List') and identifies the exact resource ('Rapid7 exports tracked in the system'). It names the metadata fields returned, which distinguishes this from sibling tools like start_rapid7_export or download_rapid7_export. The phrase 'available for reuse' clarifies its role as an inventory/reuse tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: to see what exports exist and what can be reused. It does not explicitly state when not to use it or name alternatives, but the intended use case is clear enough for a simple listing tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_rapid7_parquetLoad Rapid7 Parquet FileA
Idempotent

Load vulnerability data from existing Parquet file(s).

Use this if you already have Parquet files downloaded and want to skip the export process. This is much faster than running a full export.

ParametersJSON Schema
NameRequiredDescriptionDefault
parquet_pathYesPath to a Parquet file or directory containing Parquet files

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safety profile (idempotentHint=true, destructiveHint=false, readOnlyHint=false), and the description's 'load' claim is consistent with those. The description adds a performance trait ('much faster than running a full export') and the workflow context of skipping exports. However, it doesn't disclose what happens when data is loaded into a non-empty store (overwrite vs. append), which is the key behavioral unknown for a load tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: the purpose is front-loaded, the usage condition follows, and the performance rationale comes last. Each sentence earns its place, and the whole is well under any reasonable length limit.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with 100% schema coverage, an output schema, and annotations covering idempotency and destructiveness, the description is nearly complete. The only gap is conflict semantics with pre-existing data (does loading replace or merge?), which is a minor omission for an idempotent loader.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — parquet_path's description states it accepts a file or directory, so the schema already carries the full semantic load. The description's phrase 'Parquet file(s)' reinforces the directory case but adds no new meaning beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Load vulnerability data from existing Parquet file(s).' This is unambiguous among the siblings, which are all export-management or query tools (start_rapid7_export, download_rapid7_export, query_rapid7, etc.), so there is no confusion about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit trigger condition: use this when you already have Parquet files downloaded and want to skip the export process. It contrasts this path with running a full export, letting an agent infer that the export siblings (start_rapid7_export, download_rapid7_export) are the alternative. It stops short of naming a specific sibling tool, but the condition is clear enough to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

purge_rapid7_dataPurge Rapid7 DataA
DestructiveIdempotent

Permanently delete all local Rapid7 data and tracking databases.

This removes:

  • The main vulnerability database (rapid7_bulk_export.db)

  • The export tracking database (rapid7_bulk_export_tracking.db)

  • Any associated WAL files

Use this when you are done with your analysis session, before handing off a machine, or to free disk space. After purging, you will need to run a new export to query data again.

Returns: Confirmation of purged data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, and the description reinforces and enriches this by naming the exact databases and WAL files that will be destroyed and noting that the action is 'permanent.' It clearly discloses the irreversible destructive behavior without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly organized with a one-line summary, a bulleted list of affected files, a clear usage statement, and a return note. Every sentence adds useful information and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter destructive tool with annotations covering destructiveness and idempotency, the description is complete: it names exactly what is deleted, says when to use it, warns about the need to re-export afterward, and states the return value. No critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is empty, so there is nothing to document at the parameter level. The description instead clarifies that the operation acts on all local Rapid7 data, which is the only relevant 'scope' information an agent needs. Baseline 4 is appropriate for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Permanently delete all local Rapid7 data and tracking databases.' It goes on to enumerate the exact files removed (rapid7_bulk_export.db, rapid7_bulk_export_tracking.db, WAL files), which clearly distinguishes it from the read/query/export sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'when you are done with your analysis session, before handing off a machine, or to free disk space.' It also explains the consequence—'After purging, you will need to run a new export to query data again'—which tells the agent the practical impact and when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_rapid7Query Rapid7 DataA
Read-onlyIdempotent

Execute a SQL query against the Rapid7 database.

The database contains the following tables loaded from Rapid7 InsightVM Bulk Export API Parquet files:

assets — Asset inventory data: Key fields: orgId, assetId, agentId, hostName, ip, mac, osFamily, osProduct, osVersion, osDescription, riskScore, sites, assetGroups, tags, awsInstanceId, azureResourceId, gcpObjectId

vulnerabilities — Combined asset + vulnerability data: Key fields: orgId, assetId, vulnId, checkId, port, protocol, title, description, severity, severityRank, cvssScore, cvssV3Score, cvssV3Severity, hasExploits, epssscore, epsspercentile, riskScoreV2_0, cves, firstFoundTimestamp, reintroducedTimestamp, dateAdded, dateModified, datePublished, pciCompliant, pciSeverity

policies — Policy compliance results (agent and scan based): Key fields: orgId, assetId, benchmarkNaturalId, profileNaturalId, benchmarkVersion, ruleNaturalId, ruleTitle, finalStatus, proof, lastAssessmentTimestamp, benchmarkTitle, profileTitle, publisher, fixTexts, rationales, source ('agent' or 'scan')

vulnerability_remediation — Vulnerability remediation tracking: Key fields: orgId, assetId, cveId, vulnId, proof, firstFoundTimestamp, reintroducedTimestamp, lastDetected, lastRemoved, title, description, cvssV2Score, cvssV3Score, cvssV2Severity, cvssV3Severity, cvssV2AttackVector, cvssV3AttackVector, riskScoreV2_0, datePublished, dateAdded, dateModified, epssscore, epsspercentile

Use this tool to query any of the above tables. You can filter, aggregate, join across tables, or perform any SQL-based analysis supported by DuckDB.

Examples:

  • SELECT * FROM vulnerabilities WHERE severity = 'Critical' LIMIT 10

  • SELECT severity, COUNT(*) FROM vulnerabilities GROUP BY severity

  • SELECT * FROM policies WHERE finalStatus = 'fail' LIMIT 10

  • SELECT cveId, COUNT(*) FROM vulnerability_remediation GROUP BY cveId

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesSQL query to execute against the database

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context: the data comes from Rapid7 InsightVM Bulk Export Parquet files and SQL is executed with DuckDB support. This gives the agent expectations about the underlying engine and data source without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is direct, and the table-by-table field lists are useful rather than filler for a SQL tool. The examples are compact and illustrative. It is long, but the length is mostly justified by the need to document the data model for query authoring.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex SQL-query tool, the description covers the available tables, representative fields, dialect, and example queries. An output schema exists, so return-value documentation is not the description's job. It does not mention result limits, timeouts, or error behavior, but those are minor given the annotations and the tool's read-only nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single sql parameter, so the baseline is 3. The description adds real value by specifying DuckDB as the SQL dialect, listing queryable tables with key columns, and providing representative examples. This materially reduces ambiguity about what kinds of queries are valid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Execute a SQL query against the Rapid7 database') and goes beyond the name by enumerating the four available tables and their key fields. This clearly distinguishes it from sibling lifecycle tools like start_rapid7_export, download_rapid7_export, or purge_rapid7_data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this tool to query any of the above tables' and gives concrete SQL examples, establishing clear context for when it applies. It does not name exclusions or alternatives, but the sibling set is self-evident enough that an agent can see this is the data-querying tool versus export/schema/stats helpers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_rapid7_exportStart Rapid7 ExportA
Idempotent

Start a new Rapid7 export job (non-blocking).

This is a fast, non-blocking call that creates an export job on the Rapid7 platform and returns the export ID immediately. The export will process in the background on Rapid7's servers (typically 3-5 minutes).

Use check_rapid7_export_status(export_id) to monitor progress, then download_rapid7_export(export_id, export_type="...") once it completes.

If an export from today already exists, returns that export's ID instead of creating a duplicate.

For remediation exports, the Rapid7 API limits each request to 31 days. If the date range exceeds 31 days, this tool automatically splits it into multiple 31-day chunks and kicks off an export for each chunk.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateNoEnd date in YYYY-MM-DD format (only for remediation exports). Defaults to today if not specified.
start_dateNoStart date in YYYY-MM-DD format (only for remediation exports). Defaults to 30 days ago if not specified.
export_typeNoType of export to create. One of "vulnerability", "policy", or "remediation".vulnerability

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the annotations: non-blocking background processing, typical 3-5 minute completion, automatic reuse of a same-day export ID, and automatic splitting of >31-day remediation exports. These are exactly the kind of runtime behaviors an agent needs to know and cannot infer from the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the essential non-blocking behavior, followed by downstream tool usage and edge-case behavior. It is slightly repetitive ('non-blocking' appears twice; returning the export ID is stated more than once), but every block of information serves a distinct purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three optional parameters, an output schema, and annotations available, the description is fully complete. It explains what the tool returns, what happens in the background, how long it typically takes, how to check/download the result, and how edge cases like duplicates and long date ranges are handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers parameter types, defaults, and enum values at 100%, so the baseline is 3. The description adds extra value by clarifying that date parameters are remediation-focused and by explaining the 31-day chunking behavior, which directly affects how start_date and end_date should be provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Start a new Rapid7 export job (non-blocking)', giving a specific verb and resource. It clearly separates this tool from siblings like check_rapid7_export_status, download_rapid7_export, and list_rapid7_exports by focusing on job creation and immediate ID return.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear workflow: call this first, then check_rapid7_export_status, then download_rapid7_export. It also explains the existing-export deduplication behavior, which helps the agent decide whether a new call is needed. It does not explicitly name alternatives like list_rapid7_exports for checking existing exports, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.5.2
    • First observedcheck_rapid7_export_status
    • First observeddownload_rapid7_export
    • First observedget_rapid7_schema
    • First observedget_rapid7_stats
    • First observedlist_rapid7_exports
    • First observedload_rapid7_parquet
    • First observedpurge_rapid7_data
    • First observedquery_rapid7
    • First observedstart_rapid7_export

TDQS

A4.4/5.0

Scored across 9 tools

Disambiguation5/5

Each tool covers a distinct phase of the export/query lifecycle: starting, checking, downloading, loading, listing, querying, inspecting, and purging. While list_rapid7_exports and check_rapid7_export_status both surface status information, their purposes are clearly separated and their descriptions remove ambiguity.

Naming Consistency5/5

Tool names consistently follow a verb_rapid7_object pattern, such as start_rapid7_export, download_rapid7_export, and get_rapid7_schema. Even query_rapid7 fits the pattern by treating Rapid7 as the object, and pluralization is used sensibly for list_rapid7_exports.

Tool Count5/5

Nine tools is well-scoped for the server's purpose: managing Rapid7 exports, loading data, and querying the local database. Each tool earns its place and there is no redundant bloat.

Completeness5/5

The tool set covers the complete export-to-analysis lifecycle: start an export, check status, download it, load existing Parquet files, list available exports, inspect schema and stats, query the data, and purge everything when done. No critical workflow dead-ends are apparent.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides conversational access to a local CVE (Common Vulnerabilities and Exposures) database, enabling natural language queries to search vulnerabilities, retrieve detailed CVE information, and view security statistics.
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI-powered analysis of Rapid7 vulnerability and asset data by exporting via the Bulk Export API and making it queryable through natural language or SQL in MCP-compatible tools.
    9
    33
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to HackerOne to pull bug bounty history, program scopes, and report details into a local SQLite database, exposing tools for searching, analyzing, and generating attack briefings using both personal and public disclosed reports.
    358
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A unified MCP server for Rapid7's security platform, exposing InsightVM (vulnerability management), InsightIDR (SIEM/investigations), and Metasploit Pro (pentest telemetry) as tools for Claude, Cursor, and any MCP-compatible LLM client.
    6
    MIT