Skip to main content
Glama

msf_rpc

Destructive

Call any Metasploit RPC method with positional arguments to query status, manage modules and sessions, or control the daemon.

Instructions

Call ANY Metasploit RPC method with positional arguments, excluding its auth token.

Examples: core.version []; module.info ["auxiliary", "module/name"]; job.list []; session.list []; db.workspaces []; plugin.loaded []. Methods and arguments depend on your installed Metasploit version. authenticated=null detects auth.login and health.check as unauthenticated; false omits the token for other noauth endpoints. timeout overrides the per-request HTTP timeout in seconds, without retrying a failed action. For binary arguments use an exact {"$binary": "base64..."} object. For typed map keys or literal marker objects use {"$map": [[key, value], ...]}. Non-string map keys in results are preserved using the same pair-list form. This can mutate state, execute modules, manage sessions, or stop the daemon. Use console tools for functionality without an RPC method.

Input Schema

NameRequiredDescriptionDefault
methodYes
paramsNo
timeoutNo
authenticatedNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, yet the description adds real blast-radius detail: 'can mutate state, execute modules, manage sessions, or stop the daemon.' It also discloses non-obvious operational behavior — timeout 'without retrying a failed action' and the null/false/true auth-token detection logic — that no annotation conveys.

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?

Front-loaded with purpose, then examples, then encoding and parameter notes — a sensible information order with no filler sentences. The example list is dense but each entry demonstrates a distinct calling shape, so it earns its space.

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 an open-world passthrough with four parameters and an output schema, the description covers the risky dimensions an agent needs: destructive scope, auth handling, timeout/no-retry, binary and map encoding, and how non-string map keys come back. Only the absence of method-discovery guidance (pointing at msf_rpc_methods) and error behavior leaves a modest gap.

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 description coverage is 0%, so the description must carry the load, and it largely does: positional params excluding the auth token, $binary and $map encodings, timeout semantics in seconds with no retry, and authenticated null-vs-false meaning. The only gap is that authenticated=true (force token) is never spelled out explicitly, leaving one of three states inferred.

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?

States a precise verb and resource ('Call ANY Metasploit RPC method with positional arguments, excluding its auth token'), which is far more specific than the tool name alone and clarifies the auth-token handling. The example method names (core.version, module.info, session.list) make the escape-hatch nature concrete. It doesn't explicitly distinguish itself from overlapping siblings like msf_module_execute or msf_sessions, which keeps it from a 5.

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?

Usage is implied through a list of representative methods and one exclusion ('Use console tools for functionality without an RPC method'), plus the caveat that methods/arguments depend on the installed version. However, there is no explicit routing to msf_rpc_methods for discovery or guidance on when to prefer the dedicated siblings (msf_module_execute, msf_jobs, msf_sessions) over the raw RPC call.

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