Skip to main content
Glama
sonadztux

rapid7-insightconnect-mcp

by sonadztux

Rapid7 InsightConnect MCP

CI

Use Rapid7 InsightConnect from an MCP-compatible AI assistant to find workflows, inspect jobs and artifacts, export snippets, and optionally run or cancel workflows.

Unofficial community project. This project is independently developed and is not an official Rapid7 product. It is not provided, maintained, endorsed, or supported by Rapid7. References to Rapid7 and InsightConnect are used only to describe compatibility with Rapid7 InsightConnect.

  • Harness-agnostic: your AI client owns MCP registration; this project only provides the MCP server.

  • Local by design: there is no hosted middle service.

  • Read-only by default: execution and cancellation stay disabled until you explicitly enable them.

  • API keys stay out of chat: setup collects the key through a one-time local browser page.

Quick start

You need an MCP-capable client, uv with Python 3.11+, and a Rapid7 API key.

The MCP executable is always:

uvx rapid7-insightconnect-mcp

1. Add it to your AI client

Claude Code

claude mcp add --transport stdio --scope user rapid7-insightconnect -- \
  uvx rapid7-insightconnect-mcp

Codex

codex mcp add rapid7-insightconnect -- \
  uvx rapid7-insightconnect-mcp

For other local MCP clients, register a stdio server with:

Command: uvx
Arguments: rapid7-insightconnect-mcp

The implementation does not detect or modify your AI client's configuration.

2. Connect Rapid7

Open a new AI session and ask:

Connect my Rapid7 InsightConnect account.

The MCP should call its setup tool and open a one-time local page. Choose your Rapid7 region, paste the API key, and leave writes disabled for your first session.

The API key goes directly to the local MCP process, not through the conversation.

3. Test it read-only

Ask:

Use Rapid7 InsightConnect to list at most 5 workflows. Do not run anything.

If you get a Rapid7 response, including an empty list, the connection is working.

Related MCP server: GitHub Actions MCP

If setup does not open

Run the terminal fallback:

uvx rapid7-insightconnect-mcp configure

It securely prompts for the API key, verifies it with one read-only request by default, and saves it locally. A failed verification does not overwrite an existing valid credential.

Then restart the MCP session.

Diagnose problems

Run local checks without contacting Rapid7:

uvx rapid7-insightconnect-mcp doctor

Add one explicit read-only API/authentication check with:

uvx rapid7-insightconnect-mcp doctor --online

Common failures:

Problem

What to do

MCP does not appear

Check your client's MCP list/status and open a fresh session.

Setup page does not open

Run uvx rapid7-insightconnect-mcp configure.

HTTP 401

Check the API key and Rapid7 region.

HTTP 403

Check the API key's Rapid7 permissions.

Saved settings seem ignored

Run doctor; remove partial R7_* environment overrides if you want stored credentials.

Writes are disabled

Reconfigure and explicitly enable them only when needed.

What it can do

Capability

MCP tools

Configure Rapid7

setup

Find and inspect workflows

list_workflows, get_workflow

Run workflows

execute_workflow

Inspect and cancel jobs

list_jobs, get_job, cancel_job

Read global artifacts

list_global_artifacts, get_global_artifact, list_artifact_entries

Export snippets

export_snippet

Workflow execution and job cancellation require both local write enablement and confirm=true on the individual MCP call after user approval.

The server does not automatically retry mutations after an uncertain outcome.

Credentials and safety

Stored credentials live at:

~/.config/rapid7-insightconnect-mcp/credentials.json

They are plain text protected by owner-only filesystem permissions. The loader rejects unsafe ownership, writable ancestry, unexpected file types, and symlinked credential paths.

Other security boundaries include:

  • fixed Rapid7 regional HTTPS hosts;

  • redirects and environment proxy inheritance disabled;

  • bounded request and response bodies;

  • validated API paths;

  • sanitized upstream errors;

  • credential-shaped response fields redacted before they reach the model;

  • a loopback-only, tokenized, expiring setup page;

  • no raw REST passthrough tool.

See SECURITY.md for the full security model and vulnerability reporting.

Advanced configuration

Environment variables are supported for CI and managed deployments:

Variable

Purpose

R7_API_KEY

Rapid7 API key

R7_REGION

us, us2, us3, eu, ca, au, or ap

R7_ALLOW_WRITES

true or false

R7_SETUP_TIMEOUT

Local setup-page timeout in seconds; default 300

XDG_CONFIG_HOME

Alternate absolute config directory

