Fichier de configuration
swag2mcp utilise un fichier de configuration YAML. Créé par swag2mcp init.
Emplacement
- Linux/macOS :
~/.swag2mcp/swag2mcp.yaml - Windows :
%USERPROFILE%\.swag2mcp\swag2mcp.yaml
Structure de base
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.ymlExemple complet
yaml
# ── Client HTTP global ──────────────────────────────────
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"
# ── Serveur MCP ──────────────────────────────────────────
mcp:
transport: stdio
# ── Serveur de simulation ───────────────────────────────
mock_enabled: false
mock_auth:
oauth2_port: 9090
digest_port: 9091
hmac_port: 9092
# ── Limiteur de débit ────────────────────────────────────
disable_ratelimiter: false
rate_limit_interval: 10s
# ── Spécifications ──────────────────────────────────────
specs:
- domain: meteo
llm_title: Open-Meteo Weather APIs
llm_instruction: "Utilisez cette API pour les prévisions météorologiques et les données climatiques"
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.yamlVariables d'environnement
Utilisez la syntaxe $(NOM_VAR) pour référencer des variables d'environnement. swag2mcp les résout au démarrage.
yaml
specs:
- domain: meteo
auth:
type: bearer
config:
token: "$(API_TOKEN)"
mcp:
auth:
token: "$(MCP_TOKEN)"$(VAR) est résolu dans :
- Les champs de configuration d'authentification :
token,username,password,client_id,client_secret,api_key,secret_key,domain - Le jeton d'authentification du serveur MCP :
mcp.auth.token - Les en-têtes et valeurs de cookies du client HTTP
$(VAR) n'est pas résolu dans les URL de base ou les emplacements des collections.
Validation
bash
# Valider l'espace de travail par défaut (~/.swag2mcp)
swag2mcp validate
# Valider un espace de travail de projet personnalisé
swag2mcp validate ./mon-projetSi l'espace de travail ne se trouve pas dans le répertoire personnel (par exemple, dans un dépôt de projet), spécifiez toujours le chemin lors de l'exécution de validate, update, mcp ou toute autre commande. Sinon, swag2mcp utilisera l'espace de travail par défaut ~/.swag2mcp.