docs-v2/content/shared/influxdb3-admin/mcp-server.md

12 KiB
Raw Permalink Blame History

The InfluxDB Model Context Protocol (MCP) server lets you interact with {{% product-name %}} using natural language with large language model (LLM) agents. It enables database management, token handling, and SQL query generation in plain English—no coding required.

This guide walks you through configuring your LLM agent to run and use the InfluxDB MCP server to interact with your {{% product-name omit=" Clustered" %}} {{% show-in "core,enterprise" %}}server{{% /show-in %}}{{% show-in "cloud-dedicated,clustered" %}}cluster{{% /show-in %}}.

Prerequisites

  • Node.js v18+ (if using npx to run the MCP server)
  • Docker (if using Docker to run the MCP server)
  • A running and reachable {{% product-name omit=" Clustered" %}} {{% show-in "core,enterprise" %}}server{{% /show-in %}}{{% show-in "cloud-dedicated,clustered" %}}cluster{{% /show-in %}}. {{% show-in "core" %}}- A valid {{% product-name %}} admin token{{% /show-in %}} {{% show-in "enterprise" %}}- A valid {{% product-name %}} admin or resource token with appropriate resource-specific permissions{{% /show-in %}} {{% show-in "cloud-dedicated,clustered" %}}- Valid {{% product-name %}} management and database tokens{{% /show-in %}}
  • (Optional) An LLM assistant like Claude Desktop, ChatGPT Desktop, etc.

Configure the MCP server

Use environment variables to configure the InfluxDB 3 MCP server and connect it to your {{% product-name omit=" Clustered" %}} {{% show-in "core,enterprise" %}}server{{% /show-in %}}{{% show-in "cloud-dedicated,clustered" %}}cluster{{% /show-in %}}. Set the following environment variables when you start the MCP server:

Required InfluxDB connection variables

{{% show-in "core,enterprise" %}}

  • INFLUX_DB_PRODUCT_TYPE: {{% product-key %}}

  • INFLUX_DB_INSTANCE_URL: Your {{% product-name %}} URL--for example:

    http://{{< influxdb/host >}}
    

    [!Note] If using Docker to run the InfluxDB MCP server and you want to manage an InfluxDB instance running on localhost, use the internal Docker network to connect to your local {{% product-name %}} server--for example:

    http://host.docker.internal:8181/
    

{{% show-in "core" %}}

  • INFLUX_DB_TOKEN: Your {{% product-name %}} {{< token-link "admin" >}}
    {{% /show-in %}}

{{% show-in "enterprise" %}}

  • INFLUX_DB_TOKEN: Your {{% product-name %}} {{< token-link "admin" >}} or {{< token-link "resource" >}}.

    [!Note] If using a resource token, your LLM agent can only perform the operations allowed by the token permissions.

{{% /show-in %}}

{{% /show-in %}}

{{% show-in "cloud-dedicated,clustered" %}}

  • INFLUX_DB_PRODUCT_TYPE: {{% product-key %}}
  • INFLUX_DB_ACCOUNT_ID: Your {{% product-name %}} account ID
  • INFLUX_DB_CLUSTER_ID: Your {{% product-name %}} cluster ID
  • INFLUX_DB_TOKEN: An {{% product-name %}} database token
  • INFLUX_DB_MANAGEMENT_TOKEN: An {{% product-name %}} management token

[!Note]

Optional tokens

You can include one or both of INFLUX_DB_TOKEN and INFLUX_DB_MANAGEMENT_TOKEN, but omitting either limits the type of operations your LLM agents can perform on your {{% product-name omit=" Clustered" %}} cluster.

{{% /show-in %}}

Other MCP server configuration options

  • MCP_SERVER_HOST: Customize the host of the MCP server. The default is 127.0.0.1.
  • MCP_SERVER_PORT: Customize the port the MCP server uses. The default is 8080.

Configure your LLM agent to run the MCP server

To run the MCP, user either Node.js and npm or Docker to run the server. Some LLM agents, like Claude Desktop, start, run, and connect to the MCP server for you:

The following instructions provide information for how to configure Claude Desktop to use the InfluxDB MCP server.