Configuration fails closed: if any credential-related R7_* variable is present, environment configuration is selected and both R7_API_KEY and R7_REGION are required. Incomplete environment configuration does not fall back to stored credentials.

.env files are not loaded.

Platform notes

The hardened credential store currently targets POSIX systems: Linux, macOS, and WSL on Windows.

Desktop apps may not inherit your shell PATH. If they cannot find uvx, use the absolute path from:

command -v uvx

On Windows, run the MCP inside WSL rather than as a native Windows process.

Development

End users should prefer uvx. Contributors can install from source:

git clone https://github.com/sonadztux/rapid7-insightconnect-mcp.git
cd rapid7-insightconnect-mcp
uv sync --frozen

Run the same checks as CI:

uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run pytest -q
uv run pip-audit
uv build

See CONTRIBUTING.md for contribution guidance and RELEASING.md for the PyPI release process.

License

Licensed under the MIT License.

Available Tools

11 tools
cancel_jobA
Destructive

Request job cancellation. Does not undo actions already performed.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, and the description adds the nuance that cancellation does not undo past actions, which is valuable behavioral context beyond the annotation. It does not contradict annotations; readOnlyHint=false aligns with the mutation. The description enriches the agent's understanding of side effects.

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?

Two sentences with no filler. The core action is front-loaded, and the caveat about not undoing actions is placed second. Every word earns its place, making it highly efficient.

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

Completeness2/5

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

For a destructive tool with an optional confirm parameter, the description omits critical guidance on how confirm works and what the expected response is. Although an output schema exists, it does not cover parameter semantics. The agent cannot safely invoke this tool without additional context on the confirm flag.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the schema provides no descriptions for job_id or confirm. The tool description does not mention either parameter, leaving the agent to guess the meaning of 'confirm' (likely a safety flag). Since the description fails to compensate for the missing schema documentation, this is a major gap.

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 clearly states the tool requests job cancellation, a specific verb and resource. The added clause 'Does not undo actions already performed' clarifies its scope and distinguishes it from merely inspecting jobs. It is unambiguous and distinct from siblings like list_jobs and get_job.

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 usage when a job needs to be cancelled, but it does not explicitly state when not to use it, nor does it reference any alternative tools. There are no siblings that perform cancellation, so no exclusions are given. The guidance is sufficient for a straightforward action but lacks explicit context.

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

execute_workflowC
Destructive

Execute an active API-triggered workflow without input; may change external systems.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, so the description's 'may change external systems' is consistent but adds little beyond the annotation. It does add context about 'API-triggered' and 'without input', which are behavioral traits not captured in the schema. However, it fails to mention the confirm parameter or any asynchronous behavior, so the added value is modest.

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 a single, concise sentence that front-loads the action. It avoids fluff and is appropriately short for the operation. However, it lacks critical detail, but that is a completeness issue, not a conciseness one. It earns a 4 for efficient structure.

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

Completeness2/5

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

For a destructive operation with a confirm parameter and an output schema, the description is incomplete. It does not explain the confirm parameter's purpose, what the output contains, or any side effects beyond a vague 'may change external systems'. The presence of an output schema and the destructive nature demand more context than provided.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It says 'without input', which is misleading given the schema requires workflow_id and includes confirm. Neither parameter's meaning or the confirm parameter's role is described. The description does not compensate for the lack of schema descriptions.

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 identifies the action (execute) and resource (workflow), and adds scope with 'active API-triggered' and 'without input'. It distinguishes from read-only siblings like list_workflows and get_workflow by implying a state-changing operation, though it does not explicitly name any sibling.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It states the condition 'active API-triggered' but does not explain when to choose it over other tools like cancel_job or list_jobs. No 'when not to use' or alternative routing is provided.

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

export_snippetA
Read-onlyIdempotent

Export a known snippet definition; published version by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
snippet_idYes
unpublished_versionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior, so the description only needs to add context beyond those. It adds the default published-version behavior and the 'known' precondition, but it does not describe return behavior, error cases, or what happens when an unpublished version is requested.

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 one concise sentence with no filler. Purpose and default behavior are front-loaded, and every word contributes meaning.

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 simple two-parameter read-only tool with strong annotations and an output schema, the description is mostly complete. It does not explain alternative usage or elaborate on the export output, but the output schema and annotations carry that burden.

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 0%, so the description must compensate. 'Known snippet definition' implies the required parameter must identify an existing snippet, and 'published version by default' clarifies the meaning of the unpublished_version flag. Still, most parameter detail is left to the schema and property names.

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 action ('Export'), a specific resource ('snippet definition'), and a scope ('known', 'published version by default'). This clearly distinguishes the tool from sibling list/get/execute tools for workflows, jobs, and artifacts.

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 phrase 'known snippet definition' implies this tool is for exporting an already-known snippet rather than discovering or listing snippets, and the default version hint points to the unpublished_version parameter. However, it does not explicitly state when to use this tool versus alternatives or provide any exclusions.

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

