{"id":"knowsuchagency-mcp2cli","name":"mcp2cli","homepage":"https://pypi.org/project/mcp2cli/","repo_url":"https://github.com/knowsuchagency/mcp2cli","category":"devtools","subcategories":[],"tags":["cli","mcp","openapi","graphql","oauth","agent-tools","runtime-introspection","caching"],"what_it_does":"mcp2cli is a Python CLI that turns an MCP server, an OpenAPI spec, or a GraphQL endpoint into executable CLI subcommands at runtime (no codegen). It can list tools/operations, call them with arguments, supports OAuth, caching (for specs/tool lists), “bake mode” to save connection configs, and produces token-efficient output modes for LLMs (e.g., TOON).","use_cases":["Give an AI coding agent a discoverable command-line interface for an MCP server","Rapidly expose an OpenAPI API as a CLI for automation and agent tool-calling","Interact with GraphQL queries/mutations from the command line with auto-generated selection sets","Cache introspection results (specs/tool lists) to reduce repeated discovery latency","Wrap frequently used API connections as baked CLI tools"],"not_for":["Production API security gateway (it is a client-side CLI, not a policy enforcement layer)","High-integrity environments requiring strict guarantees about idempotency or transaction semantics (depends on target API/tool)","Usage scenarios where you cannot safely run arbitrary stdio MCP server commands (mcp-stdio involves executing a command)"],"best_when":"You want an agent to dynamically discover and call tools across MCP/OpenAPI/GraphQL without generating client code, and you benefit from token-efficient outputs and cached introspection.","avoid_when":"You need a strongly governed SDK/typed client with strict compile-time contracts, or you cannot risk local command execution (for MCP stdio mode) or cannot store OAuth tokens/caches on disk.","alternatives":["Handwritten API clients/SDKs (REST/GraphQL) with typed bindings","Generic API wrappers like swagger-codegen/openapi-generator for codegen","Agent-specific tool integrations for MCP/OpenAPI/GraphQL (e.g., model-context tooling) without CLI indirection"],"af_score":61.8,"security_score":69.5,"reliability_score":38.8,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:23:23.240540+00:00","interface":{"has_rest_api":false,"has_graphql":true,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["OAuth (authorization code + PKCE)","OAuth client credentials","Custom HTTP auth headers via --auth-header (supports env:/file: prefixes)","MCP stdio server environment variables via --env"],"oauth":true,"scopes":true,"notes":"OAuth tokens are persisted to ~/.cache/mcp2cli/oauth/ and refresh automatically; custom auth headers are supported. The README indicates secret support via env:/file: prefixes to reduce shell-argument exposure."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source CLI (MIT). No hosted pricing described."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":61.8,"security_score":69.5,"reliability_score":38.8,"mcp_server_quality":80.0,"documentation_accuracy":75.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":70.0,"rate_limit_clarity":10.0,"tls_enforcement":80.0,"auth_strength":70.0,"scope_granularity":60.0,"dependency_hygiene":60.0,"secret_handling":75.0,"security_notes":"Uses HTTPS URLs for remote endpoints by convention (TLS assumed via http client); supports OAuth flows and caching of tokens on disk. Secret handling includes env:/file: prefixes to avoid leaking secrets in process listings/CLI args. However, there is no explicit mention of secure token storage, redaction coverage, or rate limiting controls; MCP stdio mode runs local commands, increasing risk if inputs are untrusted.","uptime_documented":0.0,"version_stability":70.0,"breaking_changes_history":40.0,"error_recovery":45.0,"idempotency_support":"false","idempotency_notes":"No explicit idempotency handling or guidance is described; behavior depends on the underlying API/tool invoked.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["When using MCP stdio mode (--mcp-stdio), the CLI executes a local command to start the MCP server; agents should avoid untrusted commands/parameters.","Subcommands are generated dynamically from discovered tools/operations; agents should run --list (or --search) before assuming availability/argument shapes.","OAuth token persistence and cache locations are local; agents should be aware of filesystem permissions and multi-user environments."]}}