使用说明
InfluxDB MCP服务器
用于InfluxDB集成的官方模型上下文协议(MCP)服务器。提供通过MCP客户端与InfluxDB v3(核心/企业/云专用)交互的工具、资源和提示。
先决条件
- InfluxDB实例:URL和令牌(核心/企业)或集群ID和令牌(云专用)
- Node.js:v18或更新版本(适用于npm/npx)
- npm:v9或更新版本(适用于npm/npx)
- 码头工人:(用于基于Docker的设置)
可用工具
| 工具名称 | 描述 | 可用性 |
|---|---|---|
get_help |
获取InfluxDB操作的帮助和故障排除指南 | 所有版本 |
write_line_protocol |
使用InfluxDB线路协议写入数据 | 所有版本 |
create_database |
创建新数据库(使用云专用配置选项) | 所有版本 |
update_database |
更新数据库配置(maxTables、保留期等) | 仅限云专用 |
delete_database |
按名称删除数据库(不可逆) | 所有版本 |
execute_query |
对数据库运行SQL查询(支持多种格式) | 所有版本 |
get_measurements |
列出数据库中的所有测量值(表) | 所有版本 |
get_measurement_schema |
获取度量/表的架构(列/类型) | 所有版本 |
create_admin_token |
创建新的管理员令牌(完全权限) | 仅限核心/企业 |
list_admin_tokens |
列出所有管理员令牌(可选过滤) | 仅限核心/企业 |
create_resource_token |
为特定数据库和权限创建资源令牌 | 仅限核心/企业 |
list_resource_tokens |
列出所有资源令牌(带过滤和排序) | 仅限核心/企业 |
delete_token |
按名称删除令牌 | 仅限核心/企业 |
regenerate_operator_token |
重新生成操作员令牌(危险/不可逆) | 仅限核心/企业 |
cloud_list_database_tokens |
列出云专用集群的所有数据库令牌 | 仅限云专用 |
cloud_get_database_token |
按ID获取特定数据库令牌的详细信息 | 仅限云专用 |
cloud_create_database_token |
为云专用集群创建新的数据库令牌 | 仅限云专用 |
cloud_update_database_token |
更新现有数据库令牌 | 仅限云专用 |
cloud_delete_database_token |
从云专用集群中删除数据库令牌 | 仅限云专用 |
list_databases |
列出实例中的所有可用数据库 | 所有版本 |
health_check |
检查InfluxDB连接和运行状况 | 所有版本 |
可用资源
| 资源名称 | 描述 |
|---|---|
influx-config |
对InfluxDB配置的只读访问 |
influx-status |
实时连接和健康状态 |
influx-databases |
实例中所有数据库的列表 |
设置和集成指南
1.环境变量
对于核心/企业InfluxDB:
您必须提供:
INFLUX_DB_INSTANCE_URL(例如。http://localhost:8181/)INFLUX_DB_TOKENINFLUX_DB_PRODUCT_TYPE(core或enterprise)
示例 .env:
INFLUX_DB_INSTANCE_URL=http://localhost:8181/
INFLUX_DB_TOKEN=your_influxdb_token_here
INFLUX_DB_PRODUCT_TYPE=core
对于云专用InfluxDB:
您必须提供 INFLUX_DB_PRODUCT_TYPE=cloud-dedicated 和 INFLUX_DB_CLUSTER_ID,再加上以下令牌组合之一:
选项1:仅数据库令牌 (仅限查询/写入操作):
INFLUX_DB_PRODUCT_TYPE=cloud-dedicated
INFLUX_DB_CLUSTER_ID=your_cluster_id_here
INFLUX_DB_TOKEN=your_database_token_here
选项2:仅管理令牌 (仅限数据库管理):
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
选项3:两种代币 (全功能):
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
看 env.cloud-dedicated.example 查看详细的配置选项和注释。
2.与MCP客户端集成
A.本地(npm安装并运行)
- 安装依赖项:
npm install - 构建服务器:
npm run build - 配置您的MCP客户端 使用内置的服务器。示例(参见
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.本地(npx,无需安装/构建)
- 直接使用npx运行 (发布到npm后,还不起作用):
{ "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
在运行Docker集成之前,您必须构建Docker镜像:
# Option 1: Use docker compose (recommended)
docker compose build
# Option 2: Use npm script
npm run docker:build
a) 带有远程InfluxDB实例的Docker (参见 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与InfluxDB在同一台机器上运行 (参见 example-docker.mcp.json):
使用 host.docker.internal 作为InfluxDB URL,以便MCP服务器容器可以访问InfluxDA容器:
{
"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"
}
}
}
}
示例用法
- 如上所述,使用MCP客户端调用工具、资源或提示。
- 请参阅
example-*.mcp.json即用型配置模板的文件:example-local.mcp.json-当地开发设置example-npx.mcp.json-基于NPX的设置example-docker.mcp.json-基于Docker的设置example-cloud-dedicated.mcp.json-云端专用,支持所有变量
- 请参阅
env.example和env.cloud-dedicated.example环境变量模板的文件。
支持和故障排除
- 使用
get_help用于内置帮助和故障排除的工具。 - 对于连接问题,请检查您的环境变量和InfluxDB实例状态。
- 有关高级配置,请参阅示例中的注释
.env以及MCP配置文件。