Solución de Problemas
Problemas de Instalación
swag2mcp: command not found
El binario no está en su PATH.
# Verifique si Go está instalado
go version
# Encuentre dónde instala Go los binarios
go env GOPATH
# Generalmente ~/go o ~/go/bin
# Agregue al PATH (agregue esto a ~/.zshrc o ~/.bashrc)
export PATH=$PATH:$(go env GOPATH)/bin
# O use la ruta completa
~/go/bin/swag2mcp --versionSi descargó un binario desde GitHub Releases, asegúrese de que esté en un directorio que esté en su PATH:
# Mover a /usr/local/bin (macOS/Linux)
sudo mv swag2mcp /usr/local/bin/permiso denegado
El binario no tiene permisos de ejecución.
# Para go install (corregir propiedad)
sudo chown -R $(whoami) $(go env GOPATH)
# Para binario descargado
chmod +x /path/to/swag2mcpVersión de Go demasiado antigua
swag2mcp requiere Go 1.26+.
go version
# Si la versión < 1.26, actualice Go:
# https://go.dev/dl/Servidor simulado no encontrado
El servidor simulado es un binario separado. Instálelo explícitamente:
go install github.com/mmadfox/swag2mcp/cmd/swag2mcp-mock@latestProblemas de Configuración
Archivo de configuración no encontrado
swag2mcp no puede encontrar swag2mcp.yaml.
# Cree una nueva configuración
swag2mcp init
# O especifique la ruta explícitamente
swag2mcp mcp /path/to/workspace
swag2mcp ls /path/to/workspaceCausa común: Ejecutó swag2mcp mcp desde un directorio aleatorio y buscó ~/.swag2mcp/ en lugar del espacio de trabajo de su proyecto. Siempre pase la ruta explícitamente.
Espacio de trabajo incorrecto cargado
swag2mcp cargó un espacio de trabajo diferente al esperado.
Orden de resolución: [path] explícito → directorio actual (./) → ~/.swag2mcp/. Si ejecuta swag2mcp mcp sin una ruta desde un directorio que no tiene swag2mcp.yaml, recurre a ~/.swag2mcp/.
Solución: Siempre pase la ruta del espacio de trabajo: swag2mcp mcp /path/to/your/workspace
Error de análisis YAML
El archivo de configuración tiene sintaxis YAML inválida.
# Valide la configuración
swag2mcp validate
# Errores comunes:
# - Tabuladores en lugar de espacios (YAML requiere espacios)
# - Sangría faltante para campos anidados
# - Cadenas sin comillas con caracteres especiales (: # & {)Consejo: Use un linter YAML o un editor con soporte YAML para detectar errores de sintaxis.
La validación falla: "no specifications defined"
El archivo de configuración existe pero no tiene especificaciones.
# Agregue una especificación
swag2mcp add spec
# O edite swag2mcp.yaml y agregue al menos una especificaciónLa validación falla: "duplicate domain"
Dos especificaciones tienen el mismo valor de domain. Los dominios deben ser únicos.
# Liste las especificaciones actuales
swag2mcp ls
# Verifique si hay dominios duplicados en swag2mcp.yamlLa validación falla: "invalid spec location"
La URL o ruta de archivo de location no es accesible o no es un archivo de especificación válido.
# Verifique si la URL es accesible
curl -I https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/dadjoke.yaml
# Verifique si el archivo local existe
ls -la ./specs/my-api.yaml
# Verifique que el archivo sea OpenAPI/Swagger/Postman válido
# (no solo cualquier página JSON o HTML)Causa común: El campo location apunta al endpoint de la API en sí (por ejemplo, https://api.example.com/v1/users) en lugar de la URL del archivo de especificación. La ubicación debe apuntar a un archivo OpenAPI/Swagger/Postman.
Problemas del Servidor MCP
Puerto ya en uso
Otro proceso está usando el puerto.
# Encuentre el proceso
lsof -i :8080
# Mátelo
kill <PID>
# O use un puerto diferente
swag2mcp mcp --transport sse --http-addr :9090Conexión rechazada
El servidor MCP no está en ejecución o no es accesible.
# Asegúrese de que el servidor esté en ejecución
swag2mcp mcp --transport sse --http-addr 127.0.0.1:8080
# En otra terminal, verifique el endpoint de salud
curl http://127.0.0.1:8080/health
# Si usa una ruta personalizada
curl http://127.0.0.1:8080/custom-path/healthLas herramientas MCP no aparecen en el cliente LLM
El cliente LLM no puede ver ninguna herramienta.
# Verifique que las especificaciones estén cargadas
swag2mcp ls
# Verifique que las especificaciones no estén deshabilitadas
swag2mcp validate
# Verifique los registros del servidor
swag2mcp mcp --logfile /tmp/swag2mcp.log
cat /tmp/swag2mcp.log
# Verifique que la ruta del espacio de trabajo en su configuración del IDE sea correcta
# (debe ser una ruta absoluta)Causas comunes:
- Ruta de espacio de trabajo incorrecta en la configuración del IDE
- Todas las especificaciones tienen
disable: true - Las especificaciones están filtradas por
--tags - El archivo de configuración no existe en la ruta especificada
El protocolo de enlace MCP falla (transporte HTTP)
Para los transportes SSE y Streamable HTTP, el protocolo MCP requiere inicialización antes de que funcionen las llamadas a herramientas.
Paso 1: POST /mcp → {"method":"initialize", ...}
Paso 2: POST /mcp → {"method":"notifications/initialized"}
Paso 3: POST /mcp → {"method":"tools/list", ...} ← ahora funcionaAsegúrese de que su cliente LLM complete el protocolo de enlace antes de llamar a las herramientas.
La verificación de salud devuelve 404
La ruta del endpoint de salud puede diferir de la ruta MCP.
# Endpoint de salud predeterminado
curl http://127.0.0.1:8080/health
# Si cambió la ruta MCP, la salud sigue en /health
# (no se ve afectada por --http-path)Herramienta auth no disponible
La herramienta MCP auth no aparece.
La herramienta auth está deshabilitada por defecto (--disable-llm-auth=true). Esto es intencional para seguridad en producción.
# Habilite la herramienta auth
swag2mcp mcp --disable-llm-auth=falseProblemas de Autenticación
401 No Autorizado
La API rechazó la solicitud debido a credenciales faltantes o inválidas.
# Verifique que la autenticación esté configurada
swag2mcp info
# Valide la configuración
swag2mcp validate
# Verifique que las variables de entorno estén establecidas
echo $MY_TOKEN
# Verifique que el token no haya expirado (los tokens bearer son estáticos)Causas comunes:
- El token falta o está vacío
- La variable de entorno no está establecida
- El token ha expirado (los tokens bearer no se renuevan automáticamente)
- Tipo de autenticación incorrecto configurado
403 Prohibido
La API rechazó la solicitud debido a permisos insuficientes.
- El token puede no tener los alcances requeridos
- La clave de API puede no tener acceso a este recurso
- Consulte la documentación de la API para conocer los permisos requeridos
Endpoint de token OAuth2 inalcanzable
swag2mcp no puede alcanzar la URL del token OAuth2.
# Verifique el token_url en su configuración
# Verifique que la URL sea correcta y accesible
curl -X POST https://auth.example.com/oauth/token \
-d "grant_type=client_credentials" \
-d "client_id=test" \
-d "client_secret=test"
# Verifique la conectividad de red
# Verifique la configuración del proxy si está detrás de un proxy corporativoLa autenticación Digest falla
swag2mcp no puede completar el protocolo de enlace de autenticación Digest.
- El servidor debe devolver un encabezado
WWW-Authenticate: Digest ...con una respuesta 401 - El desafío se almacena en caché durante 5 minutos — si el servidor cambia su nonce, espere a que la caché expire
- Verifique que el nombre de usuario y la contraseña sean correctos
Discrepancia de firma HMAC
La API rechazó la solicitud firmada con HMAC.
- Verifique que
api_keyysecret_keysean correctos - Verifique que la API use firma HMAC-SHA256 estilo Binance
- Algunos exchanges usan métodos de firma diferentes — la autenticación HMAC es específicamente para APIs compatibles con Binance
La autenticación de script falla
El script de autenticación externo falló.
# Verifique que el script exista
ls -la ~/.swag2mcp/auth_scripts/my-domain.sh
# Ejecute el script manualmente para probar
sh ~/.swag2mcp/auth_scripts/my-domain.sh
# Verifique el formato de salida del script (debe ser JSON: {"token": "...", "expires_in": 3600})
# Verifique que el script se complete dentro de 30 segundos
# Verifique que el script tenga permisos de ejecución
chmod +x ~/.swag2mcp/auth_scripts/my-domain.shProblemas de Búsqueda
Sin resultados de búsqueda
La búsqueda no devolvió endpoints.
# Verifique que las especificaciones estén cargadas
swag2mcp ls
# Verifique que las especificaciones no estén deshabilitadas
swag2mcp validate
# Pruebe una consulta más simple
# Pruebe buscar por método: method:GET
# Pruebe buscar por etiqueta: tag:pets
# El índice se reconstruye en cada inicio del servidor MCP
# Si acaba de agregar una especificación, reinicie el servidorLa búsqueda devuelve resultados irrelevantes
La consulta es demasiado amplia o ambigua.
- Use filtros de campo para acotar:
method:GET +tag:pets - Use frases exactas:
"find pet by status" - Use el parámetro
limitpara obtener resultados más enfocados
Problemas de Llamadas a la API
invoke devuelve un error
La llamada a la API falló.
# Verifique el mensaje de error — incluye el código de estado HTTP
# Errores 4xx: verifique parámetros, autenticación o permisos
# Errores 5xx: el servidor de la API tiene un problema
# Siempre inspeccione el endpoint antes de invocar
inspect(endpointId: "...")
# Verifique que todos los parámetros requeridos estén proporcionados
# Verifique los tipos de parámetros (cadena, número, booleano)Error de límite de velocidad
El LLM llamó al mismo endpoint demasiado rápido.
Cada endpoint tiene un período de enfriamiento de 10 segundos. Espere antes de llamar de nuevo, o deshabilite el limitador de velocidad:
disable_ratelimiter: trueRespuesta demasiado grande (se devolvió fileRef)
La respuesta excedió max_response_size.
Esto es normal. Use las herramientas de respuesta para explorar los datos:
1. response_outline(path) → entender la estructura
2. response_compress(path, mode: "first_of_array") → obtener una muestra
3. response_slice(path, jsonPath: "data.0") → obtener datos específicosO aumente el límite:
http_client:
max_response_size: 4194304 # 4 MBRespuestas lentas de la API
La API está tardando demasiado en responder.
http_client:
timeout: 120s # Aumentar desde el valor predeterminado de 30sProblemas del Espacio de Trabajo
swag2mcp init falla: "directory is not empty"
El directorio de destino ya tiene archivos.
# Use --force para sobrescribir
swag2mcp init --force
# O use un directorio diferente
swag2mcp init ./new-workspaceswag2mcp update falla
Uno o más archivos de especificación no pudieron descargarse.
# Verifique el mensaje de error para saber qué URL falló
# Verifique que la URL sea accesible
curl -I <url-fallida>
# Verifique la conectividad de red
# Verifique la configuración del proxyExport no crea ZIP
El argumento [output] debe ser una ruta de archivo que termine en .zip, no un directorio.
swag2mcp export /path/to/workspace /path/to/backup.zip
# Incorrecto (no se creará ningún ZIP)
swag2mcp export /path/to/workspace /some/directoryImport falla: "not a valid swag2mcp backup"
El archivo ZIP no fue creado por swag2mcp export.
Solo los archivos ZIP creados por swag2mcp export pueden importarse. El archivo tiene una estructura interna específica (swag2mcp.yaml, specs/, auth_scripts/).
Problemas de la TUI
La TUI no se renderiza correctamente
La terminal es demasiado pequeña o no admite las funciones requeridas.
- Tamaño mínimo de terminal: 80×24 caracteres
- La TUI usa Bubbletea y funciona en la mayoría de terminales modernas
- Intente redimensionar su ventana de terminal
- Pruebe con un emulador de terminal diferente
- Windows PowerShell 5.1: La TUI puede mostrar los campos de entrada en una nueva línea. Use Windows Terminal o la terminal de VS Code — manejan correctamente el modo raw.
La TUI muestra "no specs found"
El espacio de trabajo no tiene especificaciones configuradas.
# Verifique las especificaciones
swag2mcp ls
# Agregue una especificación
swag2mcp add specProblemas del Servidor Simulado
El servidor simulado no inicia
# Verifique que mock_enabled: true esté en la configuración
# Verifique que cada colección tenga base_mock_url establecido
# Verifique que los puertos no estén en uso
lsof -i :9090
# Verifique los registros del servidor simulado
swag2mcp-mockEl servidor simulado devuelve respuestas vacías
El archivo de especificación puede no tener esquemas de respuesta definidos.
- El servidor simulado genera datos a partir de esquemas de respuesta
- Si no se encuentra ningún esquema, devuelve
{} - Verifique que su especificación OpenAPI tenga
responsesconschemadefinido
Problemas de Red
Falló la conexión del proxy
swag2mcp no puede conectarse a través del proxy configurado.
# Verifique el formato de la URL del proxy (debe incluir esquema: http://, https://, socks5://)
# Verifique las credenciales del proxy
# Verifique la lista de exclusión — el destino puede estar en la lista de exclusión
# Pruebe el proxy con curl
curl -x http://proxy.company.com:8080 https://api.example.comErrores TLS/SSL
Falló la verificación del certificado.
- Si usa un certificado autofirmado para el servidor MCP, el cliente debe confiar en él
- Para el servidor simulado con
--tls, se genera un certificado autofirmado automáticamente - Para llamadas a la API, swag2mcp usa el almacén de certificados del sistema
Otros Problemas
Alto uso de disco
Los directorios de caché y respuestas pueden crecer con el tiempo.
# Limpiar todo
swag2mcp clean
# Las respuestas antiguas (>48h) se limpian automáticamente al iniciar el servidor MCP
# Los archivos de caché expiran aleatoriamente entre 1 y 48 horas"command not found" después de go install
El directorio de go install no está en su PATH.
# Encuentre dónde instala Go los binarios
go env GOPATH
# Agregue al PATH
export PATH=$PATH:$(go env GOPATH)/binEl LLM no usa las herramientas correctamente
El LLM puede necesitar mejores instrucciones o una habilidad de formato.
- Use
llm_instructionen la configuración de su especificación para describir lo que hace la API - Considere usar la habilidad swag2mcp-format para un formato de salida consistente
- La calidad de las respuestas del LLM depende del modelo y de las instrucciones que recibe
¿Cómo reporto un error?
Abra un issue en GitHub con:
- La versión de swag2mcp (
swag2mcp --version) - Su sistema operativo y arquitectura
- El comando exacto que ejecutó
- El mensaje de error completo
- Su archivo de configuración (con los secretos eliminados)