get_global_artifactB
Read-onlyIdempotent

Read global artifact metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifact_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

The description's 'Read' aligns with readOnlyHint, idempotentHint, and destructiveHint=false, so there is no contradiction. It does not add behavioral context beyond the annotations, such as caching or missing-ID behavior, but the annotations already disclose the key safety profile.

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?

One short sentence with no filler; the verb and resource are front-loaded. For a simple one-parameter read tool, this is the right size.

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 tool is low complexity, annotations cover read-only/idempotent behavior, and an output schema exists, so the description doesn't need to explain return values. It is almost complete, but a brief note on how this differs from list_global_artifacts or list_artifact_entries would have made it fully self-contained.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not mention artifact_id or explain how to obtain its value, so it fails to compensate for the missing schema descriptions. The property name, required flag, and uuid format in the schema help, but the description itself adds no parameter-level meaning to the single required parameter.

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 uses a specific verb ('Read') and a specific resource ('global artifact metadata'), so an agent can tell it reads a single artifact's metadata rather than performing an action. It does not explicitly name sibling tools like list_global_artifacts or list_artifact_entries, so the differentiation is clear from the wording but not stated.

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 purpose statement implies this tool is for retrieving metadata for a single named global artifact, and the required artifact_id makes the intended use clear. However, it doesn't explicitly state when not to use it or direct the agent to list_global_artifacts or list_artifact_entries for other lookup needs.

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

get_jobA
Read-onlyIdempotent

Read a job's status and available execution details.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description aligns by saying 'Read'. The description adds no new behavioral detail beyond the annotations, but that is acceptable given the strongly annotated safety profile.

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?

