[GH-ISSUE #4436] [BUG]: Cannot connect to InfluxDB 3 MCP server #2829

Closed
opened 2026-02-22 18:31:26 -05:00 by yindo · 3 comments
Owner

Originally created by @tankienleong on GitHub (Sep 25, 2025).
Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/4436

Originally assigned to: @angelplusultra on GitHub.

How are you running AnythingLLM?

Docker (local)

What happened?

[backend] info: [MCPCompatibilityLayer] Successfully started 1 MCP servers: ["influxdb"]
[backend] info: [MCPCompatibilityLayer] MCP Servers already running, skipping boot.
[backend] error: Error force reloading MCP servers: ZodError: [ { "code": "unrecognized_keys", "keys": [ "ok", "version", "build" ], "path": [], "message": "Unrecognized key(s) in object: 'ok', 'version', 'build'" } ] at get error [as error]
(/app/server/node_modules/@modelcontextprotocol/sdk/node_modules/zod/lib/types.js:55:31) at ZodObject.parse
(/app/server/node_modules/@modelcontextprotocol/sdk/node_modules/zod/lib/types.js:131:22) at /app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js:284:49 at Client._onresponse
(/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js:213:13) at _transport.onmessage (/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js:80:22) at StdioClientTransport.processReadBuffer (/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js:138:79) at Socket. (/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js:105:22) at Socket.emit (node:events:517:28) at addChunk (node:internal/streams/readable:368:12) at readableAddChunk (node:internal/streams/readable:341:9)

Are there known steps to reproduce?

No response

Originally created by @tankienleong on GitHub (Sep 25, 2025). Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/4436 Originally assigned to: @angelplusultra on GitHub. ### How are you running AnythingLLM? Docker (local) ### What happened? [backend] info: [MCPCompatibilityLayer] Successfully started 1 MCP servers: ["influxdb"] [backend] info: [MCPCompatibilityLayer] MCP Servers already running, skipping boot. [backend] error: Error force reloading MCP servers: ZodError: [ { "code": "unrecognized_keys", "keys": [ "ok", "version", "build" ], "path": [], "message": "Unrecognized key(s) in object: 'ok', 'version', 'build'" } ] at get error [as error] (/app/server/node_modules/@modelcontextprotocol/sdk/node_modules/zod/lib/types.js:55:31) at ZodObject.parse (/app/server/node_modules/@modelcontextprotocol/sdk/node_modules/zod/lib/types.js:131:22) at /app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js:284:49 at Client._onresponse (/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js:213:13) at _transport.onmessage (/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js:80:22) at StdioClientTransport.processReadBuffer (/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js:138:79) at Socket.<anonymous> (/app/server/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js:105:22) at Socket.emit (node:events:517:28) at addChunk (node:internal/streams/readable:368:12) at readableAddChunk (node:internal/streams/readable:341:9) ### Are there known steps to reproduce? _No response_
yindo added the possible bugneeds info / can't replicateinvestigating labels 2026-02-22 18:31:26 -05:00
yindo closed this issue 2026-02-22 18:31:27 -05:00
Author
Owner

@timothycarambat commented on GitHub (Sep 25, 2025):

Where did you get this MCP? Is there a place we can get it because this error is coming from the MCP validator for the schema - meaning either the MCP is incorrectly designed or we need to update our MCP SDK library version.

@timothycarambat commented on GitHub (Sep 25, 2025): Where did you get this MCP? Is there a place we can get it because this error is coming from the MCP validator for the schema - meaning either the MCP is incorrectly designed or we need to update our MCP SDK library version.
Author
Owner

@tankienleong commented on GitHub (Sep 25, 2025):

git clone https://github.com/influxdata/influxdb3_mcp_server
npm install
npm run build
then I configure AnythingLLM to use the built server
{
"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"
}
}
}
}

@tankienleong commented on GitHub (Sep 25, 2025): git clone https://github.com/influxdata/influxdb3_mcp_server npm install npm run build then I configure AnythingLLM to use the built server { "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" } } } }
Author
Owner

@angelplusultra commented on GitHub (Nov 25, 2025):

@tankienleong

