<p align="center">
<img src="https://raw.githubusercontent.com/knowsuchagency/mcp2cli/main/assets/hero.png" alt="mcp2cli — one CLI for every API" width="700">
</p>
<h1 align="center">mcp2cli</h1>
<p align="center">
어떠한 MCP 서버, OpenAPI 명세(spec), 또는 GraphQL 엔드포인트도 코드 생성(codegen) 없이 런타임(runtime)에서 CLI로 변환하세요.<br>
<strong>매 턴마다 도구 스키마(tool schemas)에 낭비되는 토큰을 96–99% 절약할 수 있습니다.</strong><br><br>
<a href="https://www.orangecountyai.com/blog/mcp2cli-one-cli-for-every-api-zero-wasted-tokens"><strong>전체 글 읽기 →</strong></a>
</p>
설치 (Install)
AI 에이전트 기술 (AI Agent Skill)
mcp2cli는 AI 코딩 에이전트(Claude Code, Cursor, Codex)에게 사용법을 가르치는 설치 가능한 skill을 함께 제공합니다. 설치가 완료되면, 에이전트는 모든 MCP 서버나 OpenAPI 엔드포인트를 발견하고 호출할 수 있으며, API로부터 새로운 기술(skill)을 생성할 수도 있습니다.
npx skills add knowsuchagency/mcp2cli --skill mcp2cli
설치 후 다음과 같은 프롬프트를 시도해 보세요:
mcp2cli --mcp https://mcp.example.com/sse — MCP 서버와 상호작용
mcp2cli create a skill for https://api.example.com/openapi.json — API로부터 기술(skill) 생성
사용법 (Usage)
MCP HTTP/SSE 모드
mcp2cli --mcp https://mcp.example.com/sse --list
...
--search 옵션은 --list를 포함하며 모든 모드(--mcp, --spec, --graphql, --mcp-stdio)에서 작동합니다.
OAuth 인증
OAuth가 필요한 API는 MCP, OpenAPI, GraphQL 모드 전반에 걸쳐 즉시 지원됩니다.
mcp2cli는 토큰 획득, 캐싱 및 갱신(refresh)을 자동으로 처리합니다.
mcp2cli --mcp https://mcp.example.com/sse --oauth --list
mcp2cli --spec https://api.example.com/openapi.json --oauth --list
...
토큰은 ~/.cache/mcp2cli/oauth/에 유지되므로, 이후 호출 시 기존 토큰을 재사용하며 만료 시 자동으로 갱신됩니다.
환경 변수 또는 파일에서 비밀값 가져오기
민감한 값(--auth-header 값, --oauth-client-id, --oauth-client-secret)은 env: 및 file: 접두사를 지원하여 비밀값을 CLI 인수로 전달하는 것을 방지합니다 (CLI 인수는 프로세스 목록에서 노출됨):
mcp2cli --mcp https://mcp.example.com/sse \
--auth-header "Authorization:env:MY_API_TOKEN" \
...
MCP stdio 모드
mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" --list
...
OpenAPI 모드
mcp2cli --spec https://petstore3.swagger.io/api/v3/openapi.json --list
...
GraphQL 모드
mcp2cli --graphql https://api.example.com/graphql --list
...
mcp2cli는 해당 엔드포인트를 검사(introspect)하고, 쿼리와 뮤테이션을 발견하며, 선택 집합(selection sets)을 자동 생성하고 적절한 변수 선언과 함께 매개변수화된 쿼리를 구성합니다. SDL 파싱이나 코드 생성이 필요 없으며, 단순히 지정하고 실행만 하면 됩니다.
Bake 모드 — 연결 설정 저장하기
매번 호출할 때마다 --spec/--mcp/--mcp-stdio와 인증 플래그를 반복해야 하는 것에 지치셨나요? 이들을 이름이 지정된 구성에 베이크(bake)하세요:
mcp2cli bake create petstore --spec https://api.example.com/spec.json \
--exclude "delete-*,update-*" --methods GET,POST --cache-ttl 7200
...
필터링 옵션:
--include — 도구를 화이트리스트로 지정하는 쉼표로 구분된 glob 패턴 (예: `
mcp2cli @myapi --list
...
소스에 대한 사용 데이터(usage data)가 존재하는 경우, --list는 호출 빈도(call frequency)에 따라 정렬하는 것이 기본값입니다. 그렇지 않으면 삽입 순서(insertion order)가 유지됩니다. 사용 데이터는 ~/.cache/mcp2cli/usage.json에 저장됩니다.
출력 제어 (Output control)
mcp2cli --spec ./spec.json --pretty list-pets
...
캐싱 (Caching)
스펙(Specs)과 MCP 도구 목록은 기본적으로 1시간의 TTL(Time To Live)과 함께 ~/.cache/mcp2cli/에 캐싱됩니다.
mcp2cli --spec https://api.example.com/spec.json --refresh --list
...
로컬 파일 스펙은 절대 캐싱되지 않습니다.
CLI 레퍼런스 (CLI reference)
mcp2cli [global options] <subcommand> [command options]
Source (상호 배타적, 하나 필수):
...
서브커맨드(Subcommands)와 그 플래그(flags)는 스펙 또는 MCP 서버 도구 정의로부터 동적으로 생성됩니다. 자세한 내용은 <subcommand> --help를 실행하세요.
토큰 절감 분석, 아키텍처 세부 정보 및 Anthropic의 Tool Search와의 비교에 대해서는 **OCAI 블로그의 전체 글**을 참조하세요.
개발 (Development)
라이선스 (License)
MIT
<sub>mcp2cli는 Kagan Yilmaz의 CLIHub 아이디어를 기반으로 구축되었습니다 (토큰 효율성을 위한 CLI 기반 도구 액세스)</sub>