One short, front-loaded sentence with no filler. Every word contributes to identifying what the tool reads and what it returns.

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 single required parameter, strong annotations, and presence of an output schema, the description is complete for safe invocation. It tells the agent what the tool returns without needing to explain return structure or side effects.

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 description does not describe job_id, and schema description coverage is 0%. However, the single parameter is self-explanatory ('job_id' with UUID format) and the schema clearly marks it as required, so the schema carries the semantic weight sufficiently despite the lack of description-level compensation.

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 uses a specific verb ('Read') and resource ('a job's status and available execution details'), clearly identifying this as the single-job retrieval tool. It is easy to distinguish from siblings like list_jobs and cancel_job even without reading their schemas.

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 does not explicitly name alternatives or exclusions, but 'Read' plus the sibling tool names makes the usage context obvious: use this for read-only status lookup rather than cancellation or execution. This is clear context without explicit when-not guidance.

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

get_workflowA
Read-onlyIdempotent

Read workflow definition and trigger details before execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description is not required to restate those. It adds the specific subject being read—workflow definition and trigger details—but does not disclose additional behaviors like error conditions or permissions; the output schema covers return value expectations.

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 entire description is one front-loaded sentence that begins with the action verb and names the object and timing. There is no filler or redundant restatement of the tool name.

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 one-parameter, read-only tool with strong annotations and an output schema, the description is largely sufficient: it states what to read and when. It could be more complete by pointing to list_workflows as the source of workflow_id, but that is a minor gap given the schema already identifies the required parameter.

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

Parameters2/5

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

The schema has 0% description coverage for workflow_id, and the tool description does not explain how to obtain it or confirm it is the UUID returned by list_workflows. The property name and uuid format are self-evident, but the description adds no parameter-level meaning beyond the schema.

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 uses the specific verb 'Read' and names the exact resource, 'workflow definition and trigger details,' which distinguishes it from list_workflows and execute_workflow. The qualifier 'before execution' further clarifies that this is the pre-execution lookup tool.

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 phrase 'before execution' provides a clear timing cue, implying the agent should fetch this before calling execute_workflow. However, it does not explicitly state when not to use it or name alternatives such as list_workflows for enumeration, so the guidance remains implied rather than explicit.

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

list_artifact_entriesB
Read-onlyIdempotent

Read artifact entities; upstream spec does not document pagination parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifact_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/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 established. The description adds a relevant caveat that the upstream spec does not document pagination parameters, which helps agents understand potential limitations. However, it doesn't clarify the behavior for large result sets or whether all entries are returned in one response.

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 a single sentence with no wasted words. It front-loads the action and resource, then adds a meaningful caveat about pagination. While very brief, it is efficient and not padded.

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

Completeness3/5

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

Given the tool's low complexity (one parameter, output schema present), the description is mostly adequate but sparse. It lacks information about error conditions, how artifact_id relates to other tools, or what constitutes an artifact entry. The pagination note is the only extra contextual detail beyond name and schema.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden for explaining parameters. It does not explain artifact_id at all, though the parameter name and uuid format provide some inference. The description also doesn't explicitly state that artifact_id identifies the parent artifact whose entries are listed.

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 states a specific verb ('Read') and resource ('artifact entities'), making the basic purpose clear. It does not explicitly differentiate from sibling tools like list_global_artifacts, but the naming 'artifact_entries' vs 'global_artifacts' hints at a distinct scope. Overall, the purpose is understandable without opening the schema.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It does not mention when-not-to use it, prerequisites, or relationships to sibling tools. The only additional note is about pagination parameters, which is a behavioral caveat rather than usage guidance.

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

list_global_artifactsB
Read-onlyIdempotent

Discover global artifacts, optionally filtered by name, sorted by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
limitNo
offsetNo
sort_orderNoasc

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already provide strong safety context (readOnlyHint, idempotentHint, destructiveHint=false), so the description has a lower burden. It adds that results can be filtered by name and sorted by name, which is useful behavioral detail beyond the annotations, but it does not disclose pagination behavior (e.g., max limit) or the default sort order.

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?

A single, front-loaded sentence with no wasted words. It efficiently conveys the core action and two key modifiers, though it omits pagination details that would make it more useful.

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

Completeness3/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 rich annotations, the description is minimally adequate for a simple listing tool. However, with zero parameter descriptions in the schema, the description's failure to mention pagination and sort_order leaves an agent to infer these details from parameter names alone. This is acceptable for a simple tool but not complete.

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

Parameters2/5

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

With schema description coverage at 0%, the description must compensate, but it only references the name filter and sorting. It does not explain the limit, offset, or sort_order parameters, nor their semantics (e.g., default asc, max limit 30). This is a significant gap for a tool with four parameters.

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?

Description clearly states a read-only list operation on a specific resource ('global artifacts') and distinguishes it from get_global_artifact (singular) and list_artifact_entries. The verb 'Discover' is slightly less direct than 'List', but the intent is unambiguous.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus siblings. It does not mention that get_global_artifact should be used for a single artifact, nor does it explain how this relates to list_artifact_entries. Usage is only implied by the tool name and the word 'Discover'.

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

list_jobsA
Read-onlyIdempotent

Read jobs newest first; optionally filter by workflow or documented terminal status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
statusNo
workflow_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, and open-world semantics, lowering the bar. The description adds genuine value beyond those: the 'newest first' ordering behavior and the constraint that only 'documented terminal status' (succeeded/failed) can be used as a filter, implying non-terminal statuses are not filterable. This is useful behavioral context that annotations do not provide.

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?

A single front-loaded sentence with zero waste. The verb comes first, ordering is stated, and the filter capability follows. Every element earns its place with no redundant phrasing.

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 core behaviors (ordering, filtering) and an output schema exists, so return values need no explanation. Minor gaps remain: pagination via limit/offset is not mentioned and the phrase 'documented terminal status' assumes the agent knows which statuses are terminal, though the schema's enum (succeeded/failed) makes this discoverable. Adequate for a list tool.

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 0%, so the description must compensate. It does partially address two of the four parameters: 'filter by workflow' maps to workflow_id and 'status' maps to the status param. However, the pagination parameters (limit and offset) are never mentioned, leaving half the schema undocumented in prose. The description helps for the filter params but not the paging params.

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 uses a specific verb ('Read') with a specific resource ('jobs') and adds the ordering behavior 'newest first'. It distinguishes from siblings by being a plural list operation versus get_job/cancel_job, though it does not explicitly name those alternatives. The optional filter mention adds precision about scope.

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 gives context on what filters are available ('optionally filter by workflow or documented terminal status') but provides no explicit when-to-use guidance or exclusions, and does not route the agent toward get_job for single-job retrieval or list_workflows for workflow listing. The usage context is implied rather than stated.

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

list_workflowsA
Read-onlyIdempotent

Discover workflows, one bounded page at a time; filter by state or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
limitNo
stateNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the description reasonably focuses on additional behavior. It adds useful context about pagination ('one bounded page at a time') and filtering, which are behavioral traits not captured by the annotations. 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.

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. It communicates the action, resource, pagination behavior, and available filters in about twelve words, making it easy for an agent to parse quickly.

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?

Given the rich annotations, an output schema, and a simple parameter set, the description covers the essentials: optional name/state filters and paged navigation. It does not describe ordering or consistency guarantees of offset pages, but those are not necessary for the agent to invoke the 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 0%, so the description must compensate for parameter meaning. It explicitly identifies state and name as filters and implies limit/offset through pagination, but it does not explain exact matching semantics, default page size, or how offset behaves. This is adequate with clear gaps.

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 uses a specific action ('Discover') with a clear resource ('workflows') and adds scope via 'one bounded page at a time' and 'filter by state or name'. This distinguishes it from siblings like get_workflow (single workflow) and execute_workflow (mutation).

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 implies when to use this tool: for discovering or browsing workflows, with optional filtering by state or name and page-based navigation. It does not explicitly name alternatives or state 'do not use when...', so it falls short of full explicit routing guidance, but the context is clear.

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

setupA
Idempotent

Configure Rapid7 credentials via a secure local page. Never ask for the key in chat.

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 cover readOnlyHint (false), idempotentHint (true), and destructiveHint (false). The description adds context that it uses a 'secure local page' and instructs not to ask for the key in chat — this informs the agent that the tool will present a UI flow and that credentials should not be transmitted via chat. This is additional useful behavioral context beyond annotations, and there is no contradiction.

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?

Two sentences, no filler. The first sentence front-loads the core action and resource, the second delivers a critical usage constraint. Every word earns its place; it is compact and immediately actionable.

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 tool has no parameters, an output schema exists, and annotations are present, the description is complete. It tells the agent what the tool does, how it behaves (local page, secure), and provides the key usage constraint (never ask for the key in chat). Nothing essential is missing for an agent to invoke it correctly.

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 coverage is trivially 100%. With no parameters, the description need not explain any parameter details. The baseline for zero-parameter tools is 4, and the description appropriately does not attempt to describe parameters it doesn't have.

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 ('Configure') and resource ('Rapid7 credentials'), and clarifies the method ('via a secure local page'). It clearly distinguishes from siblings, which are all about workflows, jobs, artifacts, and snippets — none relate to credential setup. An agent can immediately understand 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 usage rule: 'Never ask for the key in chat.' This tells the agent to avoid requesting the credential in conversation and instead use this tool. It doesn't explicitly state when to use this tool vs. alternatives, but given the sibling set, there is no competing credentials tool, so the intent is clear. It also implies the tool is the safe way to obtain credentials.

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. 11 tool updatesv0.2.0
    • First observedcancel_job
    • First observedexecute_workflow
    • First observedexport_snippet
    • First observedget_global_artifact
    • First observedget_job
    • First observedget_workflow
    • First observedlist_artifact_entries
    • First observedlist_global_artifacts
    • First observedlist_jobs
    • First observedlist_workflows
    • First observedsetup

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct resource/action combination: workflows (list/get/execute), jobs (list/get/cancel), artifacts (list/get/list entries), and snippets (export). No two tools have overlapping purposes, and the descriptions clearly delineate their roles.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (e.g., list_workflows, get_job, execute_workflow, export_snippet). The single exception, setup, is still a verb and fits the pattern. No mixed conventions or irregular naming.

Tool Count5/5

With 11 tools, the set is well-scoped for the Rapid7 InsightConnect domain. It covers the essential resources (workflows, jobs, artifacts, snippets) without excess, and each tool has a clear purpose. This is within the ideal range for a domain-specific MCP server.

Completeness4/5

The surface covers core read and execution workflows for the domain. Minor gaps exist, such as no way to list snippets (only export a known one) and lack of create/update/delete operations for workflows/artifacts, but these may be intentional given the server's focus on discovery and execution. The noted lack of pagination parameters for list_artifact_entries is a small limitation.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Connects AI assistants to GitHub Actions workflows to monitor CI/CD pipelines, view run logs, diagnose failures, and optionally trigger or manage workflows with granular permission controls.
    10
    1
    -
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to manage Rundeck operations including jobs, executions, projects, nodes, system management, key storage, webhooks, and ACL policies via natural language.
    50
    28 npm
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage Rundeck automation platform, including project and job management, execution, and system monitoring through the MCP protocol.
    1
    MIT