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 herramientaDescripciónDisponibilidad
get_helpObtén ayuda y orientación para solucionar problemas de InfluxDBTodas las versiones
write_line_protocolEscribe datos usando el protocolo de línea de InfluxDBTodas las versiones
create_databaseCrea una nueva base de datos (con opciones de configuración de Cloud Dedicated)Todas las versiones
update_databaseActualiza la configuración de la base de datos (maxTables, retention, etc.)Solo Cloud Dedicated
delete_databaseElimina una base de datos por nombre (irreversible)Todas las versiones
execute_queryEjecuta una consulta SQL contra una base de datos (admite múltiples formatos)Todas las versiones
get_measurementsLista todas las mediciones (tablas) en una base de datosTodas las versiones
get_measurement_schemaObtén el esquema (columnas/tipos) de una medición/tablaTodas las versiones
create_admin_tokenCrea un nuevo token de administrador (permisos completos)Solo Core/Enterprise
list_admin_tokensLista todos los tokens de administrador (con filtrado opcional)Solo Core/Enterprise
create_resource_tokenCrea un token de recurso para bases de datos y permisos específicosSolo Core/Enterprise
list_resource_tokensLista todos los tokens de recurso (con filtrado y ordenamiento)Solo Core/Enterprise
delete_tokenElimina un token por nombreSolo Core/Enterprise
regenerate_operator_tokenRegenera el token de operador (peligroso/irreversible)Solo Core/Enterprise
cloud_list_database_tokensLista todos los tokens de base de datos para el clúster Cloud DedicatedSolo Cloud Dedicated
cloud_get_database_tokenObtén detalles de un token de base de datos específico por IDSolo Cloud Dedicated
cloud_create_database_tokenCrea un nuevo token de base de datos para el clúster Cloud DedicatedSolo Cloud Dedicated
cloud_update_database_tokenActualiza un token de base de datos existenteSolo Cloud Dedicated
cloud_delete_database_tokenElimina un token de base de datos del clúster Cloud DedicatedSolo Cloud Dedicated
list_databasesLista todas las bases de datos disponibles en la instanciaTodas las versiones
health_checkVerifica la conexión y el estado de salud de InfluxDBTodas las versiones

Recursos disponibles

Nombre del recursoDescripción
influx-configAcceso de solo lectura a la configuración de InfluxDB
influx-statusEstado de conexión y salud en tiempo real
influx-databasesLista 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_TOKEN
  • INFLUX_DB_PRODUCT_TYPE (core o enterprise)

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)

  1. Instala las dependencias:
    npm install
    
  2. Compila el servidor:
    npm run build
    
  3. 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)

  1. 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.json para plantillas de configuración listas para usar:
    • example-local.mcp.json - Configuración de desarrollo local
    • example-npx.mcp.json - Configuración basada en NPX
    • example-docker.mcp.json - Configuración basada en Docker
    • example-cloud-dedicated.mcp.json - Cloud Dedicated con todas las variables
  • Consulta los archivos env.example y env.cloud-dedicated.example para plantillas de variables de entorno.

Soporte y solución de problemas

  • Usa la herramienta get_help para 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 .env y los archivos de configuración de MCP.

Licencia

MIT