remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Used for loading environment variables from a .env file to securely store and access the SuzieQ API endpoint and access token.
Serves as the runtime environment for the MCP server, with version 3.8 or higher recommended.
Servidor MCP para SuzieQ
Este proyecto proporciona un servidor de Protocolo de Contexto de Modelo (MCP) que permite que los modelos de lenguaje y otros clientes MCP interactúen con una instancia de observabilidad de red SuzieQ a través de su API REST.
Descripción general
El servidor expone los comandos de SuzieQ como herramientas MCP:
run_suzieq_show
: Acceda al comando 'show' para consultar tablas detalladas del estado de la redrun_suzieq_summarize
: Acceda al comando 'summarize' para obtener estadísticas agregadas y resúmenes
Estas herramientas permiten a los clientes (como Claude Desktop) consultar varias tablas de estado de red (por ejemplo, interfaces, BGP, rutas) y aplicar filtros, recuperando los resultados directamente de su instancia de SuzieQ.
Prerrequisitos
- Python: se recomienda la versión 3.8 o superior.
- uv: Un instalador y solucionador rápido de paquetes de Python. ( Guía de instalación )
- Instancia de SuzieQ: una instancia de SuzieQ en ejecución con su API REST habilitada y accesible.
- Punto final y clave de API de SuzieQ: necesita la URL para la API de SuzieQ (por ejemplo,
http://your-suzieq-host:8000/api/v2
) y una clave de API válida (access_token
).
Instalación y configuración
Instalación mediante herrería
Para instalar suzieq-mcp para Claude Desktop automáticamente a través de Smithery :
Instalación manual
- Obtenga el código: Clone este repositorio o descargue los archivos
main.py
yserver.py
en un directorio de proyecto dedicado. - Crear entorno virtual: navegue al directorio de su proyecto en la terminal y cree un entorno virtual usando
uv
:Copy - Activar entorno:
- En macOS/Linux:Copy
- En Windows:GXP4 (debería ver
(.venv)
antes de su mensaje)
- En macOS/Linux:
- Instalar dependencias: Instale los paquetes de Python necesarios usando
uv
:Copymcp
: El SDK del protocolo de contexto de modelo.httpx
: un cliente HTTP asincrónico utilizado para comunicarse con la API de SuzieQ.python-dotenv
: se utiliza para cargar variables de entorno desde un archivo.env
para la configuración.
Configuración
El servidor necesita el punto final de la API de SuzieQ y su clave API. Use un archivo .env
para una configuración segura y sencilla:
- Cree un archivo
.env
: en la raíz del directorio de su proyecto (el mismo lugar quemain.py
), cree un archivo llamado.env
. - Agregar credenciales: Agregue su punto final y clave de SuzieQ al archivo
.env
. Asegúrese de que los valores no estén entre comillas, a menos que formen parte de la clave o el punto final.Reemplace los valores de marcador de posición con su punto final y clave reales.Copy - Archivo
.env
seguro: agregue.env
a su archivo.gitignore
para evitar confirmar secretos accidentalmente.Copy - Integración de código: el
server.py
proporcionado.py utiliza automáticamentepython-dotenv
para cargar estas variables cuando se inicia el servidor.
Ejecución del servidor
Asegúrese de que su entorno virtual esté activado. El servidor cargará la configuración desde el archivo .env
en el directorio actual.
1. Directamente
Ejecute el servidor directamente desde su terminal:
El servidor se iniciará, mostrará el mensaje " Starting SuzieQ MCP Server...
y escuchará las conexiones MCP en la entrada/salida estándar (stdio). Debería ver los registros [INFO]
si consulta correctamente la API a través de la herramienta. Presione Ctrl+C
para detenerlo.
2. Con MCP Inspector (para depuración)
El Inspector MCP es útil para probar la herramienta directamente. Si tiene instaladas las herramientas CLI de mcp (mediante uv pip install "mcp[cli]"
), ejecute:
Esto inicia un depurador interactivo. Vaya a la pestaña "Herramientas", seleccione run_suzieq_show
, introduzca los parámetros (p. ej., tabla: "dispositivo") y haga clic en "Llamar a la herramienta" para realizar la prueba.
Uso con Claude Desktop
Integre el servidor con Claude Desktop para un uso perfecto:
- Busque Claude Desktop Config: localice el archivo
claude_desktop_config.json
.- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Ventanas:
%APPDATA%\Claude\claude_desktop_config.json
- Crea el archivo y el directorio Claude si no existen.
- macOS:
- Editar archivo de configuración: Agregar una entrada para este servidor. Usar la ruta absoluta a
main.py
El servidor carga los secretos desde.env
, por lo que no es necesario que estén en esta configuración.
- Reemplace
/full/path/to/your/project/mcp-suzieq-server/main.py
con la ruta absoluta correcta en su sistema. - Reemplace
/full/path/to/your/project/mcp-suzieq-server/
con la ruta absoluta al directorio que contienemain.py
y.env
. ConfigurarworkingDirectory
ayuda a garantizar que se encuentre el archivo.env
. - Si Claude no encuentra
uv
, reemplace"uv"
con su ruta absoluta (buscar mediantewhich uv
owhere uv
). - En Windows, es posible que necesite
"env": { "PYTHONUTF8": "1" }
si encuentra problemas de codificación de texto.
- Reiniciar Claude Desktop: cierre completamente y vuelva a abrir Claude Desktop.
- Verificar: Busca el indicador de la herramienta MCP (icono del martillo 🔨) en Claude Desktop. Al hacer clic en él, deberían aparecer las herramientas
run_suzieq_show
yrun_suzieq_summarize
.
Uso de herramientas (run_suzieq_show)
- tabla : (cadena, obligatoria) El nombre de la tabla SuzieQ (por ejemplo, "dispositivo", "interfaz", "bgp").
- Filtros : (Diccionario, Opcional) Pares clave-valor para filtrar (p. ej.,
"hostname": "leaf01"
). Omitir o usar{}
para no aplicar filtros. - Devuelve : una cadena JSON con los resultados o un error.
Ejemplos de invocaciones (conceptuales):
Mostrar todos los dispositivos:
Mostrar vecinos BGP para el nombre de host 'spine01':
Mostrar interfaces 'activas' en VRF 'predeterminado':
Uso de la herramienta (run_suzieq_summarize)
- tabla : (cadena, obligatoria) El nombre de la tabla SuzieQ para resumir (por ejemplo, "dispositivo", "interfaz", "bgp").
- Filtros : (Diccionario, Opcional) Pares clave-valor para filtrar (p. ej.,
"hostname": "leaf01"
). Omitir o usar{}
para no aplicar filtros. - Devuelve : una cadena JSON con los resultados resumidos o un error.
Ejemplos de invocaciones (conceptuales):
Resumir todos los dispositivos:
Resumir las sesiones BGP por nombre de host 'spine01':
Resumir los estados de la interfaz en VRF 'predeterminado':
Solución de problemas
Error: "Punto final o clave de la API de SuzieQ no configurado..."
- Asegúrese de que el archivo
.env
esté en el mismo directorio quemain.py
- Verifique
SUZIEQ_API_ENDPOINT
ySUZIEQ_API_KEY
estén escritos correctamente y tengan valores válidos en.env
. - Si usa Claude Desktop, asegúrese de que el
workingDirectory
enclaude_desktop_config.json
apunte al directorio que contiene.env
.
Errores HTTP (4xx, 5xx):
- Compruebe que la clave API de SuzieQ (
SUZIEQ_API_KEY
) sea correcta (errores 401/403). - Verifique que
SUZIEQ_API_ENDPOINT
sea correcto y que el servidor API esté ejecutándose.
You must be authenticated.
Un servidor de Protocolo de Contexto de Modelo (MCP) que permite que los modelos de lenguaje y otros clientes MCP interactúen con una instancia de observabilidad de red SuzieQ a través de su API REST.
- Overview
- Prerequisites
- Installation & Setup
- Configuration
- Running the Server
- Using with Claude Desktop
- Tool Usage (run_suzieq_show)
- Tool Usage (run_suzieq_summarize)
- Troubleshooting