{{< tabs-wrapper >}} {{% tabs %}} Node.js Docker {{% /tabs %}} {{% tab-content %}}

  1. Clone the influxdata/influxdb3_mcp_server repository from GitHub.

  2. Navigate to the influxdb3_mcp_server project directory:

    cd influxdb3_mcp_server/
    
  3. Install dependencies:

    npm install
    
  4. Build the MCP server:

    npm run build
    

This builds the files necessary to run the MCP server and stores them in ./build. The ./build/index.js file starts the MCP server.

Configure your LLM Agent to use the Node.js-based MCP server

In Claude Desktop, go to Settings > Developers and edit your configuration. Enter the following JSON configuration:

{{% show-in "core,enterprise" %}} {{% code-placeholders "path/to|AUTH_TOKEN" %}}

{
  "mcpServers": {
    "influxdb": {
      "command": "node",
      "args": ["/path/to/influxdb3_mcp_server/build/index.js"],
      "env": {
        "INFLUX_DB_PRODUCT_TYPE": "{{% product-key %}}",
        "INFLUX_DB_INSTANCE_URL": "http://{{< influxdb/host >}}",
        "INFLUX_DB_TOKEN": "AUTH_TOKEN"
      }
    }
  }
}

{{% /code-placeholders %}}

Replace the following:

  • {{% code-placeholder-key %}}path/to{{% /code-placeholder-key %}}: The absolute path to your influxdb3_mcp_server project directory.
  • {{% code-placeholder-key %}}AUTH_TOKEN{{% /code-placeholder-key %}}: Your {{% product-name %}} token. The permissions granted by the token determine what operations your LLM agents can perform.

{{% /show-in %}}

{{% show-in "cloud-dedicated" %}}

{{% code-placeholders "path/to|DEDICATED_(CLUSTER|ACCOUNT|DATABASE|MANAGEMENT)_(ID|TOKEN)" %}}

{
  "mcpServers": {
    "influxdb": {
      "command": "node",
      "args": ["/path/to/influxdb3_mcp_server/build/index.js"],
      "env": {
        "INFLUX_DB_PRODUCT_TYPE"="{{% product-key %}}",
        "INFLUX_DB_CLUSTER_ID"="DEDICATED_CLUSTER_ID",
        "INFLUX_DB_ACCOUNT_ID"="DEDICATED_ACCOUNT_ID",
        "INFLUX_DB_TOKEN"="DEDICATED_DATABASE_TOKEN",
        "INFLUX_DB_MANAGEMENT_TOKEN"="DEDICATED_MANAGEMENT_TOKEN"
      }
    }
  }
}

{{% /code-placeholders %}}

Replace the following:

  • {{% code-placeholder-key %}}path/to{{% /code-placeholder-key %}}: The absolute path to your influxdb3_mcp_server project directory.
  • {{% code-placeholder-key %}}DEDICATED_CLUSTER_ID{{% /code-placeholder-key %}}: Your {{% product-name omit=" Clustered" %}} cluster ID
  • {{% code-placeholder-key %}}DEDICATED_ACCOUNT_ID{{% /code-placeholder-key %}}: Your {{% product-name %}} account ID
  • {{% code-placeholder-key %}}DEDICATED_DATABASE_TOKEN{{% /code-placeholder-key %}}: A database token with permissions that grant access to all databases you would like your LLM agent to be able to write data to and query data from
  • {{% code-placeholder-key %}}DEDICATED_MANAGEMENT_TOKEN{{% /code-placeholder-key %}}: A management token that lets your LLM agent perform administrative tasks on your {{% product-name %}} cluster

{{% /show-in %}}

{{% /tab-content %}} {{% tab-content %}}

Configure your LLM Agent to use the Docker-based MCP server

In Claude Desktop, go to Settings > Developers and edit your configuration. Enter the following JSON configuration:

{{% show-in "core,enterprise" %}}

In the examples below, replace the following:

  • {{% code-placeholder-key %}}path/to{{% /code-placeholder-key %}}: The absolute path to your influxdb3_mcp_server project directory.
  • {{% code-placeholder-key %}}AUTH_TOKEN{{% /code-placeholder-key %}}: Your {{% product-name %}} token. The permissions granted by the token determine what operations your LLM agents can perform.

Connect to a remote InfluxDB server

{{% code-placeholders "path/to|AUTH_TOKEN" %}}

