Show HN: Mcp2cli – 모든 API를 위한 단일 CLI, 네이티브 MCP 대비 토큰 사용량 96–99% 절감
요약
mcp2cli는 MCP 서버, OpenAPI 명세, GraphQL 엔드포인트를 코드 생성 없이 런타임에서 즉시 CLI로 변환해주는 도구입니다. 도구 스키마 전송에 소모되는 토큰 사용량을 96~99% 절감하며, AI 코딩 에이전트(Claude Code, Cursor 등)를 위한 설치 가능한 스킬을 제공합니다.
핵심 포인트
- 코드 생성(codegen) 없이 MCP, OpenAPI, GraphQL을 CLI로 변환 가능
- 도구 스키마에 낭비되는 토큰 사용량을 96~99% 절감하여 비용 효율성 극대화
- OAuth 인증(PKCE 흐름 포함) 및 토큰 자동 갱신 지원
- Claude Code, Cursor 등 AI 에이전트를 위한 전용 스킬(skill) 제공
- 환경 변수 및 파일 기반의 비밀값 관리로 보안성 강화
설치 (Install)
# 설치 없이 직접 실행
uvx mcp2cli --help
...
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 모드
# HTTP를 통해 MCP 서버에 연결
mcp2cli --mcp https://mcp.example.com/sse --list
...
--search 옵션은 --list를 포함하며 모든 모드(--mcp, --spec, --graphql, --mcp-stdio)에서 작동합니다.
OAuth 인증
OAuth가 필요한 API는 MCP, OpenAPI, GraphQL 모드 전반에 걸쳐 즉시 지원됩니다.
mcp2cli는 토큰 획득, 캐싱 및 갱신(refresh)을 자동으로 처리합니다.
# 권한 부여 코드(Authorization code) + PKCE 흐름 (로그인을 위해 브라우저를 엽니다)
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 모드
# MCP 서버의 도구 목록 나열하기
mcp2cli --mcp-stdio "npx @modelcontextprotocol/server-filesystem /tmp" --list
...
OpenAPI 모드
# 원격 스펙에서 모든 명령어 목록 나열하기
mcp2cli --spec https://petstore3.swagger.io/api/v3/openapi.json --list
...
GraphQL 모드
# GraphQL 엔드포인트의 모든 쿼리 및 뮤테이션 목록 나열하기
mcp2cli --graphql https://api.example.com/graphql --list
...
mcp2cli는 해당 엔드포인트를 검사(introspect)하고, 쿼리와 뮤테이션을 발견하며, 선택 집합(selection sets)을 자동 생성하고 적절한 변수 선언과 함께 매개변수화된 쿼리를 구성합니다. SDL 파싱이나 코드 생성이 필요 없으며, 단순히 지정하고 실행만 하면 됩니다.
Bake 모드 — 연결 설정 저장하기
매번 호출할 때마다 --spec/--mcp/--mcp-stdio와 인증 플래그를 반복해야 하는 것에 지치셨나요? 이들을 이름이 지정된 구성에 베이크(bake)하세요:
# OpenAPI 스펙에서 베이크 도구 생성하기
mcp2cli bake create petstore --spec https://api.example.com/spec.json \
--exclude "delete-*,update-*" --methods GET,POST --cache-ttl 7200
...
필터링 옵션:
--include— 도구를 화이트리스트로 지정하는 쉼표로 구분된 glob 패턴 (예: `
# 기본 --list: 96개 도구 기준 약 1,400 토큰 소모
mcp2cli @myapi --list
...
소스에 대한 사용 데이터(usage data)가 존재하는 경우, --list는 호출 빈도(call frequency)에 따라 정렬하는 것이 기본값입니다. 그렇지 않으면 삽입 순서(insertion order)가 유지됩니다. 사용 데이터는 ~/.cache/mcp2cli/usage.json에 저장됩니다.
출력 제어 (Output control)
# JSON 예쁘게 출력 (TTY 환경에서는 자동 활성화됨)
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)
# 테스트 + MCP 의존성(deps)과 함께 설치
uv sync --extra test
...
라이선스 (License)
<sub>mcp2cli는 Kagan Yilmaz의 CLIHub 아이디어를 기반으로 구축되었습니다 (토큰 효율성을 위한 CLI 기반 도구 액세스)</sub>
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기