I was not able to reproduce the error you are experiencing.

I spun up a docker instance of Influx DB 3 and followed the MCP server setup steps and was able to connect to it successfully.

Image

Here are my logs:

backend] info: [MCPHypervisor] Attempting to start MCP server: influxdb
[MCP] Server initialized with 22 tools, 4 resources, 3 prompts
[MCP] InfluxDB MCP Server started successfully
[backend] info: [MCPHypervisor] influxdb - Transport message: {"jsonrpc":"2.0","id":0,"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{},"resources":{},"prompts":{}},"serverInfo":{"name":"influxdb-mcp-server","version":"1.2.0"}}}
[backend] info: [MCPHypervisor] Successfully started 1 MCP servers: ["influxdb"]
[backend] info: [MCPHypervisor] influxdb - Transport message: {"jsonrpc":"2.0","id":1,"result":{}}
[backend] info: [MCPHypervisor] influxdb - Transport message: {"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"load_database_context","description":"Check for and load custom database context if available. Always check this first as it can significantly speed up analysis and clarify data nuances. User-provided context is optional but when present, it contains valuable information about database structure, business context, or personal notes that can guide more accurate analysis.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_help","description":"Get help and troubleshooting guidance for InfluxDB operations. Supports specific categories or keyword search.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"write_line_protocol","description":"Write data to InfluxDB using line protocol format (all versions). Supports single records or batches.\n\nLine Protocol Syntax:\nmeasurement,tag1=value1,tag2=value2 field1=value1,field2=value2 timestamp\n\nComponents:\n- measurement: table/measurement name (required)\n- tags: indexed metadata (optional) - comma-separated key=value pairs\n- fields: actual data (required) - space-separated from tags, comma-separated key=value pairs  \n- timestamp: optional timestamp (precision must be specified in tool parameters)\n\nField Value Types:\n- Strings: \"quoted string\"\n- Floats: 123.45\n- Integers: 123i (note the 'i' suffix)\n- Booleans: t or f\n\nExamples:\nSingle record: temperature,location=office,building=main value=23.5,humidity=45i 1640995200\nBatch (separate with newlines):\ntemperature,location=office value=23.5 1640995200\nhumidity,location=office value=45i 1640995201\n\nImportant: Always specify correct precision parameter to match your timestamp format. Use any precision if writing data with no timestamp. Escaping required for special characters in tags/fields.","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket to write to"},"data":{"type":"string","description":"Line protocol formatted data. For multiple records, separate each line with \\n"},"precision":{"type":"string","enum":["nanosecond","microsecond","millisecond","second"],"description":"Precision of timestamps"},"acceptPartial":{"type":"boolean","description":"Accept partial writes","default":true},"noSync":{"type":"boolean","description":"Acknowledge without waiting for WAL persistence","default":false}},"required":["database","data","precision"],"additionalProperties":false}},{"name":"create_database","description":"Create a new database in InfluxDB. Database names must follow InfluxDB naming rules: alphanumeric characters, dashes (-), underscores (_), and forward slashes (/) are allowed. Must start with a letter or number. Maximum 64 characters. For Cloud Dedicated: maxTables, maxColumnsPerTable, retentionPeriod. For Cloud Serverless: description, retentionPeriod.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the database to create (alphanumeric, -, _, / allowed; max 64 chars; must start with letter/number)","pattern":"^[a-zA-Z0-9][a-zA-Z0-9\\-_/]*$","maxLength":64},"description":{"type":"string","description":"Description for the bucket/database (Cloud Serverless only)"},"maxTables":{"type":"number","description":"Maximum number of tables (Cloud Dedicated only, default: 500)","minimum":1},"maxColumnsPerTable":{"type":"number","description":"Maximum columns per table (Cloud Dedicated only, default: 200)","minimum":1},"retentionPeriod":{"type":"number","description":"Retention period in nanoseconds (Cloud Dedicated: default 0 = no expiration, Cloud Serverless: default 30 days)","minimum":0}},"required":["name"],"additionalProperties":false}},{"name":"update_database","description":"Update database configuration for InfluxDB Cloud Dedicated clusters and Cloud Serverless buckets. For Cloud Dedicated: modify maxTables, maxColumnsPerTable, and retentionPeriod. For Cloud Serverless: modify bucket name, description, and retentionPeriod. Not available for Core/Enterprise installations.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the database/bucket to update"},"newName":{"type":"string","description":"New name for the database/bucket (Cloud Serverless only)"},"description":{"type":"string","description":"Description for the bucket (Cloud Serverless only)"},"maxTables":{"type":"number","description":"Maximum number of tables (Cloud Dedicated only)","minimum":1},"maxColumnsPerTable":{"type":"number","description":"Maximum columns per table (Cloud Dedicated only)","minimum":1},"retentionPeriod":{"type":"number","description":"Retention period in nanoseconds (Cloud Dedicated and Cloud Serverless)","minimum":0}},"required":["name"],"additionalProperties":false}},{"name":"delete_database","description":"Delete a database from InfluxDB. Use the exact database name as returned by the list_databases tool.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the database to delete (use exact name from database list)"}},"required":["name"],"additionalProperties":false}},{"name":"list_databases","description":"List all databases in the InfluxDB instance (all versions). Returns database names, count, and status information.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"execute_query","description":"Execute a SQL query against an InfluxDB database (all versions). Returns results in the specified format (defaults to JSON).\n\nLarge Dataset Warning: InfluxDB might contain massive time-series data. Always use COUNT(*) first to check size, then LIMIT/OFFSET for large results (>1000 rows).\n\nCloud Dedicated & Cloud Serverless (v3) Requirements:\n- GROUP BY: Include all group columns in SELECT (e.g., SELECT place, COUNT(*) ... GROUP BY place)\n- Aggregations: Cast and alias COUNT (e.g., CAST(COUNT(*) AS DOUBLE) AS count)\n- Note: Both products require CAST for all aggregation functions (COUNT, SUM, AVG, MIN, MAX) to ensure results appear properly in response","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket to query"},"query":{"type":"string","description":"SQL query to execute."},"format":{"type":"string","enum":["json","csv","parquet","jsonl","pretty"],"description":"Output format for query results","default":"json"}},"required":["database","query"],"additionalProperties":false}},{"name":"get_measurements","description":"Get a list of all measurements (tables) in a database/bucket (all versions). Uses the InfluxDB information_schema.columns to discover tables.","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket to list measurements from"}},"required":["database"],"additionalProperties":false}},{"name":"get_measurement_schema","description":"Get the schema (column information) for a specific measurement/table (all versions). Shows column names, types, and categories (time/tag/field).","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket containing the measurement"},"measurement":{"type":"string","description":"Name of the measurement to describe"}},"required":["database","measurement"],"additionalProperties":false}},{"name":"create_admin_token","description":"Create a new InfluxDB named admin token with full administrative permissions (Core/Enterprise only). Named admin tokens can manage databases, users, and resource tokens, but cannot manage other admin tokens.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Optional name for the admin token (e.g., \"backup-admin-token\"). If not provided, a unique name will be generated."}},"additionalProperties":false}},{"name":"list_admin_tokens","description":"List all admin tokens (operator and named admin tokens) with optional filtering by token name (Core/Enterprise only). Named admin tokens have full administrative access including resource token management.","inputSchema":{"type":"object","properties":{"tokenName":{"type":"string","description":"Optional filter to search for tokens with names containing this text (case-insensitive partial match)"}},"additionalProperties":false}},{"name":"list_resource_tokens","description":"List all resource tokens with optional filtering by database name and/or token name, and ordering (Core/Enterprise only).","inputSchema":{"type":"object","properties":{"databaseName":{"type":"string","description":"Optional filter to show only tokens that have access to this database (partial match)"},"tokenName":{"type":"string","description":"Optional filter to search for tokens with names containing this text (case-insensitive partial match)"},"orderBy":{"type":"string","enum":["created_at","token_id","name"],"description":"Optional field to order results by"},"orderDirection":{"type":"string","enum":["ASC","DESC"],"description":"Optional direction for ordering (ASC or DESC). Defaults to ASC.","default":"ASC"}},"additionalProperties":false}},{"name":"regenerate_operator_token","description":"Regenerate the InfluxDB operator token (Core/Enterprise only). Returns the new token value. ⚠️ This action invalidates current operator token and is irreversible. Receive the explicit user confirmation before proceeding.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"create_resource_token","description":"Create a new InfluxDB resource token with specific database permissions (Core/Enterprise only). Example: databases=[\"mydb\", \"testdb\"], actions=[\"read\", \"write\"]","inputSchema":{"type":"object","properties":{"description":{"type":"string","description":"Description/name for the resource token (e.g., \"My App Token\")"},"databases":{"type":"array","items":{"type":"string"},"description":"Array of database names this token can access. Example: [\"database1\", \"database2\"]. Use exact database names from your InfluxDB instance.","minItems":1},"actions":{"type":"array","items":{"type":"string","enum":["read","write"]},"description":"Array of permissions for the databases. Example: [\"read\"] for read-only, [\"read\", \"write\"] for full access, or [\"write\"] for write-only.","minItems":1},"expiry_secs":{"type":"number","description":"Optional expiration time in seconds (e.g., 3600 for 1 hour, 86400 for 1 day, 604800 for 1 week). If not specified, token never expires.","minimum":1}},"required":["description","databases","actions"],"additionalProperties":false}},{"name":"delete_token","description":"Delete an InfluxDB token by name (Core/Enterprise only).","inputSchema":{"type":"object","properties":{"token_name":{"type":"string","description":"Name of the token to delete (required)"}},"required":["token_name"],"additionalProperties":false}},{"name":"cloud_list_database_tokens","description":"List all database tokens for InfluxDB Cloud-Dedicated cluster. Returns token information including permissions and creation dates.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"cloud_get_database_token","description":"Get details of a specific database token by ID for InfluxDB Cloud-Dedicated cluster.","inputSchema":{"type":"object","properties":{"token_id":{"type":"string","description":"The ID of the token to retrieve"}},"required":["token_id"],"additionalProperties":false}},{"name":"cloud_create_database_token","description":"Create a new database token for InfluxDB Cloud-Dedicated cluster. Specify exact permissions per database or create a no-access token.\n\nPermissions format: [{\"database\": \"db_name\", \"action\": \"read|write\"}, ...]\nExamples:\n• No access: omit permissions field or use []\n• Read-only on 'analytics': [{\"database\": \"analytics\", \"action\": \"read\"}]\n• Mixed permissions: [{\"database\": \"logs\", \"action\": \"read\"}, {\"database\": \"metrics\", \"action\": \"write\"}]\n• Full access: [{\"database\": \"*\", \"action\": \"read\"}, {\"database\": \"*\", \"action\": \"write\"}]","inputSchema":{"type":"object","properties":{"description":{"type":"string","description":"Description/name for the token"},"permissions":{"type":"array","items":{"type":"object","properties":{"database":{"type":"string","description":"Database name or '*' for all databases"},"action":{"type":"string","enum":["read","write"],"description":"Permission level for this database"}},"required":["database","action"],"additionalProperties":false},"description":"Array of permission objects. Each object specifies database and action. Leave empty array [] for no-access token."}},"required":["description"],"additionalProperties":false}},{"name":"cloud_update_database_token","description":"Update an existing database token for InfluxDB Cloud-Dedicated cluster. Can update description and/or permissions with precise control.\n\nPermissions format: [{\"database\": \"db_name\", \"action\": \"read|write\"}, ...]\nNote: Permissions completely replace existing ones - include all desired permissions.\nExamples:\n• No access: use []\n• Read-only on 'analytics': [{\"database\": \"analytics\", \"action\": \"read\"}]\n• Mixed permissions: [{\"database\": \"logs\", \"action\": \"read\"}, {\"database\": \"metrics\", \"action\": \"write\"}]\n• Full access: [{\"database\": \"*\", \"action\": \"read\"}, {\"database\": \"*\", \"action\": \"write\"}]","inputSchema":{"type":"object","properties":{"token_id":{"type":"string","description":"The ID of the token to update"},"description":{"type":"string","description":"New description for the token (optional)"},"permissions":{"type":"array","items":{"type":"object","properties":{"database":{"type":"string","description":"Database name or '*' for all databases"},"action":{"type":"string","enum":["read","write"],"description":"Permission level for this database"}},"required":["database","action"],"additionalProperties":false},"description":"Array of permission objects. Each object specifies database and action. Use empty array [] for no-access token."}},"required":["token_id"],"additionalProperties":false}},{"name":"cloud_delete_database_token","description":"Delete a database token from InfluxDB Cloud-Dedicated cluster. This action cannot be undone.","inputSchema":{"type":"object","properties":{"token_id":{"type":"string","description":"The ID of the token to delete"}},"required":["token_id"],"additionalProperties":false}},{"name":"health_check","description":"Check current connection status to the InfluxDB instance. Returns connection status, configuration, and available endpoint results. Health assessment is flexible - if any check passes (client initialization, /health endpoint, or /ping), the instance is considered healthy. Available checks depend on the InfluxDB product type and token configuration.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}}]}}

Heres my MCP settings:

    "influxdb": {
      "command": "node",
      "args": ["/Users/macfitton/influxdb3_mcp_server/build/index.js"],
      "env": {
        "INFLUX_DB_INSTANCE_URL": "http://localhost:8181/",
        "INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_TOKEN>",
        "INFLUX_DB_PRODUCT_TYPE": "core"
      }
    }

I notice your logs are coming from MCPCompatibilityLayer instead of MCPHypervisor. What version of AnythingLLM are you using?

Suggestions to Troubleshoot:

  1. Try again but use the latest version of AnythingLLM
  2. Verify your Influx DB is a version 3 db
@angelplusultra commented on GitHub (Nov 25, 2025): @tankienleong I was not able to reproduce the error you are experiencing. I spun up a docker instance of Influx DB 3 and followed the MCP server setup steps and was able to connect to it successfully. <img width="1496" height="990" alt="Image" src="https://github.com/user-attachments/assets/30100203-96b1-4aa9-90f4-24306584f8ee" /> Here are my logs: ``` backend] info: [MCPHypervisor] Attempting to start MCP server: influxdb [MCP] Server initialized with 22 tools, 4 resources, 3 prompts [MCP] InfluxDB MCP Server started successfully [backend] info: [MCPHypervisor] influxdb - Transport message: {"jsonrpc":"2.0","id":0,"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{},"resources":{},"prompts":{}},"serverInfo":{"name":"influxdb-mcp-server","version":"1.2.0"}}} [backend] info: [MCPHypervisor] Successfully started 1 MCP servers: ["influxdb"] [backend] info: [MCPHypervisor] influxdb - Transport message: {"jsonrpc":"2.0","id":1,"result":{}} [backend] info: [MCPHypervisor] influxdb - Transport message: {"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"load_database_context","description":"Check for and load custom database context if available. Always check this first as it can significantly speed up analysis and clarify data nuances. User-provided context is optional but when present, it contains valuable information about database structure, business context, or personal notes that can guide more accurate analysis.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_help","description":"Get help and troubleshooting guidance for InfluxDB operations. Supports specific categories or keyword search.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"write_line_protocol","description":"Write data to InfluxDB using line protocol format (all versions). Supports single records or batches.\n\nLine Protocol Syntax:\nmeasurement,tag1=value1,tag2=value2 field1=value1,field2=value2 timestamp\n\nComponents:\n- measurement: table/measurement name (required)\n- tags: indexed metadata (optional) - comma-separated key=value pairs\n- fields: actual data (required) - space-separated from tags, comma-separated key=value pairs \n- timestamp: optional timestamp (precision must be specified in tool parameters)\n\nField Value Types:\n- Strings: \"quoted string\"\n- Floats: 123.45\n- Integers: 123i (note the 'i' suffix)\n- Booleans: t or f\n\nExamples:\nSingle record: temperature,location=office,building=main value=23.5,humidity=45i 1640995200\nBatch (separate with newlines):\ntemperature,location=office value=23.5 1640995200\nhumidity,location=office value=45i 1640995201\n\nImportant: Always specify correct precision parameter to match your timestamp format. Use any precision if writing data with no timestamp. Escaping required for special characters in tags/fields.","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket to write to"},"data":{"type":"string","description":"Line protocol formatted data. For multiple records, separate each line with \\n"},"precision":{"type":"string","enum":["nanosecond","microsecond","millisecond","second"],"description":"Precision of timestamps"},"acceptPartial":{"type":"boolean","description":"Accept partial writes","default":true},"noSync":{"type":"boolean","description":"Acknowledge without waiting for WAL persistence","default":false}},"required":["database","data","precision"],"additionalProperties":false}},{"name":"create_database","description":"Create a new database in InfluxDB. Database names must follow InfluxDB naming rules: alphanumeric characters, dashes (-), underscores (_), and forward slashes (/) are allowed. Must start with a letter or number. Maximum 64 characters. For Cloud Dedicated: maxTables, maxColumnsPerTable, retentionPeriod. For Cloud Serverless: description, retentionPeriod.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the database to create (alphanumeric, -, _, / allowed; max 64 chars; must start with letter/number)","pattern":"^[a-zA-Z0-9][a-zA-Z0-9\\-_/]*$","maxLength":64},"description":{"type":"string","description":"Description for the bucket/database (Cloud Serverless only)"},"maxTables":{"type":"number","description":"Maximum number of tables (Cloud Dedicated only, default: 500)","minimum":1},"maxColumnsPerTable":{"type":"number","description":"Maximum columns per table (Cloud Dedicated only, default: 200)","minimum":1},"retentionPeriod":{"type":"number","description":"Retention period in nanoseconds (Cloud Dedicated: default 0 = no expiration, Cloud Serverless: default 30 days)","minimum":0}},"required":["name"],"additionalProperties":false}},{"name":"update_database","description":"Update database configuration for InfluxDB Cloud Dedicated clusters and Cloud Serverless buckets. For Cloud Dedicated: modify maxTables, maxColumnsPerTable, and retentionPeriod. For Cloud Serverless: modify bucket name, description, and retentionPeriod. Not available for Core/Enterprise installations.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the database/bucket to update"},"newName":{"type":"string","description":"New name for the database/bucket (Cloud Serverless only)"},"description":{"type":"string","description":"Description for the bucket (Cloud Serverless only)"},"maxTables":{"type":"number","description":"Maximum number of tables (Cloud Dedicated only)","minimum":1},"maxColumnsPerTable":{"type":"number","description":"Maximum columns per table (Cloud Dedicated only)","minimum":1},"retentionPeriod":{"type":"number","description":"Retention period in nanoseconds (Cloud Dedicated and Cloud Serverless)","minimum":0}},"required":["name"],"additionalProperties":false}},{"name":"delete_database","description":"Delete a database from InfluxDB. Use the exact database name as returned by the list_databases tool.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the database to delete (use exact name from database list)"}},"required":["name"],"additionalProperties":false}},{"name":"list_databases","description":"List all databases in the InfluxDB instance (all versions). Returns database names, count, and status information.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"execute_query","description":"Execute a SQL query against an InfluxDB database (all versions). Returns results in the specified format (defaults to JSON).\n\nLarge Dataset Warning: InfluxDB might contain massive time-series data. Always use COUNT(*) first to check size, then LIMIT/OFFSET for large results (>1000 rows).\n\nCloud Dedicated & Cloud Serverless (v3) Requirements:\n- GROUP BY: Include all group columns in SELECT (e.g., SELECT place, COUNT(*) ... GROUP BY place)\n- Aggregations: Cast and alias COUNT (e.g., CAST(COUNT(*) AS DOUBLE) AS count)\n- Note: Both products require CAST for all aggregation functions (COUNT, SUM, AVG, MIN, MAX) to ensure results appear properly in response","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket to query"},"query":{"type":"string","description":"SQL query to execute."},"format":{"type":"string","enum":["json","csv","parquet","jsonl","pretty"],"description":"Output format for query results","default":"json"}},"required":["database","query"],"additionalProperties":false}},{"name":"get_measurements","description":"Get a list of all measurements (tables) in a database/bucket (all versions). Uses the InfluxDB information_schema.columns to discover tables.","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket to list measurements from"}},"required":["database"],"additionalProperties":false}},{"name":"get_measurement_schema","description":"Get the schema (column information) for a specific measurement/table (all versions). Shows column names, types, and categories (time/tag/field).","inputSchema":{"type":"object","properties":{"database":{"type":"string","description":"Name of the database/bucket containing the measurement"},"measurement":{"type":"string","description":"Name of the measurement to describe"}},"required":["database","measurement"],"additionalProperties":false}},{"name":"create_admin_token","description":"Create a new InfluxDB named admin token with full administrative permissions (Core/Enterprise only). Named admin tokens can manage databases, users, and resource tokens, but cannot manage other admin tokens.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Optional name for the admin token (e.g., \"backup-admin-token\"). If not provided, a unique name will be generated."}},"additionalProperties":false}},{"name":"list_admin_tokens","description":"List all admin tokens (operator and named admin tokens) with optional filtering by token name (Core/Enterprise only). Named admin tokens have full administrative access including resource token management.","inputSchema":{"type":"object","properties":{"tokenName":{"type":"string","description":"Optional filter to search for tokens with names containing this text (case-insensitive partial match)"}},"additionalProperties":false}},{"name":"list_resource_tokens","description":"List all resource tokens with optional filtering by database name and/or token name, and ordering (Core/Enterprise only).","inputSchema":{"type":"object","properties":{"databaseName":{"type":"string","description":"Optional filter to show only tokens that have access to this database (partial match)"},"tokenName":{"type":"string","description":"Optional filter to search for tokens with names containing this text (case-insensitive partial match)"},"orderBy":{"type":"string","enum":["created_at","token_id","name"],"description":"Optional field to order results by"},"orderDirection":{"type":"string","enum":["ASC","DESC"],"description":"Optional direction for ordering (ASC or DESC). Defaults to ASC.","default":"ASC"}},"additionalProperties":false}},{"name":"regenerate_operator_token","description":"Regenerate the InfluxDB operator token (Core/Enterprise only). Returns the new token value. ⚠️ This action invalidates current operator token and is irreversible. Receive the explicit user confirmation before proceeding.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"create_resource_token","description":"Create a new InfluxDB resource token with specific database permissions (Core/Enterprise only). Example: databases=[\"mydb\", \"testdb\"], actions=[\"read\", \"write\"]","inputSchema":{"type":"object","properties":{"description":{"type":"string","description":"Description/name for the resource token (e.g., \"My App Token\")"},"databases":{"type":"array","items":{"type":"string"},"description":"Array of database names this token can access. Example: [\"database1\", \"database2\"]. Use exact database names from your InfluxDB instance.","minItems":1},"actions":{"type":"array","items":{"type":"string","enum":["read","write"]},"description":"Array of permissions for the databases. Example: [\"read\"] for read-only, [\"read\", \"write\"] for full access, or [\"write\"] for write-only.","minItems":1},"expiry_secs":{"type":"number","description":"Optional expiration time in seconds (e.g., 3600 for 1 hour, 86400 for 1 day, 604800 for 1 week). If not specified, token never expires.","minimum":1}},"required":["description","databases","actions"],"additionalProperties":false}},{"name":"delete_token","description":"Delete an InfluxDB token by name (Core/Enterprise only).","inputSchema":{"type":"object","properties":{"token_name":{"type":"string","description":"Name of the token to delete (required)"}},"required":["token_name"],"additionalProperties":false}},{"name":"cloud_list_database_tokens","description":"List all database tokens for InfluxDB Cloud-Dedicated cluster. Returns token information including permissions and creation dates.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"cloud_get_database_token","description":"Get details of a specific database token by ID for InfluxDB Cloud-Dedicated cluster.","inputSchema":{"type":"object","properties":{"token_id":{"type":"string","description":"The ID of the token to retrieve"}},"required":["token_id"],"additionalProperties":false}},{"name":"cloud_create_database_token","description":"Create a new database token for InfluxDB Cloud-Dedicated cluster. Specify exact permissions per database or create a no-access token.\n\nPermissions format: [{\"database\": \"db_name\", \"action\": \"read|write\"}, ...]\nExamples:\n• No access: omit permissions field or use []\n• Read-only on 'analytics': [{\"database\": \"analytics\", \"action\": \"read\"}]\n• Mixed permissions: [{\"database\": \"logs\", \"action\": \"read\"}, {\"database\": \"metrics\", \"action\": \"write\"}]\n• Full access: [{\"database\": \"*\", \"action\": \"read\"}, {\"database\": \"*\", \"action\": \"write\"}]","inputSchema":{"type":"object","properties":{"description":{"type":"string","description":"Description/name for the token"},"permissions":{"type":"array","items":{"type":"object","properties":{"database":{"type":"string","description":"Database name or '*' for all databases"},"action":{"type":"string","enum":["read","write"],"description":"Permission level for this database"}},"required":["database","action"],"additionalProperties":false},"description":"Array of permission objects. Each object specifies database and action. Leave empty array [] for no-access token."}},"required":["description"],"additionalProperties":false}},{"name":"cloud_update_database_token","description":"Update an existing database token for InfluxDB Cloud-Dedicated cluster. Can update description and/or permissions with precise control.\n\nPermissions format: [{\"database\": \"db_name\", \"action\": \"read|write\"}, ...]\nNote: Permissions completely replace existing ones - include all desired permissions.\nExamples:\n• No access: use []\n• Read-only on 'analytics': [{\"database\": \"analytics\", \"action\": \"read\"}]\n• Mixed permissions: [{\"database\": \"logs\", \"action\": \"read\"}, {\"database\": \"metrics\", \"action\": \"write\"}]\n• Full access: [{\"database\": \"*\", \"action\": \"read\"}, {\"database\": \"*\", \"action\": \"write\"}]","inputSchema":{"type":"object","properties":{"token_id":{"type":"string","description":"The ID of the token to update"},"description":{"type":"string","description":"New description for the token (optional)"},"permissions":{"type":"array","items":{"type":"object","properties":{"database":{"type":"string","description":"Database name or '*' for all databases"},"action":{"type":"string","enum":["read","write"],"description":"Permission level for this database"}},"required":["database","action"],"additionalProperties":false},"description":"Array of permission objects. Each object specifies database and action. Use empty array [] for no-access token."}},"required":["token_id"],"additionalProperties":false}},{"name":"cloud_delete_database_token","description":"Delete a database token from InfluxDB Cloud-Dedicated cluster. This action cannot be undone.","inputSchema":{"type":"object","properties":{"token_id":{"type":"string","description":"The ID of the token to delete"}},"required":["token_id"],"additionalProperties":false}},{"name":"health_check","description":"Check current connection status to the InfluxDB instance. Returns connection status, configuration, and available endpoint results. Health assessment is flexible - if any check passes (client initialization, /health endpoint, or /ping), the instance is considered healthy. Available checks depend on the InfluxDB product type and token configuration.","inputSchema":{"type":"object","properties":{},"additionalProperties":false}}]}} ``` Heres my MCP settings: ```json "influxdb": { "command": "node", "args": ["/Users/macfitton/influxdb3_mcp_server/build/index.js"], "env": { "INFLUX_DB_INSTANCE_URL": "http://localhost:8181/", "INFLUX_DB_TOKEN": "<YOUR_INFLUXDB_TOKEN>", "INFLUX_DB_PRODUCT_TYPE": "core" } } ``` I notice your logs are coming from `MCPCompatibilityLayer` instead of `MCPHypervisor`. What version of AnythingLLM are you using? ### Suggestions to Troubleshoot: 1. Try again but use the latest version of AnythingLLM 2. Verify your Influx DB is a version 3 db
yindo changed title from [BUG]: Cannot connect to InfluxDB 3 MCP server to [GH-ISSUE #4436] [BUG]: Cannot connect to InfluxDB 3 MCP server 2026-06-05 14:48:47 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Mintplex-Labs/anything-llm#2829