mcp2cli turns MCP, OpenAPI, or GraphQL APIs into a runtime CLI with zero codegen, featuring multiple transport modes, OAuth support, baked tools, and JSON output options.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
mcp2cli is a Python-based tool that turns MCP servers, OpenAPI specs, or GraphQL endpoints into a command-line interface at runtime without code generation. It supports multiple modes (MCP HTTP/SSE, MCP stdio, OpenAPI, GraphQL), baked tool configurations, and various output formats.
How it works
The project provides a CLI that discovers available tools from a given API description or MCP server, generates commands on the fly, and executes them. It includes features for authentication (OAuth, environment/file-based secrets), caching, and optional JSON/TOON output. It can search, list, and filter tools, and can bake connection settings into named configurations for reuse. It also offers a directive to rank tool usage locally for list outputs.
Getting started
Install options shown in the README:
# Run directly without installing
uvx mcp2cli --help
# Or install globally
uv tool install mcp2cli
You can install an AI agent skill for discovering and calling APIs:
npx skills add knowsuchagency/mcp2cli --skill mcp2cli
Usage examples cover MCP HTTP/SSE, OAuth flows, stdio, OpenAPI, and GraphQL modes. Examples include:
```bash
mcp2cli --mcp https://mcp.example.com/sse --list
mcp2cli --spec https://api.example.com/openapi.json --list
mcp2cli --graphql https://api.example.com/graphql --list
Token handling and secret handling are described, including where tokens are cached:
Tokens are persisted in `~/.cache/mcp2cli/oauth/` so subsequent calls reuse existing tokens
and refresh automatically when they expire.
Recent releases
- none
Traction
- Stars: 2337
Behind the repo
- License: MIT
- Language: Python
- Created: 2026-03-09
- Last push: 2026-06-30
- Repository topics: ai, cli, graphql, mcp, openapi
Caveats
- Open issues: 10
- Releases list: latest 0 (none)
- No explicit mention of stable versioning beyond README usage hints






