InfluxDB MCP Server
Un servidor MCP para interactuar con bases de datos de series temporales InfluxDB, que permite a los asistentes de IA trabajar con datos de series temporales.
Documentación
InfluxDB v2 MCP Server
Un servidor de Model Context Protocol (MCP) que expone acceso a una instancia de InfluxDB v2 utilizando la API OSS v2 de InfluxDB. Construido principalmente con Claude Code.
Características
Este servidor MCP proporciona:
- Recursos: Acceso a datos de organizaciones, buckets y mediciones
- Herramientas: Escribir datos, ejecutar consultas y gestionar objetos de base de datos
- Prompts: Plantillas para consultas Flux comunes y formato Line Protocol
Recursos
El servidor expone los siguientes recursos:
-
Lista de organizaciones:
influxdb://orgs- Muestra todas las organizaciones en la instancia de InfluxDB
-
Lista de buckets:
influxdb://buckets- Muestra todos los buckets con sus metadatos
-
Mediciones de bucket:
influxdb://bucket/{bucketName}/measurements- Lista todas las mediciones dentro de un bucket especificado
-
Consultar datos:
influxdb://query/{orgName}/{fluxQuery}- Ejecuta una consulta Flux y devuelve los resultados como un recurso
Herramientas
El servidor proporciona estas herramientas:
-
write-data: Escribir datos de series temporales en formato line protocol- Parámetros: org, bucket, data, precision (opcional)
-
query-data: Ejecutar consultas Flux- Parámetros: org, query
-
create-bucket: Crear un nuevo bucket- Parámetros: name, orgID, retentionPeriodSeconds (opcional)
-
create-org: Crear una nueva organización- Parámetros: name, description (opcional)
Prompts
El servidor ofrece estas plantillas de prompts:
flux-query-examples: Ejemplos comunes de consultas Fluxline-protocol-guide: Guía del formato line protocol de InfluxDB
Configuración
El servidor requiere estas variables de entorno:
INFLUXDB_TOKEN(obligatorio): Token de autenticación para la API de InfluxDBINFLUXDB_URL(opcional): URL de la instancia de InfluxDB (por defectohttp://localhost:8086)INFLUXDB_ORG(opcional): Nombre de organización predeterminado para ciertas operaciones
Instalación
Instalación mediante Smithery
Para instalar InfluxDB MCP Server para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @idoru/influxdb-mcp-server --client claude
Opción 1: Ejecutar con npx (recomendado)
# Run directly with npx
INFLUXDB_TOKEN=your_token npx influxdb-mcp-server
Opción 2: Instalar globalmente
# Install globally
npm install -g influxdb-mcp-server
# Run the server
INFLUXDB_TOKEN=your_token influxdb-mcp-server
Opción 3: Desde el código fuente
# Clone the repository
git clone https://github.com/idoru/influxdb-mcp-server.git
cd influxdb-mcp-server
# Install dependencies
npm install
# Run the server
INFLUXDB_TOKEN=your_token npm start
influxdb-mcp-server utiliza transporte stdio por defecto. Puedes solicitarlo explícitamente con --stdio, o iniciar el servidor con transporte HTTP Streamable proporcionando la opción --http con un número de puerto opcional (por defecto 3000). Este modo utiliza un servidor Express.js interno:
# Start with Streamable HTTP transport on default port 3000
INFLUXDB_TOKEN=your_token npm start -- --http
# Start with Streamable HTTP transport on a specific port
INFLUXDB_TOKEN=your_token npm start -- --http 8080
Si instalaste globalmente o estás usando npx, puedes ejecutar:
INFLUXDB_TOKEN=your_token influxdb-mcp-server --http
# or explicitly force stdio
INFLUXDB_TOKEN=your_token influxdb-mcp-server --stdio
# or
INFLUXDB_TOKEN=your_token influxdb-mcp-server --http 8080
Integración con Claude for Desktop
Añade el servidor a tu claude_desktop_config.json:
Usando npx (recomendado)
{
"mcpServers": {
"influxdb": {
"command": "npx",
"args": ["influxdb-mcp-server"],
"env": {
"INFLUXDB_TOKEN": "your_token",
"INFLUXDB_URL": "http://localhost:8086",
"INFLUXDB_ORG": "your_org"
}
}
}
}
Si se instaló localmente
{
"mcpServers": {
"influxdb": {
"command": "node",
"args": ["/path/to/influxdb-mcp-server/src/index.js"],
"env": {
"INFLUXDB_TOKEN": "your_token",
"INFLUXDB_URL": "http://localhost:8086",
"INFLUXDB_ORG": "your_org"
}
}
}
}
Estructura del código
El código del servidor está organizado en una estructura modular:
src/index.js- Punto de entrada principal del servidorconfig/- Archivos relacionados con la configuraciónenv.js- Manejo de variables de entorno
utils/- Funciones de utilidadinfluxClient.js- Cliente de la API de InfluxDBloggerConfig.js- Configuración del registrador de consola
handlers/- Manejadores de recursos y herramientasorganizationsHandler.js- Listado de organizacionesbucketsHandler.js- Listado de bucketsmeasurementsHandler.js- Listado de medicionesqueryHandler.js- Ejecución de consultaswriteDataTool.js- Herramienta de escritura de datosqueryDataTool.js- Herramienta de consultacreateBucketTool.js- Herramienta de creación de bucketscreateOrgTool.js- Herramienta de creación de organizaciones
prompts/- Plantillas de promptsfluxQueryExamplesPrompt.js- Ejemplos de consultas FluxlineProtocolGuidePrompt.js- Guía de line protocol
Esta estructura permite un mejor mantenimiento, pruebas más fáciles y una separación de responsabilidades más clara.
Pruebas
El repositorio incluye pruebas de integración exhaustivas que:
- Levantan un contenedor Docker con InfluxDB
- Lo pueblan con datos de ejemplo
- Prueban toda la funcionalidad del servidor MCP
Para ejecutar las pruebas:
npm test
Licencia
MIT
