InfluxDB
Un servidor para integrarse con InfluxDB, una base de datos de series temporales.
Documentación
Servidor MCP de InfluxDB
Servidor oficial del Protocolo de Contexto de Modelos (MCP) para la integración con InfluxDB. Proporciona herramientas, recursos y prompts para interactuar con InfluxDB v3 (Core/Enterprise/Cloud Dedicated) a través de clientes MCP.
Requisitos previos
- Instancia de InfluxDB: URL y token (Core/Enterprise) o ID de clúster y tokens (Cloud Dedicated)
- Node.js: v18 o superior (para uso con npm/npx)
- npm: v9 o superior (para uso con npm/npx)
- Docker: (para configuración basada en Docker)
Herramientas disponibles
| Nombre de la herramienta | Descripción | Disponibilidad |
|---|---|---|
get_help | Obtén ayuda y orientación para solucionar problemas de InfluxDB | Todas las versiones |
write_line_protocol | Escribe datos usando el protocolo de línea de InfluxDB | Todas las versiones |
create_database | Crea una nueva base de datos (con opciones de configuración de Cloud Dedicated) | Todas las versiones |
update_database | Actualiza la configuración de la base de datos (maxTables, retention, etc.) | Solo Cloud Dedicated |
delete_database | Elimina una base de datos por nombre (irreversible) | Todas las versiones |
execute_query | Ejecuta una consulta SQL contra una base de datos (admite múltiples formatos) | Todas las versiones |
get_measurements | Lista todas las mediciones (tablas) en una base de datos | Todas las versiones |
get_measurement_schema | Obtén el esquema (columnas/tipos) de una medición/tabla | Todas las versiones |
create_admin_token | Crea un nuevo token de administrador (permisos completos) | Solo Core/Enterprise |
list_admin_tokens | Lista todos los tokens de administrador (con filtrado opcional) | Solo Core/Enterprise |
create_resource_token | Crea un token de recurso para bases de datos y permisos específicos | Solo Core/Enterprise |
list_resource_tokens | Lista todos los tokens de recurso (con filtrado y ordenamiento) | Solo Core/Enterprise |
delete_token | Elimina un token por nombre | Solo Core/Enterprise |
regenerate_operator_token | Regenera el token de operador (peligroso/irreversible) | Solo Core/Enterprise |
cloud_list_database_tokens | Lista todos los tokens de base de datos para el clúster Cloud Dedicated | Solo Cloud Dedicated |
cloud_get_database_token | Obtén detalles de un token de base de datos específico por ID | Solo Cloud Dedicated |
cloud_create_database_token | Crea un nuevo token de base de datos para el clúster Cloud Dedicated | Solo Cloud Dedicated |
cloud_update_database_token | Actualiza un token de base de datos existente | Solo Cloud Dedicated |
cloud_delete_database_token | Elimina un token de base de datos del clúster Cloud Dedicated | Solo Cloud Dedicated |
list_databases | Lista todas las bases de datos disponibles en la instancia | Todas las versiones |
health_check | Verifica la conexión y el estado de salud de InfluxDB | Todas las versiones |
Recursos disponibles
| Nombre del recurso | Descripción |
|---|---|
influx-config | Acceso de solo lectura a la configuración de InfluxDB |
influx-status | Estado de conexión y salud en tiempo real |
influx-databases | Lista de todas las bases de datos en la instancia |
Guía de configuración e integración
1. Variables de entorno
Para InfluxDB Core/Enterprise:
Debes proporcionar:
INFLUX_DB_INSTANCE_URL(por ejemplo,http://localhost:8181/)INFLUX_DB_TOKENINFLUX_DB_PRODUCT_TYPE(coreoenterprise)
Ejemplo de .env:
INFLUX_DB_INSTANCE_URL=http://localhost:8181/
INFLUX_DB_TOKEN=your_influxdb_token_here
INFLUX_DB_PRODUCT_TYPE=core
Para InfluxDB Cloud Dedicated:
Debes proporcionar INFLUX_DB_PRODUCT_TYPE=cloud-dedicated y INFLUX_DB_CLUSTER_ID, además de una de estas combinaciones de tokens:
Opción 1: Solo token de base de datos (solo operaciones de consulta/escritura):
INFLUX_DB_PRODUCT_TYPE=cloud-dedicated
INFLUX_DB_CLUSTER_ID=your_cluster_id_here
INFLUX_DB_TOKEN=your_database_token_here
Opción 2: Solo token de administración (solo administración de bases de datos):
INFLUX_DB_PRODUCT_TYPE=cloud-dedicated
INFLUX_DB_CLUSTER_ID=your_cluster_id_here
INFLUX_DB_ACCOUNT_ID=your_account_id_here
INFLUX_DB_MANAGEMENT_TOKEN=your_management_token_here
Opción 3: Ambos tokens (funcionalidad completa):
INFLUX_DB_PRODUCT_TYPE=cloud-dedicated
INFLUX_DB_CLUSTER_ID=your_cluster_id_here
INFLUX_DB_ACCOUNT_ID=your_account_id_here
INFLUX_DB_TOKEN=your_database_token_here
INFLUX_DB_MANAGEMENT_TOKEN=your_management_token_here
Consulta env.cloud-dedicated.example para opciones de configuración detalladas y comentarios.
2. Integración con clientes MCP
A. Local (instalación con npm y ejecución)
- Instala las dependencias:
npm install - Compila el servidor:
npm run build - Configura tu cliente MCP para usar el servidor compilado. Ejemplo (consulta
example-local.mcp.json):{ "mcpServers": { "influxdb": { "command": "node", "args": ["/path/to/influx-mcp-standalone/build/index.js"], "env": { "INFLUX_DB_INSTANCE_URL": "http://localhost:8181/", "INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_TOKEN>", "INFLUX_DB_PRODUCT_TYPE": "core" } } } }
B. Local (npx, sin instalación/compilación requerida)
- Ejecuta directamente con npx (después de publicar en npm, aún no funcionará):
{ "mcpServers": { "influxdb": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-influxdb"], "env": { "INFLUX_DB_INSTANCE_URL": "http://localhost:8181/", "INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_TOKEN>", "INFLUX_DB_PRODUCT_TYPE": "core" } } } }
C. Docker
Antes de ejecutar la integración con Docker, debes compilar la imagen de Docker:
# Option 1: Use docker compose (recommended)
docker compose build
# Option 2: Use npm script
npm run docker:build
a) Docker con instancia remota de InfluxDB (consulta example-docker.mcp.json):
{
"mcpServers": {
"influxdb": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"INFLUX_DB_INSTANCE_URL",
"-e",
"INFLUX_DB_TOKEN",
"-e",
"INFLUX_DB_PRODUCT_TYPE",
"mcp/influxdb"
],
"env": {
"INFLUX_DB_INSTANCE_URL": "http://remote-influxdb-host:8181/",
"INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_TOKEN>",
"INFLUX_DB_PRODUCT_TYPE": "core"
}
}
}
}
b) Docker con InfluxDB ejecutándose en Docker en la misma máquina (consulta example-docker.mcp.json):
Usa host.docker.internal como URL de InfluxDB para que el contenedor del servidor MCP pueda alcanzar el contenedor de InfluxDB:
{
"mcpServers": {
"influxdb": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--add-host=host.docker.internal:host-gateway",
"-e",
"INFLUX_DB_INSTANCE_URL",
"-e",
"INFLUX_DB_TOKEN",
"-e",
"INFLUX_DB_PRODUCT_TYPE",
"influxdb-mcp-server"
],
"env": {
"INFLUX_DB_INSTANCE_URL": "http://host.docker.internal:8181/",
"INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_TOKEN>",
"INFLUX_DB_PRODUCT_TYPE": "enterprise"
}
}
}
}
Ejemplo de uso
- Usa tu cliente MCP para llamar a herramientas, recursos o prompts como se describe arriba.
- Consulta los archivos
example-*.mcp.jsonpara plantillas de configuración listas para usar:example-local.mcp.json- Configuración de desarrollo localexample-npx.mcp.json- Configuración basada en NPXexample-docker.mcp.json- Configuración basada en Dockerexample-cloud-dedicated.mcp.json- Cloud Dedicated con todas las variables
- Consulta los archivos
env.exampleyenv.cloud-dedicated.examplepara plantillas de variables de entorno.
Soporte y solución de problemas
- Usa la herramienta
get_helppara obtener ayuda integrada y solución de problemas. - Para problemas de conexión, verifica tus variables de entorno y el estado de la instancia de InfluxDB.
- Para configuración avanzada, consulta los comentarios en el ejemplo
.envy los archivos de configuración de MCP.