{
  "mcpServers": {
      "influxdb": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--env",
        "INFLUX_DB_PRODUCT_TYPE",
        "--env",
        "INFLUX_DB_INSTANCE_URL",
        "--env",
        "INFLUX_DB_TOKEN",
        "influxdata/influxdb3-mcp-server"
      ],
      "env": {
        "INFLUX_DB_PRODUCT_TYPE": "{{% product-key %}}",
        "INFLUX_DB_INSTANCE_URL": "http://{{< influxdb/host >}}",
        "INFLUX_DB_TOKEN": "AUTH_TOKEN"
      }
    }
  }
}

{{% /code-placeholders %}}

Connect to a local InfluxDB server

{{% code-placeholders "path/to|AUTH_TOKEN" %}}

{
  "mcpServers": {
      "influxdb": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--add-host=host.docker.internal:host-gateway"
        "--env",
        "INFLUX_DB_PRODUCT_TYPE",
        "--env",
        "INFLUX_DB_INSTANCE_URL",
        "--env",
        "INFLUX_DB_TOKEN",
        "influxdata/influxdb3-mcp-server"
      ],
      "env": {
        "INFLUX_DB_PRODUCT_TYPE": "{{% product-key %}}",
        "INFLUX_DB_INSTANCE_URL": "http://host.docker.internal:8181",
        "INFLUX_DB_TOKEN": "AUTH_TOKEN"
      }
    }
  }
}

{{% /code-placeholders %}}

{{% /show-in %}}

{{% show-in "cloud-dedicated" %}}

{{% code-placeholders "path/to|DEDICATED_(CLUSTER|ACCOUNT|DATABASE|MANAGEMENT)_(ID|TOKEN)" %}}

{
  "mcpServers": {
    "influxdb": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--env",
        "INFLUX_DB_PRODUCT_TYPE",
        "--env",
        "INFLUX_DB_ACCOUNT_ID",
        "--env",
        "INFLUX_DB_CLUSTER_ID",
        "--env",
        "INFLUX_DB_TOKEN",
        "--env",
        "INFLUX_DB_MANAGEMENT_TOKEN",
        "influxdata/influxdb3-mcp-server"
      ],
      "env": {
        "INFLUX_DB_PRODUCT_TYPE"="{{% product-key %}}",
        "INFLUX_DB_ACCOUNT_ID"="DEDICATED_ACCOUNT_ID",
        "INFLUX_DB_CLUSTER_ID"="DEDICATED_CLUSTER_ID",
        "INFLUX_DB_TOKEN"="DEDICATED_DATABASE_TOKEN",
        "INFLUX_DB_MANAGEMENT_TOKEN"="DEDICATED_MANAGEMENT_TOKEN"
      }
    }
  }
}

{{% /code-placeholders %}}

Replace the following:

  • {{% code-placeholder-key %}}path/to{{% /code-placeholder-key %}}: The absolute path to your influxdb3_mcp_server project directory.
  • {{% code-placeholder-key %}}DEDICATED_ACCOUNT_ID{{% /code-placeholder-key %}}: Your {{% product-name %}} account ID
  • {{% code-placeholder-key %}}DEDICATED_CLUSTER_ID{{% /code-placeholder-key %}}: Your {{% product-name omit=" Clustered" %}} cluster ID
  • {{% code-placeholder-key %}}DEDICATED_DATABASE_TOKEN{{% /code-placeholder-key %}}: A database token with permissions that grant access to all databases you would like your LLM agent to be able to write data to and query data from
  • {{% code-placeholder-key %}}DEDICATED_MANAGEMENT_TOKEN{{% /code-placeholder-key %}}: A management token that lets your LLM agent perform administrative tasks on your {{% product-name %}} cluster

{{% /show-in %}}

{{% /tab-content %}} {{< /tabs-wrapper >}}

Supported Features

Once connected, you can use your LLM agent to perform tasks on your {{% product-name %}} {{% show-in "core,enterprise" %}}server{{% /show-in %}}{{% show-in "cloud-dedicated,clustered" %}}cluster{{% /show-in %}}, including:

  • Create, update, and delete databases
  • List tables and inspect schemas
  • Create and manage tokens
  • Query data without writing SQL or InfluxQL
  • Check server health and connection status
Examples of supported prompts

“List all tables in the production database.”

“Create a read-only token for the metrics database.”

“Analyze last weeks sensor data for anomalies.”

“Create a new database called iot_sensors with a 30-day retention policy.”

“Show me the schema for the sensor_data table.”