name: mcporter description: Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, CLI/type generation, and MCP-backed skills that need a durable command path. homepage: http://mcporter.dev metadata: { "openclaw": { "emoji": "📦", "requires": { "bins": ["mcporter"] }, "install": [ { "id": "node", "kind": "node", "package": "mcporter", "bins": ["mcporter"], "label": "Install mcporter (node)", }, ], },
}
mcporter
Use mcporter to work with MCP servers directly.
In OpenClaw, treat mcporter as the execution substrate for MCP-backed
skills. When a user wants to keep an MCP capability for future work, prefer
creating or updating a skill that describes when to use the capability and
stores the repeatable mcporter command path. Do not create a separate runtime
registry when a skill can carry the durable behavior.
Skill-first MCP shape
SKILL.md: triggers, workflow, constraints, examples, and recovery steps.mcp.json: mcporter-native server config when the skill needs a dedicated server definition.references/: schemas, API notes, or longer operation guides.scripts/: wrappers for fragile multi-step calls or post-processing.
Credential handling
- Keep shared, bundled, published, or repo-tracked skills free of raw secrets. Reference environment variables, token helper commands, OAuth login state, runtime config, or platform-managed credentials instead.
- If the user explicitly provides a complete private MCP config or a
credential-bearing endpoint and asks to keep or use it, save it in a local
private config file such as skill-local
mcp.jsonin a writable user-managed skill root, or a dedicated user-managed private mcporter config file. Keep it non-shared and excluded from source control and packaging. Set file permissions to0600when possible. Do not ask the user to re-enter the same value as an environment variable, and do not edit shell startup or trusted env files just to persist it. Do not echo the secret value back in CLI output, logs, or errors; redact or omit token and secret fields from displayed tool results. - For bot-global OpenClaw MCP capabilities, prefer a local skill plus
skill-local
mcp.json. Usemcporter --config path/to/skill/mcp.json ...as the durable command path. Treat~/.mcporter/mcporter.jsonas an interoperability copy when useful, not as the capability boundary. The credential-bearing source of truth for a durable skill run is the explicit--configfile you pass.
For a durable MCP skill, first inspect the server schema:
mcporter --config path/to/skill/mcp.json list <server> --schema --output json
Then call the selected tool with explicit arguments:
mcporter --config path/to/skill/mcp.json call <server.tool> key=value
Quick start
mcporter listmcporter list <server> --schemamcporter call <server.tool> key=value
Call tools
- Selector:
mcporter call linear.list_issues team=ENG limit:5 - Function syntax:
mcporter call "linear.create_issue(title: \"Bug\")" - Full URL:
mcporter call https://api.example.com/mcp.fetch url:https://example.com - Stdio:
mcporter call --stdio "bun run ./server.ts" scrape url=https://example.com - JSON payload:
mcporter call <server.tool> --args '{"limit":5}'
Auth + config
- OAuth:
mcporter auth <server | url> [--reset] - Config:
mcporter config list|get|add|remove|import|login|logout
Daemon
mcporter daemon start|status|stop|restart
Codegen
- CLI:
mcporter generate-cli --server <name>or--command <url> - Inspect:
mcporter inspect-cli <path> [--json] - TS:
mcporter emit-ts <server> --mode client|types
Notes
- Prefer explicit
--configfor skills. mcporter can also use its default project or user config paths for local ad-hoc CLI work, but shared or packaged skills and automation should always pass an explicit--config. - Prefer
--output jsonfor machine-readable results.