Paramètres de spécification
Les paramètres de spécification définissent un service API et remplacent les paramètres globaux pour cette API spécifique. Chaque spécification représente une API logique (par exemple, « Open-Meteo Weather APIs ») et peut contenir plusieurs collections (fichiers de spécification).
Section de spécification
yaml
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
max_response_size: 1024
auth:
type: bearer
config:
token: "$(TOKEN)"
collections:
- llm_title: Forecast
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/meteo/forecast.ymlParamètres
domain
- Type :
string - Obligatoire : Oui
- Description : Identifiant unique pour cette spécification API. Utilisé en interne pour référencer la spécification.
- Règles : 1 à 60 caractères. Uniquement lettres minuscules (
a-z), chiffres (0-9), traits d'union (-) et underscores (_). - Exemple :
meteo,binance,mon-api
llm_title
- Type :
string - Obligatoire : Oui
- Description : Nom lisible que le LLM utilise pour référencer cette API. Affiché dans les réponses des outils MCP.
- Règles : 5 à 120 caractères. Uniquement lettres, chiffres, espaces et ponctuation de base.
- Exemple :
Open-Meteo Weather APIs,Binance Market Data
llm_instruction
- Type :
string - Valeur par défaut :
"" - Description : Instructions pour le LLM sur la façon d'utiliser cette API. Décrit ce que fait l'API et quand l'utiliser.
- Règles : 500 caractères maximum. Uniquement lettres, chiffres, espaces et ponctuation de base.
- Exemple :
"Utilisez cette API pour les prévisions météorologiques, les conditions actuelles et les données climatiques."
base_url
- Type :
string - Obligatoire : Oui
- Description : URL de base pour toutes les requêtes API de cette spécification. Les chemins des points de terminaison de la spécification OpenAPI sont ajoutés à cette URL.
- Exemple :
https://api.open-meteo.com,https://api.binance.com - Remarque : Peut être remplacé au niveau de la collection si différentes collections utilisent des URL de base différentes.
disable
- Type :
bool - Valeur par défaut :
false - Description : Lorsqu'il est
true, cette spécification est exclue des outils MCP. Elle n'est pas chargée, indexée ni disponible pour le LLM. - Quand l'utiliser : Désactiver temporairement une API sans la supprimer de la configuration. Utile pour les API qui sont hors service, obsolètes ou en maintenance.
tags
- Type :
[]string(tableau de chaînes) - Valeur par défaut :
[] - Description : Balises pour filtrer les spécifications. Utilisé avec l'indicateur
--tagsdans les commandes CLI (ls,validate,mcp,update). - Exemple :
["public", "weather"],["internal", "production"] - Effet : Lorsque vous exécutez
swag2mcp mcp --tags=public, seules les spécifications avec la balisepublicsont chargées.
http_client
- Type :
object - Valeur par défaut : hérite du global
- Description : Remplace les paramètres globaux du client HTTP pour cette spécification. Tous les paramètres du
http_clientglobal peuvent être remplacés :timeout,max_response_size,user_agent,follow_redirects,max_redirects,random,proxy,headers,cookies. - Exemple :yaml
http_client: timeout: 60s max_response_size: 4194304 headers: "X-DC": "us-east-1"
auth
- Type :
object - Valeur par défaut :
none(aucune authentification) - Description : Configuration d'authentification pour cette spécification. Consultez la section Authentification pour les 9 méthodes et leurs paramètres.
- Exemple :yaml
auth: type: bearer config: token: "$(API_TOKEN)"
collections
- Type :
[]object(tableau de collections) - Obligatoire : Oui (au moins 1)
- Description : Liste des fichiers de spécification OpenAPI/Swagger/Postman qui appartiennent à cette spécification. Chaque collection est un fichier de spécification.
- Règles : 1 à 30 collections par spécification.
- Voir : Paramètres de collection pour tous les paramètres de collection.
Désactivation d'une spécification
Les spécifications désactivées ne sont pas chargées ni indexées. Le LLM ne peut pas les voir ni les utiliser.
yaml
specs:
- domain: old-api
llm_title: Ancienne API
base_url: https://old-api.example.com
disable: true
collections:
- llm_title: Default
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/dadjoke.yamlRemplacement du client HTTP
Tous les paramètres http_client du niveau global peuvent être remplacés au niveau de la spécification. Les valeurs de la spécification prévalent sur les valeurs globales pour cette spécification uniquement.
yaml
specs:
- domain: slow-api
llm_title: API lente
base_url: https://slow-api.example.com
http_client:
timeout: 120s
max_response_size: 8388608
headers:
"X-DC": "us-east-1"
collections:
- llm_title: Default
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/dadjoke.yamlRemplacement du proxy
Si cette spécification nécessite un proxy différent du proxy global, configurez-le au niveau de la spécification :
yaml
specs:
- domain: proxied-api
llm_title: API avec proxy
base_url: https://api.example.com
http_client:
proxy:
url: http://proxy.company.com:8080
username: $(PROXY_USER)
password: $(PROXY_PASS)
bypass:
- "*.local"
- "10.0.0.0/8"
collections:
- llm_title: Main
location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/meteo.json