Skip to content

Script Auth

목적

외부 스크립트를 통한 인증. swag2mcp는 두 가지 스크립트 유형을 지원합니다:

  • .sh — Linux 및 macOS의 셸 스크립트
  • .bat — Windows의 배치 스크립트

스크립트는 작업 공간의 auth_scripts 디렉토리에 배치되어야 하며 JSON 토큰을 stdout에 출력해야 합니다.

사용 시기

  • 커스텀 또는 비표준 인증 체계
  • 복잡한 토큰 획득 로직 (다단계, 추가 검사 포함)
  • 표준 방법이 요구 사항에 맞지 않을 때

설정

yaml
specs:
  - 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
    auth:
      type: script
      config:
        domain: "jokes"

매개변수

매개변수필수설명
domain스크립트 파일 이름 (확장자 제외). spec의 domain과 일치해야 합니다 — 예: domain: jokes인 경우 스크립트 파일은 jokes.sh(Unix) 또는 jokes.bat(Windows)여야 합니다.

스크립트 위치

스크립트는 워크스페이스의 auth_scripts 디렉토리에 있어야 합니다:

  • Linux / macOS: {workspace}/auth_scripts/{domain}.sh
  • Windows: {workspace}/auth_scripts/{domain}.bat

스크립트 출력 형식

스크립트는 stdout에 토큰과 만료 시간이 포함된 JSON을 출력해야 합니다:

bash
#!/bin/bash
# auth_scripts/jokes.sh

TOKEN=$(curl -s -X POST https://auth.example.com/token \
  -d "grant_type=client_credentials" \
  -d "client_id=$CLIENT_ID" \
  -d "client_secret=$CLIENT_SECRET" | jq -r '.access_token')

echo "{\"token\": \"$TOKEN\", \"expires_in\": 3600}"

JSON 필드

필드필수설명
token인증 토큰
expires_in아니요토큰 수명(초) (기본값: 3600)

참고 사항

  • swag2mcp는 캐시된 토큰이 만료된 경우 모든 요청에서 스크립트를 실행합니다
  • 스크립트는 30초 이내에 완료되어야 합니다
  • 토큰은 만료 시간까지 캐시됩니다
  • 스크립트 파일 이름 = {domain}.sh (Unix) 또는 {domain}.bat (Windows)
  • domain에는 / 또는 \를 포함할 수 없습니다