diff --git a/api-docs/template.hbs b/api-docs/template.hbs index afed6e8be..8c8750a19 100755 --- a/api-docs/template.hbs +++ b/api-docs/template.hbs @@ -86,7 +86,10 @@ askAI.setAttribute('data-modal-title-color', '#fff'); askAI.setAttribute('data-modal-title-font-size', '1.25rem'); askAI.setAttribute('data-modal-lock-scroll', 'false'); - + // MCP server integration - enables "Use MCP" dropdown in widget header + askAI.setAttribute('data-mcp-enabled', 'true'); + askAI.setAttribute('data-mcp-server-url', 'https://influxdb-docs.mcp.kapa.ai'); + // Add the script to the document head document.head.appendChild(askAI); }); diff --git a/assets/js/ask-ai.ts b/assets/js/ask-ai.ts index 439728a6d..8a5b3c00d 100644 --- a/assets/js/ask-ai.ts +++ b/assets/js/ask-ai.ts @@ -121,6 +121,10 @@ function initializeChat({ modalHeaderBorderBottom: 'none', modalTitleColor: '#fff', modalTitleFontSize: '1.25rem', + // MCP server integration - enables "Use MCP" dropdown in widget header + // See: https://docs.kapa.ai/integrations/website-widget/configuration#mcp-install-menu + mcpEnabled: 'true', + mcpServerUrl: 'https://influxdb-docs.mcp.kapa.ai', }; const scriptUrl = 'https://widget.kapa.ai/kapa-widget.bundle.js'; diff --git a/assets/js/components/format-selector.ts b/assets/js/components/format-selector.ts index 590c85876..c7eb21904 100644 --- a/assets/js/components/format-selector.ts +++ b/assets/js/components/format-selector.ts @@ -33,9 +33,8 @@ interface FormatSelectorConfig { chatGptUrl: string; claudeUrl: string; - // Future MCP server links - mcpCursorUrl?: string; - mcpVSCodeUrl?: string; + // Documentation MCP server link + mcpDocsUrl?: string; } interface FormatSelectorOption { @@ -135,9 +134,8 @@ export default function FormatSelector(options: ComponentOptions) { chatGptUrl: generateChatGPTUrl(pageTitle, currentUrl, markdownUrl), claudeUrl: generateClaudeUrl(pageTitle, currentUrl, markdownUrl), - // Future MCP server links - mcpCursorUrl: component.dataset.mcpCursorUrl, - mcpVSCodeUrl: component.dataset.mcpVSCodeUrl, + // Documentation MCP server link + mcpDocsUrl: component.dataset.mcpDocsUrl, }; // Update button label based on page type @@ -406,38 +404,21 @@ export default function FormatSelector(options: ComponentOptions) { } */ - // Future: MCP server options - // Commented out for now - will be implemented as future enhancement - /* - if (config.mcpCursorUrl) { + // Option 4: Connect to documentation MCP server + if (config.mcpDocsUrl) { options.push({ - label: 'Connect to Cursor', - sublabel: 'Install MCP Server on Cursor', - icon: 'cursor', - action: () => handleExternalLink(config.mcpCursorUrl!), - href: config.mcpCursorUrl, + label: 'Connect to documentation MCP', + sublabel: 'Query docs from your IDE with AI agents', + icon: 'mcp', + action: () => handleExternalLink(config.mcpDocsUrl!), + href: config.mcpDocsUrl, target: '_blank', external: true, visible: true, - dataAttribute: 'connect-cursor', + dataAttribute: 'connect-mcp-docs', }); } - if (config.mcpVSCodeUrl) { - options.push({ - label: 'Connect to VS Code', - sublabel: 'Install MCP Server on VS Code', - icon: 'vscode', - action: () => handleExternalLink(config.mcpVSCodeUrl!), - href: config.mcpVSCodeUrl, - target: '_blank', - external: true, - visible: true, - dataAttribute: 'connect-vscode', - }); - } - */ - return options.filter((opt) => opt.visible); } @@ -475,6 +456,11 @@ export default function FormatSelector(options: ComponentOptions) { `, + mcp: ` + + + + `, }; return icons[iconName] || icons.document; } diff --git a/content/enterprise_influxdb/v1/tools/mcp-server.md b/content/enterprise_influxdb/v1/tools/mcp-server.md new file mode 100644 index 000000000..5e5025354 --- /dev/null +++ b/content/enterprise_influxdb/v1/tools/mcp-server.md @@ -0,0 +1,15 @@ +--- +title: Use the InfluxDB documentation MCP server +description: > + Query InfluxDB documentation from your IDE using the InfluxDB documentation + MCP server. +menu: + enterprise_influxdb_v1: + name: Documentation MCP server + parent: Tools +weight: 100 +enterprise_influxdb/v1/tags: [MCP, LLM, AI] +source: /shared/influxdb3-admin/mcp-server-docs-only.md +--- + + diff --git a/content/influxdb/cloud/reference/mcp-server.md b/content/influxdb/cloud/reference/mcp-server.md new file mode 100644 index 000000000..25ad9d323 --- /dev/null +++ b/content/influxdb/cloud/reference/mcp-server.md @@ -0,0 +1,15 @@ +--- +title: Use the InfluxDB documentation MCP server +description: > + Query InfluxDB documentation from your IDE using the InfluxDB documentation + MCP server. +menu: + influxdb_cloud: + name: Documentation MCP server + parent: Reference +weight: 206 +influxdb/cloud/tags: [MCP, LLM, AI] +source: /shared/influxdb3-admin/mcp-server-docs-only.md +--- + + diff --git a/content/influxdb/v1/tools/mcp-server.md b/content/influxdb/v1/tools/mcp-server.md new file mode 100644 index 000000000..ca6c74d58 --- /dev/null +++ b/content/influxdb/v1/tools/mcp-server.md @@ -0,0 +1,15 @@ +--- +title: Use the InfluxDB documentation MCP server +description: > + Query InfluxDB documentation from your IDE using the InfluxDB documentation + MCP server. +menu: + influxdb_v1: + name: Documentation MCP server + parent: Tools +weight: 100 +influxdb/v1/tags: [MCP, LLM, AI] +source: /shared/influxdb3-admin/mcp-server-docs-only.md +--- + + diff --git a/content/influxdb/v2/reference/mcp-server.md b/content/influxdb/v2/reference/mcp-server.md new file mode 100644 index 000000000..344525dc3 --- /dev/null +++ b/content/influxdb/v2/reference/mcp-server.md @@ -0,0 +1,15 @@ +--- +title: Use the InfluxDB documentation MCP server +description: > + Query InfluxDB documentation from your IDE using the InfluxDB documentation + MCP server. +menu: + influxdb_v2: + name: Documentation MCP server + parent: Reference +weight: 206 +influxdb/v2/tags: [MCP, LLM, AI] +source: /shared/influxdb3-admin/mcp-server-docs-only.md +--- + + diff --git a/content/influxdb3/cloud-dedicated/get-started/setup.md b/content/influxdb3/cloud-dedicated/get-started/setup.md index 6def4564c..58c7217ac 100644 --- a/content/influxdb3/cloud-dedicated/get-started/setup.md +++ b/content/influxdb3/cloud-dedicated/get-started/setup.md @@ -15,6 +15,7 @@ metadata: [1 / 3] related: - /influxdb3/cloud-dedicated/admin/databases/ - /influxdb3/cloud-dedicated/admin/tokens/ + - /influxdb3/cloud-dedicated/admin/mcp-server/ - /influxdb3/cloud-dedicated/reference/cli/influxctl/ - /influxdb3/cloud-dedicated/reference/api/ --- diff --git a/content/influxdb3/cloud-serverless/admin/identify-version.md b/content/influxdb3/cloud-serverless/admin/identify-version.md index 2c7e6c562..e02af8518 100644 --- a/content/influxdb3/cloud-serverless/admin/identify-version.md +++ b/content/influxdb3/cloud-serverless/admin/identify-version.md @@ -4,7 +4,7 @@ description: Learn how to identify your InfluxDB Cloud Serverless instance throu menu: influxdb3_cloud_serverless: name: Identify version - parent: Administer InfluxDB + parent: Administer InfluxDB Cloud weight: 10 source: /shared/identify-version.md related: diff --git a/content/influxdb3/cloud-serverless/get-started/setup.md b/content/influxdb3/cloud-serverless/get-started/setup.md index 7939c5bb8..7b303132d 100644 --- a/content/influxdb3/cloud-serverless/get-started/setup.md +++ b/content/influxdb3/cloud-serverless/get-started/setup.md @@ -17,6 +17,7 @@ related: - /influxdb3/cloud-serverless/security/tokens/create-token/ - /influxdb3/cloud-serverless/security/tokens/view-tokens/ - /influxdb3/cloud-serverless/admin/buckets/ + - /influxdb3/cloud-serverless/reference/mcp-server/ - /influxdb3/cloud-serverless/reference/cli/influx/ - /influxdb3/cloud-serverless/reference/api/ aliases: diff --git a/content/influxdb3/cloud-serverless/reference/mcp-server.md b/content/influxdb3/cloud-serverless/reference/mcp-server.md new file mode 100644 index 000000000..469e74b4d --- /dev/null +++ b/content/influxdb3/cloud-serverless/reference/mcp-server.md @@ -0,0 +1,15 @@ +--- +title: Use the InfluxDB documentation MCP server +description: > + Query InfluxDB documentation from your IDE using the InfluxDB documentation + MCP server. +menu: + influxdb3_cloud_serverless: + name: Documentation MCP server + parent: Reference +weight: 206 +influxdb3/cloud-serverless/tags: [MCP, LLM, AI] +source: /shared/influxdb3-admin/mcp-server-docs-only.md +--- + + diff --git a/content/influxdb3/clustered/get-started/setup.md b/content/influxdb3/clustered/get-started/setup.md index c83430db8..057e96083 100644 --- a/content/influxdb3/clustered/get-started/setup.md +++ b/content/influxdb3/clustered/get-started/setup.md @@ -14,6 +14,7 @@ weight: 101 metadata: [1 / 3] related: - /influxdb3/clustered/admin/databases/ + - /influxdb3/clustered/admin/mcp-server/ - /influxdb3/clustered/reference/cli/influxctl/ - /influxdb3/clustered/reference/api/ --- diff --git a/content/influxdb3/clustered/reference/mcp-server.md b/content/influxdb3/clustered/reference/mcp-server.md new file mode 100644 index 000000000..46ebd1e5c --- /dev/null +++ b/content/influxdb3/clustered/reference/mcp-server.md @@ -0,0 +1,15 @@ +--- +title: Use the InfluxDB documentation MCP server +description: > + Query InfluxDB documentation from your IDE using the InfluxDB documentation + MCP server. +menu: + influxdb3_clustered: + name: Documentation MCP server + parent: Reference +weight: 206 +influxdb3/clustered/tags: [MCP, LLM, AI] +source: /shared/influxdb3-admin/mcp-server-docs-only.md +--- + + diff --git a/content/influxdb3/core/get-started/setup.md b/content/influxdb3/core/get-started/setup.md index 3717033a5..d4de3c966 100644 --- a/content/influxdb3/core/get-started/setup.md +++ b/content/influxdb3/core/get-started/setup.md @@ -11,6 +11,7 @@ weight: 3 related: - /influxdb3/core/install/ - /influxdb3/core/admin/tokens/ + - /influxdb3/core/admin/mcp-server/ - /influxdb3/core/reference/config-options/ source: /shared/influxdb3-get-started/setup.md --- diff --git a/content/influxdb3/enterprise/get-started/setup.md b/content/influxdb3/enterprise/get-started/setup.md index 04b6eb1e8..71642da16 100644 --- a/content/influxdb3/enterprise/get-started/setup.md +++ b/content/influxdb3/enterprise/get-started/setup.md @@ -11,6 +11,7 @@ weight: 101 related: - /influxdb3/enterprise/install/ - /influxdb3/enterprise/admin/tokens/ + - /influxdb3/enterprise/admin/mcp-server/ - /influxdb3/enterprise/reference/config-options/ source: /shared/influxdb3-get-started/setup.md --- diff --git a/content/shared/influxdb3-admin/mcp-server-docs-only.md b/content/shared/influxdb3-admin/mcp-server-docs-only.md new file mode 100644 index 000000000..9629bc8ff --- /dev/null +++ b/content/shared/influxdb3-admin/mcp-server-docs-only.md @@ -0,0 +1,103 @@ +The **InfluxDB documentation MCP server** lets AI tools and agents search InfluxDB +documentation directly from your development environment. +Use it to find answers, code examples, and configuration details without leaving your IDE. + +## Why use the documentation MCP server? + +When you connect the documentation MCP server to your AI coding assistant, the assistant +can search InfluxDB documentation to answer your questions with accurate, up-to-date information. +Instead of switching to a browser or guessing at syntax, you can ask questions +in your IDE and get responses grounded in official documentation. + +**Common use cases:** + +- Get help writing queries, client library code, or CLI commands +- Look up configuration options and environment variables +- Find code examples for specific tasks +- Troubleshoot errors with documentation-backed answers + +## Install the documentation MCP server + +The documentation MCP server is a hosted service—you don't need to install or run anything locally. +Add the server URL to your AI tool's MCP configuration. + +> [!Note] +> On first use, you'll be prompted to sign in with Google. +> This authentication is used only for rate limiting—no personal data is collected. + +**MCP server URL:** + +```text +https://influxdb-docs.mcp.kapa.ai +``` + +The server uses SSE (Server-Sent Events) transport. +For help adding MCP servers, refer to your tool's documentation or ask your AI assistant. + +## Authentication and rate limits + +When you connect to the documentation MCP server for the first time, a Google sign-in +window opens to complete an OAuth/OpenID Connect login. + +The hosted MCP server: + +- Requests only the `openid` scope from Google +- Receives an ID token (JWT) containing a stable, opaque user ID +- Does not request `email` or `profile` scopes—your name, email address, and other + personal data are not collected + +The anonymous Google ID enforces per-user rate limits to prevent abuse: + +- **40 requests** per user per hour +- **200 requests** per user per day + +> [!Tip] +> On Google's consent screen, this appears as "Associate you with your personal info on Google." +> This is Google's generic wording for the `openid` scope—it means the app can recognize +> that the same Google account is signing in again. +> It does not grant access to your email, name, contacts, or other data. + +## Search documentation with the MCP tool + +The documentation MCP server exposes a semantic search tool: + +```text +search_influxdb_knowledge_sources +``` + +This tool lets AI agents perform semantic retrieval over InfluxDB documentation +and related knowledge sources. + +**What the tool does:** + +- Searches all InfluxDB documentation for a given query +- Returns the most relevant chunks in descending order of relevance +- Each chunk is a self-contained snippet from a single documentation page + +**Response format:** + +Each result includes: + +- `source_url`: URL of the original documentation page +- `content`: The chunk content in Markdown + +{{< img-hd src="/img/influxdb3/core-mcp-influxdb3-plugin.png" alt="MCP tool search results showing InfluxDB documentation" />}} + +## Use the documentation MCP server + +After you install the documentation MCP server, your AI assistant can search InfluxDB +documentation to help you with tasks. +Ask questions naturally—the assistant uses the MCP server to find relevant documentation +and provide accurate answers. + +### Example prompts + +> "How do I write data to InfluxDB using Python?" +> +> "What's the syntax for a SQL query with a WHERE clause in InfluxDB?" +> +> "Show me how to configure Telegraf to collect CPU metrics." +> +> "What environment variables does the InfluxDB CLI use?" +> +> "How do I create a database token with read-only permissions?" diff --git a/content/shared/influxdb3-admin/mcp-server.md b/content/shared/influxdb3-admin/mcp-server.md index 8da885aff..beda6f6c2 100644 --- a/content/shared/influxdb3-admin/mcp-server.md +++ b/content/shared/influxdb3-admin/mcp-server.md @@ -1,13 +1,20 @@ -The **InfluxDB Model Context Protocol (MCP) server** lets you interact with +InfluxDB provides two Model Context Protocol (MCP) servers for integrating with AI assistants: + +- [Manage your InfluxDB instance with the database MCP server](#manage-your-influxdb-instance-with-the-database-mcp-server) +- [Query InfluxDB documentation from your IDE](#query-influxdb-documentation-from-your-ide) + +## Manage your InfluxDB instance with the database MCP server + +The **InfluxDB database 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 +This section walks you through configuring your LLM agent to run and use the +InfluxDB database 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 +### Prerequisites - Node.js v18+ _(if using `npx` to run the MCP server)_ - Docker _(if using Docker to run the MCP server)_ @@ -18,14 +25,14 @@ InfluxDB MCP server to interact with your {{% show-in "cloud-dedicated,clustered" %}}- Valid {{% product-name %}} [management and database tokens](/influxdb3/cloud-dedicated/admin/tokens/){{% /show-in %}} - _(Optional)_ An LLM assistant like Claude Desktop, ChatGPT Desktop, etc. -## Configure the MCP server +### Configure the database 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 +#### Required InfluxDB connection variables {{% show-in "core,enterprise" %}} @@ -52,11 +59,11 @@ Set the following environment variables when you start the MCP server: {{% show-in "enterprise" %}} - **INFLUX_DB_TOKEN**: Your {{% product-name %}} [admin token](/influxdb3/enterprise/admin/tokens/admin) or [resource token](/influxdb3/enterprise/admin/tokens/resource). - + > [!Note] > If using a resource token, your LLM agent can only perform the operations > allowed by the token permissions. - + {{% /show-in %}} {{% show-in "cloud-dedicated,clustered" %}} @@ -76,14 +83,14 @@ Set the following environment variables when you start the MCP server: {{% /show-in %}} -## Configure your LLM agent to run the MCP server +### Configure your LLM agent to run the database MCP server -To run the MCP, user either Node.js and `npm` or Docker to run the server. +To run the MCP server, use either Node.js and `npm` or Docker. Some LLM agents, like [Claude Desktop](https://claude.ai/download), start, run, -and connect to the MCP server for you: +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. +The following instructions show how to configure +**Claude Desktop** to use the InfluxDB database MCP server. {{< tabs-wrapper >}} {{% tabs %}} @@ -116,9 +123,9 @@ The following instructions provide information for how to configure 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 +#### Configure your LLM Agent to use the Node.js-based MCP server -In **Claude Desktop**, go to **Settings** > **Developers** and edit your configuration. +In **Claude Desktop**, go to **Settings** > **Developer** and edit your configuration. Enter the following JSON configuration: {{% show-in "core,enterprise" %}} @@ -160,11 +167,11 @@ Replace the following: "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" + "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" } } } @@ -176,10 +183,10 @@ 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_CLUSTER_ID`{{% /code-placeholder-key %}}: + Your {{% product-name omit=" Clustered" %}} cluster ID - {{% code-placeholder-key %}}`DEDICATED_DATABASE_TOKEN`{{% /code-placeholder-key %}}: A [database token](/influxdb3/cloud-dedicated/admin/tokens/database/) with permissions that grant access to all databases you would like your LLM agent @@ -195,9 +202,9 @@ Replace the following: {{% tab-content %}} -### Configure your LLM Agent to use the Docker-based MCP server +#### Configure your LLM Agent to use the Docker-based MCP server -In **Claude Desktop**, go to **Settings** > **Developers** and edit your configuration. +In **Claude Desktop**, go to **Settings** > **Developer** and edit your configuration. Enter the following JSON configuration: {{% show-in "core,enterprise" %}} @@ -214,7 +221,7 @@ In the examples below, replace the following: determine what operations your LLM agents can perform. -#### Connect to a remote InfluxDB server +##### Connect to a remote InfluxDB server {{% code-placeholders "path/to|AUTH_TOKEN" %}} ```json @@ -245,7 +252,7 @@ In the examples below, replace the following: ``` {{% /code-placeholders %}} -#### Connect to a local InfluxDB server +##### Connect to a local InfluxDB server {{% code-placeholders "path/to|AUTH_TOKEN" %}} ```json @@ -257,7 +264,7 @@ In the examples below, replace the following: "run", "--rm", "--interactive", - "--add-host=host.docker.internal:host-gateway" + "--add-host=host.docker.internal:host-gateway", "--env", "INFLUX_DB_PRODUCT_TYPE", "--env", @@ -304,11 +311,11 @@ In the examples below, replace the following: "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" + "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" } } } @@ -318,8 +325,6 @@ In the examples below, replace the following: 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 %}}: @@ -338,9 +343,9 @@ Replace the following: {{% /tab-content %}} {{< /tabs-wrapper >}} -### Supported Features +### Supported features -Once connected, you can use your LLM agent to perform tasks on your +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: @@ -350,14 +355,120 @@ including: - Query data without writing SQL or InfluxQL - Check server health and connection status -##### Examples of supported prompts +#### Examples of supported prompts -> “List all tables in the `production` database.” +> "List all tables in the `production` database." > -> “Create a read-only token for the `metrics` database.” +> "Create a read-only token for the `metrics` database." > -> “Analyze last week’s sensor data for anomalies.” +> "Analyze last week's sensor data for anomalies." > -> “Create a new database called `iot_sensors` with a 30-day retention policy.” +> "Create a new database called `iot_sensors` with a 30-day retention policy." > -> “Show me the schema for the `sensor_data` table.” +> "Show me the schema for the `sensor_data` table." + +## Query InfluxDB documentation from your IDE + +The **InfluxDB documentation MCP server** lets AI tools and agents search InfluxDB +documentation directly from your development environment. +Use it to find answers, code examples, and configuration details without leaving your IDE. + +### Why use the documentation MCP server? + +When you connect the documentation MCP server to your AI coding assistant, the assistant +can search InfluxDB documentation to answer your questions with accurate, up-to-date information. +Instead of switching to a browser or guessing at syntax, you can ask questions +in your IDE and get responses grounded in official documentation. + +**Common use cases:** + +- Get help writing queries, client library code, or CLI commands +- Look up configuration options and environment variables +- Find code examples for specific tasks +- Troubleshoot errors with documentation-backed answers + +### Install the documentation MCP server + +The documentation MCP server is a hosted service—you don't need to install or run anything locally. +Add the server URL to your AI tool's MCP configuration. + +> [!Note] +> On first use, you'll be prompted to sign in with Google. +> This authentication is used only for rate limiting—no personal data is collected. + +**MCP server URL:** + +```text +https://influxdb-docs.mcp.kapa.ai +``` + +The server uses SSE (Server-Sent Events) transport. +For help adding MCP servers, refer to your tool's documentation or ask your AI assistant. + +### Authentication and rate limits + +When you connect to the documentation MCP server for the first time, a Google sign-in +window opens to complete an OAuth/OpenID Connect login. + +The hosted MCP server: + +- Requests only the `openid` scope from Google +- Receives an ID token (JWT) containing a stable, opaque user ID +- Does not request `email` or `profile` scopes—your name, email address, and other + personal data are not collected + +The anonymous Google ID enforces per-user rate limits to prevent abuse: + +- **40 requests** per user per hour +- **200 requests** per user per day + +> [!Tip] +> On Google's consent screen, this appears as "Associate you with your personal info on Google." +> This is Google's generic wording for the `openid` scope—it means the app can recognize +> that the same Google account is signing in again. +> It does not grant access to your email, name, contacts, or other data. + +### Search documentation with the MCP tool + +The documentation MCP server exposes a semantic search tool: + +```text +search_influxdb_knowledge_sources +``` + +This tool lets AI agents perform semantic retrieval over InfluxDB documentation +and related knowledge sources. + +**What the tool does:** + +- Searches all InfluxDB documentation for a given query +- Returns the most relevant chunks in descending order of relevance +- Each chunk is a self-contained snippet from a single documentation page + +**Response format:** + +Each result includes: + +- `source_url`: URL of the original documentation page +- `content`: The chunk content in Markdown + +{{< img-hd src="/img/influxdb3/core-mcp-influxdb3-plugin.png" alt="MCP tool search results showing InfluxDB documentation" />}} + +### Use the documentation MCP server + +After you install the documentation MCP server, your AI assistant can search InfluxDB +documentation to help you with tasks. +Ask questions naturally—the assistant uses the MCP server to find relevant documentation +and provide accurate answers. + +#### Example prompts + +> "How do I write data to InfluxDB using Python?" +> +> "What's the syntax for a SQL query with a WHERE clause in InfluxDB?" +> +> "Show me how to configure Telegraf to collect CPU metrics." +> +> "What environment variables does the InfluxDB CLI use?" +> +> "How do I create a database token with read-only permissions?" diff --git a/content/telegraf/v1/mcp-server.md b/content/telegraf/v1/mcp-server.md new file mode 100644 index 000000000..5c6f23555 --- /dev/null +++ b/content/telegraf/v1/mcp-server.md @@ -0,0 +1,14 @@ +--- +title: Use the InfluxDB documentation MCP server +description: > + Query InfluxDB documentation from your IDE using the InfluxDB documentation + MCP server. +menu: + telegraf_v1_ref: + name: Documentation MCP server +weight: 206 +tags: [MCP, LLM, AI] +source: /shared/influxdb3-admin/mcp-server-docs-only.md +--- + + diff --git a/layouts/partials/article/format-selector.html b/layouts/partials/article/format-selector.html index b9c36f0bc..73646e3f5 100644 --- a/layouts/partials/article/format-selector.html +++ b/layouts/partials/article/format-selector.html @@ -33,6 +33,34 @@ {{- $sectionDownloadUrl = printf "%s-download.zip" .RelPermalink -}} {{- end -}} +{{/* Determine product-specific MCP docs URL based on current page path */}} +{{- $mcpDocsUrl := "" -}} +{{- $path := .RelPermalink -}} +{{- if hasPrefix $path "/influxdb3/core/" -}} + {{- $mcpDocsUrl = "/influxdb3/core/admin/mcp-server/" -}} +{{- else if hasPrefix $path "/influxdb3/enterprise/" -}} + {{- $mcpDocsUrl = "/influxdb3/enterprise/admin/mcp-server/" -}} +{{- else if hasPrefix $path "/influxdb3/cloud-dedicated/" -}} + {{- $mcpDocsUrl = "/influxdb3/cloud-dedicated/admin/mcp-server/" -}} +{{- else if hasPrefix $path "/influxdb3/cloud-serverless/" -}} + {{- $mcpDocsUrl = "/influxdb3/cloud-serverless/reference/mcp-server/" -}} +{{- else if hasPrefix $path "/influxdb3/clustered/" -}} + {{- $mcpDocsUrl = "/influxdb3/clustered/reference/mcp-server/" -}} +{{- else if hasPrefix $path "/influxdb/cloud/" -}} + {{- $mcpDocsUrl = "/influxdb/cloud/reference/mcp-server/" -}} +{{- else if hasPrefix $path "/influxdb/v2/" -}} + {{- $mcpDocsUrl = "/influxdb/v2/reference/mcp-server/" -}} +{{- else if hasPrefix $path "/influxdb/v1/" -}} + {{- $mcpDocsUrl = "/influxdb/v1/tools/mcp-server/" -}} +{{- else if hasPrefix $path "/enterprise_influxdb/v1/" -}} + {{- $mcpDocsUrl = "/enterprise_influxdb/v1/tools/mcp-server/" -}} +{{- else if hasPrefix $path "/telegraf/" -}} + {{- $mcpDocsUrl = "/telegraf/v1/mcp-server/" -}} +{{- else -}} + {{/* Default to Core docs for other products (Flux, Kapacitor, Chronograf) */}} + {{- $mcpDocsUrl = "/influxdb3/core/admin/mcp-server/" -}} +{{- end -}} + {{/* Only show format selector on documentation pages, not on special pages */}} {{- if not (in .RelPermalink "/search") -}} @@ -44,9 +72,8 @@ {{- if $sectionDownloadUrl }} data-section-download-url="{{ $sectionDownloadUrl }}" {{- end }} - {{- /* Future MCP server URLs - commented out for now */ -}} - {{- /* data-mcp-cursor-url="/docs/mcp/cursor-setup/" */ -}} - {{- /* data-mcp-vscode-url="/docs/mcp/vscode-setup/" */ -}} + {{- /* Documentation MCP server URL - link to product-specific setup docs */ -}} + data-mcp-docs-url="{{ $mcpDocsUrl }}" > {{/* Button triggers dropdown */}}