mcp2cli Turn any MCP server or OpenAPI spec into a CLI at runtime. No codegen. Install
Run directly (no install needed)
uvx mcp2cli --help
Or install
pip
install
mcp2cli
Core Workflow
Connect
to a source (MCP server or OpenAPI spec)
Discover
available commands with
--list
Inspect
a specific command with
MCP over HTTP
mcp2cli --mcp https://mcp.example.com/sse --list mcp2cli --mcp https://mcp.example.com/sse create-task --help mcp2cli --mcp https://mcp.example.com/sse create-task --title "Fix bug"
MCP over stdio
mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" --list mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" read-file --path /tmp/hello.txt
OpenAPI spec (remote or local, JSON or YAML)
mcp2cli
--spec
https://petstore3.swagger.io/api/v3/openapi.json
--list
mcp2cli
--spec
./openapi.json --base-url https://api.example.com list-pets
--status
available
CLI Reference
mcp2cli [global options]
API key header
mcp2cli --spec ./spec.json --auth-header "Authorization:Bearer tok_..." list-items
Multiple headers
mcp2cli --mcp https://mcp.example.com/sse \ --auth-header "x-api-key:sk-..." \ --auth-header "x-org-id:org_123" \ search --query "test" POST with JSON body from stdin echo '{"name": "Fido", "tag": "dog"}' | mcp2cli --spec ./spec.json create-pet --stdin Env vars for stdio servers mcp2cli --mcp-stdio "node server.js" --env API_KEY = sk- .. . --env DEBUG = 1 search --query "test" Caching Specs and MCP tool lists are cached in ~/.cache/mcp2cli/ (1h TTL). Local files are never cached. mcp2cli --spec https://api.example.com/spec.json --refresh --list
Force refresh
mcp2cli --spec https://api.example.com/spec.json --cache-ttl 86400 --list
24h TTL
TOON output (token-efficient for LLMs) mcp2cli --mcp https://mcp.example.com/sse --toon list-tags Best for large uniform arrays — 40-60% fewer tokens than JSON. Generating a Skill from an API When the user asks to create a skill from an MCP server or OpenAPI spec, follow this workflow: Discover all available commands: uvx mcp2cli --mcp https://target.example.com/sse --list Inspect each command to understand parameters: uvx mcp2cli --mcp https://target.example.com/sse < command
--help Test key commands to verify they work: uvx mcp2cli --mcp https://target.example.com/sse < command
--param value Create a SKILL.md that teaches another AI agent how to use this API via mcp2cli. Include: The source flag ( --mcp , --mcp-stdio , or --spec ) and URL Any required auth headers Common workflows with example commands The --list and --help discovery pattern for commands not covered The generated skill should use mcp2cli as its execution layer — the agent runs uvx mcp2cli ... commands rather than making raw HTTP/MCP calls.