설정 파일
swag2mcp는 YAML 설정 파일을 사용합니다. swag2mcp init으로 생성됩니다.
위치
- Linux/macOS:
~/.swag2mcp/swag2mcp.yaml - Windows:
%USERPROFILE%\.swag2mcp\swag2mcp.yaml
기본 구조
yaml
specs:
- domain: meteo
llm_title: Open-Meteo Weather APIs
base_url: https://api.open-meteo.com
collections:
- llm_title: Forecast
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/meteo/forecast.yml전체 예시
yaml
# ── 전역 HTTP 클라이언트 ──────────────────────────────────
http_client:
timeout: 30s
max_response_size: 1048576
user_agent: "swag2mcp-global/1.0"
follow_redirects: true
max_redirects: 10
random: false
proxy:
url: ""
username: ""
password: ""
bypass: []
headers:
"Accept": "application/json"
cookies:
- name: "session"
value: "abc123"
# ── MCP 서버 ──────────────────────────────────────────
mcp:
transport: stdio
# ── 모의 서버 ─────────────────────────────────────────
mock_enabled: false
mock_auth:
oauth2_port: 9090
digest_port: 9091
hmac_port: 9092
# ── 속도 제한기 ────────────────────────────────────────
disable_ratelimiter: false
rate_limit_interval: 10s
# ── Specs ───────────────────────────────────────────────
specs:
- domain: meteo
llm_title: Open-Meteo Weather APIs
llm_instruction: "날씨 예보 및 기후 데이터에 이 API를 사용하세요"
base_url: https://api.open-meteo.com
disable: false
tags: ["weather", "climate"]
http_client:
timeout: 10s
auth:
type: bearer
config:
token: "$(TOKEN)"
collections:
- llm_title: Forecast
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/meteo/forecast.yml
- llm_title: Air Quality
base_url: https://air-quality-api.open-meteo.com
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/meteo/air-quality.yml
disable: false
http_client:
timeout: 5s
- domain: jokes
llm_title: Dad Joke API
base_url: https://icanhazdadjoke.com
collections:
- llm_title: Jokes
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/dadjoke.yaml환경 변수
$(VAR_NAME) 구문을 사용하여 환경 변수를 참조하세요. swag2mcp는 시작 시 이를 해결합니다.
yaml
specs:
- domain: meteo
auth:
type: bearer
config:
token: "$(API_TOKEN)"
mcp:
auth:
token: "$(MCP_TOKEN)"$(VAR)은 다음에서 해결됩니다:
- 인증 설정 필드:
token,username,password,client_id,client_secret,api_key,secret_key,domain - MCP 서버 인증 토큰:
mcp.auth.token - HTTP 클라이언트 헤더 및 쿠키 값
$(VAR)은 base URL 또는 collection location에서 해결되지 않습니다.
검증
bash
# 기본 워크스페이스 검증 (~/.swag2mcp)
swag2mcp validate
# 커스텀 프로젝트 워크스페이스 검증
swag2mcp validate ./my-project워크스페이스가 홈 디렉토리에 없는 경우(예: 프로젝트 저장소 내부) validate, update, mcp 또는 다른 명령어를 실행할 때 항상 경로를 지정하세요. 그렇지 않으면 swag2mcp가 기본 ~/.swag2mcp 워크스페이스를 사용합니다.