Skip to content

call · prompt · read

The three commands for driving a server: invoke a tool, render a prompt template, or read a resource. All three accept the global options; call and prompt share the argument syntax.

call — invoke a tool

mcpwn call <target> <tool> [-a key=value ...] [--json '{...}']
mcpwn call http://host/mcp/ add -a a=2 -a b=40
mcpwn call http://host/mcp/ lookup_user -a name=alice
mcpwn call http://host/mcp/ search --json '{"q":"test","limit":5}'

The result is rendered as a panel showing any structured content, data, and content blocks (text is pretty-printed as JSON when possible; images and embedded resources are summarised). Tool errors are shown in a red panel rather than raised — so you always see what the server returned.

prompt — render a prompt template

mcpwn prompt <target> <name> [-a key=value ...] [--json '{...}']
mcpwn prompt http://host/mcp/ pentest_report -a target=acme.com -a severity=high

Each message in the rendered prompt is printed with its role (user / assistant) and content.

read — read a resource

mcpwn read <target> <uri>

For a resource template, fill the parameters directly into the URI:

mcpwn read http://host/mcp/ "config://app"
mcpwn read http://host/mcp/ "users://7/email"

Text contents are pretty-printed (JSON-aware); binary blobs are summarised by size.

Working statefully?

Each of these commands opens a fresh connection. For stateful servers — or just faster iteration — use the shell, which keeps one connection open across calls.