English | 中文
A Model Context Protocol (MCP) server implementation that provides database interaction and business intelligence capabilities through IoTDB. This server enables running SQL queries and interacting with IoTDB using different SQL dialects (Tree Model and Table Model).
The server doesn't expose any resources.
The server doesn't provide any prompts.
The server offers different tools for IoTDB Tree Model and Table Model. You can choose between them by setting the “IOTDB_SQL_DIALECT” configuration to either “tree” or “table”.
metadata_query
query_sql
(string): The SHOW/COUNT SQL query to executeselect_query
query_sql
(string): The SELECT SQL query to execute (using TREE dialect, time using ISO 8601 format, e.g. 2017-11-01T00:08:00.000)export_query
query_sql
(string): The SQL query to execute (using TREE dialect)format
(string): Export format, either “csv” or “excel” (default: “csv”)filename
(string): Optional filename for the exported file. If not provided, a unique filename will be generated.read_query
query_sql
(string): The SELECT SQL query to execute (using TABLE dialect, time using ISO 8601 format, e.g. 2017-11-01T00:08:00.000)list_tables
describe_table
table_name
(string): Name of table to describeexport_table_query
query_sql
(string): The SQL query to execute (using TABLE dialect)format
(string): Export format, either “csv” or “excel” (default: “csv”)filename
(string): Optional filename for the exported file. If not provided, a unique filename will be generated.IoTDB MCP Server supports the following configuration options, which can be set via environment variables or command-line arguments:
Option | Environment Variable | Default Value | Description |
---|---|---|---|
--host | IOTDB_HOST | 127.0.0.1 | IoTDB host address |
--port | IOTDB_PORT | 6667 | IoTDB port |
--user | IOTDB_USER | root | IoTDB username |
--password | IOTDB_PASSWORD | root | IoTDB password |
--database | IOTDB_DATABASE | test | IoTDB database name |
--sql-dialect | IOTDB_SQL_DIALECT | table | SQL dialect: tree or table |
--export-path | IOTDB_EXPORT_PATH | /tmp | Path for exporting query results |
IoTDB MCP Server includes the following performance optimization features:
uv
package manager# Clone the repository git clone https://github.com/apache/iotdb-mcp-server.git cd iotdb-mcp-server # Create virtual environment uv venv source venv/bin/activate # or `venv\Scripts\activate` on Windows # Install development dependencies uv sync
Configure the MCP server in Claude Desktop's configuration file:
Location: ~/Library/Application Support/Claude/claude_desktop_config.json
Location: %APPDATA%/Claude/claude_desktop_config.json
You may need to put the full path to the uv executable in the command field. You can get this by running which uv
on MacOS/Linux or where uv
on Windows.
Add the following configuration to Claude Desktop's configuration file:
{ "mcpServers": { "iotdb": { "command": "uv", "args": [ "--directory", "/Users/your_username/iotdb-mcp-server/src/iotdb_mcp_server", "run", "server.py" ], "env": { "IOTDB_HOST": "127.0.0.1", "IOTDB_PORT": "6667", "IOTDB_USER": "root", "IOTDB_PASSWORD": "root", "IOTDB_DATABASE": "test", "IOTDB_SQL_DIALECT": "table", "IOTDB_EXPORT_PATH": "/path/to/export/folder" } } } }
Note: Make sure to replace the
--directory
parameter's path with your actual repository clone path.
IoTDB MCP Server includes comprehensive error handling and logging capabilities:
You can build a container image for the IoTDB MCP Server using the Dockerfile
in the project root:
# Build Docker image docker build -t iotdb-mcp-server . # Run container docker run -e IOTDB_HOST=<your-iotdb-host> -e IOTDB_PORT=<your-iotdb-port> -e IOTDB_USER=<your-iotdb-user> -e IOTDB_PASSWORD=<your-iotdb-password> iotdb-mcp-server