Skip to main content
Glama
rapid7

Rapid7 Bulk Export MCP Server

Official
by rapid7

Check Rapid7 Export Status

check_rapid7_export_status
Read-onlyIdempotent

Check a Rapid7 export's current status, including local download/load progress, in a fast non-blocking call.

Instructions

Check the status of a Rapid7 export, including local download/load progress.

Fast, non-blocking call. Reports whichever stage the export is in:

  • While this server is downloading or loading the export in the background, reports that local phase and per-file progress — and skips the Rapid7 API call, since the platform-side export is already known to be complete.

  • Once loaded (COMPLETE) or failed (FAILED) locally, returns the stored summary/error so no work is repeated.

  • Otherwise queries the Rapid7 API once for the platform-side export status (PENDING/PROCESSING/COMPLETE/FAILED).

Because local phase lives in the durable tracker, it is inspectable after a server restart (interrupted work is reconciled to a retryable FAILED at startup rather than resumed). Does NOT poll or wait.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
export_idYesThe export ID returned by start_rapid7_export, or a job ID returned by a multi-window remediation load.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.2
    • changedInput schema / properties / export_id / description
      Previous value: -"The export ID returned by start_rapid7_export."New value: +"The export ID returned by start_rapid7_export, or a\njob ID returned by a multi-window remediation load."
  2. First observedv0.4.1

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark this as read-only, idempotent, and non-destructive. The description adds substantial behavioral detail beyond those hints: local download/load progress, per-file progress, skipping the API call when the local phase is active, returning stored summary/error on completion/failure, durable tracker behavior across restarts, and explicit non-polling semantics. This is rich, accurate, and useful context.

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 summary sentence is front-loaded, followed by a well-structured bullet list that clarifies each possible state. The additional paragraph about the durable tracker and restart reconciliation earns its place by explaining observable behavior. No sentence is redundant or wasted.

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?

Given the presence of an output schema and comprehensive annotations, the description covers everything an agent needs: when to use it, what phases it reports, how it behaves in each phase, restart behavior, and the fact that it is non-blocking and non-waiting. There are no meaningful gaps for selecting or invoking 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?

The single parameter export_id is fully documented in the input schema, including its origin from start_rapid7_export or a multi-window remediation load. With 100% schema description coverage, the description itself does not need to add parameter detail. The baseline of 3 is appropriate because the schema carries the parameter semantics.

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: 'Check the status of a Rapid7 export, including local download/load progress.' This clearly differentiates it from sibling tools like start_rapid7_export, download_rapid7_export, and load_rapid7_parquet, which perform different actions on exports.

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 clearly conveys when to call the tool: after an export has been started, to inspect platform-side or local progress. It also states behavioral boundaries like 'Does NOT poll or wait' and explains when the Rapid7 API call is skipped. It does not explicitly name alternative tools or exclusion conditions, but the context is strong enough for an agent to select it appropriately.

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