InfluxDB

Um servidor para integração com InfluxDB, um banco de dados de séries temporais.

Documentação

Servidor MCP InfluxDB

Servidor oficial do Model Context Protocol (MCP) para integração com InfluxDB. Fornece ferramentas, recursos e prompts para interagir com InfluxDB v3 (Core/Enterprise/Cloud Dedicated) por meio de clientes MCP.


Pré-requisitos

  • Instância InfluxDB: URL e token (Core/Enterprise) ou ID do cluster e tokens (Cloud Dedicated)
  • Node.js: v18 ou mais recente (para uso via npm/npx)
  • npm: v9 ou mais recente (para uso via npm/npx)
  • Docker: (para configuração baseada em Docker)

Ferramentas Disponíveis

Nome da FerramentaDescriçãoDisponibilidade
get_helpObtenha ajuda e orientação para solução de problemas em operações InfluxDBTodas as versões
write_line_protocolEscreva dados usando o protocolo de linha do InfluxDBTodas as versões
create_databaseCrie um novo banco de dados (com opções de configuração do Cloud Dedicated)Todas as versões
update_databaseAtualize a configuração do banco de dados (maxTables, retenção, etc.)Somente Cloud Dedicated
delete_databaseExclua um banco de dados pelo nome (irreversível)Todas as versões
execute_queryExecute uma consulta SQL em um banco de dados (suporta vários formatos)Todas as versões
get_measurementsListe todas as medições (tabelas) em um banco de dadosTodas as versões
get_measurement_schemaObtenha o esquema (colunas/tipos) para uma medição/tabelaTodas as versões
create_admin_tokenCrie um novo token de administrador (permissões totais)Somente Core/Enterprise
list_admin_tokensListe todos os tokens de administrador (com filtragem opcional)Somente Core/Enterprise
create_resource_tokenCrie um token de recurso para bancos de dados e permissões específicosSomente Core/Enterprise
list_resource_tokensListe todos os tokens de recurso (com filtragem e ordenação)Somente Core/Enterprise
delete_tokenExclua um token pelo nomeSomente Core/Enterprise
regenerate_operator_tokenRegenere o token do operador (perigoso/irreversível)Somente Core/Enterprise
cloud_list_database_tokensListe todos os tokens de banco de dados para cluster Cloud-DedicatedSomente Cloud Dedicated
cloud_get_database_tokenObtenha detalhes de um token de banco de dados específico por IDSomente Cloud Dedicated
cloud_create_database_tokenCrie um novo token de banco de dados para cluster Cloud-DedicatedSomente Cloud Dedicated
cloud_update_database_tokenAtualize um token de banco de dados existenteSomente Cloud Dedicated
cloud_delete_database_tokenExclua um token de banco de dados do cluster Cloud-DedicatedSomente Cloud Dedicated
list_databasesListe todos os bancos de dados disponíveis na instânciaTodas as versões
health_checkVerifique a conexão e o status de saúde do InfluxDBTodas as versões

Recursos Disponíveis

Nome do RecursoDescrição
influx-configAcesso somente leitura à configuração do InfluxDB
influx-statusConexão em tempo real e status de saúde
influx-databasesLista de todos os bancos de dados na instância

Guia de Configuração e Integração

1. Variáveis de Ambiente

Para InfluxDB Core/Enterprise:

Você deve fornecer:

  • INFLUX_DB_INSTANCE_URL (ex.: http://localhost:8181/)
  • INFLUX_DB_TOKEN
  • INFLUX_DB_PRODUCT_TYPE (core ou enterprise)

Exemplo .env:

INFLUX_DB_INSTANCE_URL=http://localhost:8181/
INFLUX_DB_TOKEN=your_influxdb_token_here
INFLUX_DB_PRODUCT_TYPE=core

Para InfluxDB Cloud Dedicated:

Você deve fornecer INFLUX_DB_PRODUCT_TYPE=cloud-dedicated e INFLUX_DB_CLUSTER_ID, além de uma destas combinações de token:

Opção 1: Somente Token de Banco de Dados (somente operações de Consulta/Escrita):

INFLUX_DB_PRODUCT_TYPE=cloud-dedicated
INFLUX_DB_CLUSTER_ID=your_cluster_id_here
INFLUX_DB_TOKEN=your_database_token_here

Opção 2: Somente Token de Gerenciamento (somente gerenciamento de banco de dados):

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

Opção 3: Ambos os Tokens (funcionalidade 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

Consulte env.cloud-dedicated.example para opções de configuração detalhadas e comentários.


2. Integração com Clientes MCP

A. Local (npm install & run)

  1. Instale as dependências:
    npm install
    
  2. Construa o servidor:
    npm run build
    
  3. Configure seu cliente MCP para usar o servidor compilado. Exemplo (veja 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, sem necessidade de instalação/build)

  1. Execute diretamente com npx (após publicar no npm, ainda não 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 executar a integração Docker, você deve construir a imagem Docker:

# Option 1: Use docker compose (recommended)
docker compose build
# Option 2: Use npm script
npm run docker:build

a) Docker com instância InfluxDB remota (veja 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 com InfluxDB rodando em Docker na mesma máquina (veja example-docker.mcp.json):

Use host.docker.internal como URL do InfluxDB para que o contêiner do servidor MCP possa alcançar o contêiner 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"
      }
    }
  }
}

Exemplo de Uso

  • Use seu cliente MCP para chamar ferramentas, recursos ou prompts conforme descrito acima.
  • Consulte os arquivos example-*.mcp.json para modelos de configuração prontos para uso:
    • example-local.mcp.json - Configuração de desenvolvimento local
    • example-npx.mcp.json - Configuração baseada em NPX
    • example-docker.mcp.json - Configuração baseada em Docker
    • example-cloud-dedicated.mcp.json - Cloud Dedicated com todas as variáveis
  • Consulte os arquivos env.example e env.cloud-dedicated.example para modelos de variáveis de ambiente.

Suporte e Solução de Problemas

  • Use a ferramenta get_help para ajuda integrada e solução de problemas.
  • Para problemas de conexão, verifique suas variáveis de ambiente e o status da instância InfluxDB.
  • Para configuração avançada, consulte os comentários nos arquivos de exemplo .env e de configuração MCP.

Licença

MIT