IoTDB MCP Server
OfficialIoTDB MCP 서버
개요
IoTDB를 통해 데이터베이스 상호작용 및 비즈니스 인텔리전스 기능을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버 구현입니다. 이 서버를 통해 SQL 쿼리를 실행할 수 있습니다.
Related MCP server: XiYan MCP Server
구성 요소
자원
서버는 어떤 리소스도 노출하지 않습니다.
프롬프트
서버는 어떠한 프롬프트도 제공하지 않습니다.
도구
이 서버는 IoTDB 트리 모델과 테이블 모델에 대한 다양한 도구를 제공합니다. "IOTDB_SQL_DIALECT" 구성을 "트리" 또는 "테이블"로 설정하여 원하는 도구를 선택할 수 있습니다.
트리 모델
metadata_query데이터베이스에서 메타데이터를 읽으려면 SHOW/COUNT 쿼리를 실행하세요.
입력:
query_sql(문자열): 실행할 SHOW/COUNT SQL 쿼리
반환: 객체 배열로 쿼리 결과
select_query데이터베이스에서 데이터를 읽기 위해 SELECT 쿼리를 실행합니다.
입력:
query_sql(문자열): 실행할 SELECT SQL 쿼리
반환: 객체 배열로 쿼리 결과
테이블 모델
쿼리 도구
read_query데이터베이스에서 데이터를 읽기 위해 SELECT 쿼리를 실행합니다.
입력:
query(문자열): 실행할 SELECT SQL 쿼리
반환: 객체 배열로 쿼리 결과
스키마 도구
list_tables데이터베이스의 모든 테이블 목록을 가져옵니다.
입력이 필요하지 않습니다
반환: 테이블 이름 배열
describe-table특정 테이블에 대한 스키마 정보 보기
입력:
table_name(문자열): 설명할 테이블의 이름
반환: 이름과 유형이 포함된 열 정의 배열
Claude 데스크톱 통합
필수 조건
uv패키지 관리자를 사용한 PythonIoTDB 설치
MCP 서버 종속성
개발
지엑스피1
Claude Desktop의 구성 파일에서 MCP 서버를 구성합니다.
맥OS
위치: ~/Library/Application Support/Claude/claude_desktop_config.json
윈도우
위치: %APPDATA%/Claude/claude_desktop_config.json
명령 필드에 uv 실행 파일의 전체 경로를 입력해야 할 수도 있습니다. MacOS/Linux에서는 which uv , Windows에서는 where uv 실행하여 경로를 확인할 수 있습니다.
{
"mcpServers": {
"iotdb": {
"command": "uv",
"args": [
"--directory",
"YOUR_REPO_PATH/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"
}
}
}
}Available Tools
4 toolsdescribe_tableC
Get the schema information for a specific table Args: table_name: name of the table to describe
| Name | Required | Description | Default |
|---|---|---|---|
| table_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves schema information but doesn't describe what that includes (e.g., column names, types, constraints), whether it's a read-only operation, potential errors (e.g., if the table doesn't exist), or any rate limits. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, but the structure could be improved. The first sentence states the purpose clearly, but the second sentence is formatted as an 'Args:' section, which might be redundant with the input schema. It's front-loaded but includes unnecessary formatting that doesn't add value beyond the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a schema retrieval tool with no annotations, no output schema, and low parameter documentation, the description is incomplete. It doesn't explain what the output includes (e.g., JSON structure, error handling), making it hard for an agent to use effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It adds minimal meaning by specifying that 'table_name' is the 'name of the table to describe', but this is basic and doesn't provide details like format, constraints, or examples. For a single parameter with no schema documentation, this is inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('schema information for a specific table'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'list_tables' (which might list table names without schema details) or 'read_query' (which might execute queries rather than describe structure), missing full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_tables' or 'export_table_query', nor does it specify prerequisites or contexts for use, leaving the agent to infer usage based on the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_table_queryA
Execute a query and export the results to a CSV or Excel file.
Args: query_sql: The SQL query to execute (using TABLE dialect, time using ISO 8601 format, e.g. 2017-11-01T00:08:00.000) format: Export format, either "csv" or "excel" (default: "csv") filename: Optional filename for the exported file. If not provided, a unique filename will be generated.
SQL Syntax: SELECT ⟨select_list⟩ FROM ⟨tables⟩ [WHERE ⟨condition⟩] [GROUP BY ⟨groups⟩] [HAVING ⟨group_filter⟩] [FILL ⟨fill_methods⟩] [ORDER BY ⟨order_expression⟩] [OFFSET ⟨n⟩] [LIMIT ⟨n⟩];
Returns: Information about the exported file and a preview of the data (max 10 rows)
| Name | Required | Description | Default |
|---|---|---|---|
| query_sql | Yes | ||
| format | No | csv | |
| filename | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and discloses key behavioral traits: it describes the export process, file format options, filename generation behavior, and preview limitations (max 10 rows). However, it doesn't mention potential side effects like file creation impacts, authentication needs, rate limits, or error handling for invalid SQL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, SQL Syntax, Returns) and front-loaded purpose statement. While comprehensive, some details like the full SQL syntax example might be excessive if the agent already understands SQL, but overall it's efficiently organized with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (query execution + file export), no annotations, no output schema, and 3 parameters, the description provides good coverage: purpose, parameters, SQL syntax, and return information. However, it could better address behavioral aspects like error conditions or file system impacts to be fully complete for this mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by providing detailed semantic information for all 3 parameters: query_sql (SQL query with dialect and time format specifics), format (export format options with default), and filename (optional with auto-generation behavior). It adds substantial value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('execute a query and export the results') and resources ('to a CSV or Excel file'), distinguishing it from sibling tools like describe_table, list_tables, and read_query which don't mention export functionality. It explicitly combines query execution with file export, making its unique role evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (to execute queries and export results to files), but doesn't explicitly state when not to use it or name alternatives among sibling tools. It implies usage for file exports but lacks explicit guidance on choosing between this and read_query for non-export scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesB
List all tables in the IoTDB database.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether it's read-only, pagination, rate limits, or error handling, leaving significant gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words or fluff. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple but incomplete description, the tool lacks context on behavior, output format, or usage scenarios. This is inadequate for a tool that might return a list of tables without further details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description appropriately doesn't discuss parameters, earning a high baseline score for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all tables in the IoTDB database'), providing a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'describe_table' or 'export_table_query', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'describe_table' or 'export_table_query'. The description only states what it does, without context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_queryB
Execute a SELECT query on the IoTDB. Please use table sql_dialect when generating SQL queries.
Args: query_sql: The SQL query to execute (using TABLE dialect, time using ISO 8601 format, e.g. 2017-11-01T00:08:00.000)
| Name | Required | Description | Default |
|---|---|---|---|
| query_sql | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the SQL dialect and time format, which is useful context. However, it doesn't disclose critical behavioral traits: whether this is read-only (though implied by SELECT), authentication requirements, rate limits, error handling, result format, or pagination. For a query execution tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by specific guidance and parameter details. The 'Args:' section is clear and adds necessary information. While efficient, it could be slightly more structured by separating usage guidelines from parameter documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (query execution with SQL), no annotations, no output schema, and 0% schema description coverage, the description is moderately complete. It covers the purpose, basic usage guidelines, and parameter semantics adequately. However, it lacks information about return values, error conditions, and behavioral constraints that would be needed for robust agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains that 'query_sql' is 'The SQL query to execute' and provides crucial context about the TABLE dialect and ISO 8601 time format. With only one parameter and the schema providing no descriptions, the description effectively compensates by explaining the parameter's purpose and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute a SELECT query on the IoTDB' - a specific verb (execute) and resource (SELECT query on IoTDB). It distinguishes itself from siblings like 'describe_table', 'export_table_query', and 'list_tables' by focusing on query execution rather than metadata or export operations. However, it doesn't explicitly differentiate itself from potential write operations or other query types beyond SELECT.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: 'Please use table sql_dialect when generating SQL queries' and mentions the TABLE dialect and ISO 8601 time format. However, it doesn't explicitly state when to use this tool versus alternatives like 'export_table_query' (which might handle results differently) or provide clear exclusion criteria for non-SELECT queries. The guidance is helpful but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- Changed
describe_table1 field changed- removed
Input schema / properties / table_name / titleRemoved value: -"Table Name"
- Changed
export_table_query3 fields changed- removed
Input schema / properties / filename / titleRemoved value: -"Filename" - removed
Input schema / properties / format / titleRemoved value: -"Format" - removed
Input schema / properties / query_sql / titleRemoved value: -"Query Sql"
- Changed
read_query1 field changed- removed
Input schema / properties / query_sql / titleRemoved value: -"Query Sql"
4 tool updates
- First observed
describe_table - First observed
export_table_query - First observed
list_tables - First observed
read_query
TDQS
The tools have distinct primary functions (describe, export, list, read), but there's significant overlap between export_table_query and read_query as both execute SQL queries. The descriptions clarify that export_table_query focuses on file export while read_query returns query results directly, but an agent might still confuse when to use each for data retrieval.
Three tools follow a consistent verb_noun pattern (describe_table, list_tables, export_table_query), while read_query deviates slightly by using 'read' instead of a more specific verb like 'execute' or 'run'. The naming is mostly predictable and readable, with only minor inconsistency in the verb choice for one tool.
Four tools is a reasonable count for a database server, allowing core operations without being overwhelming. However, it feels slightly thin for full IoTDB coverage, as it lacks tools for table creation, deletion, or data insertion, which might be expected in a complete database interface.
The toolset is severely incomplete for a database server. It covers read operations (list, describe, query) and export, but lacks any write capabilities (create, insert, update, delete) or administrative functions. This creates significant gaps that will cause agent failures when trying to perform basic database management tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
The Grafbase MCP server sits in front of a GraphQL API and exposes an MCP protocol-compliant interface that allows AI agents and LLMs to explore and query GraphQL APIs using natural language. It provides tools to search schemas, introspect types and fields, and execute GraphQL queries while minimizing context bloat by returning only relevant schema subsets, with built-in support for authentication, authorization, and configurable access control.
A Model Context Protocol server for Wix AI tools
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables SQL query execution, database management, and business intelligence capabilities through MySQL connections.1,090MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables natural language queries to MySQL databases, powered by XiYanSQL text-to-SQL technology.242Apache 2.0
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables executing SQL queries and managing connections with Microsoft SQL Server databases.13,3386MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that allows executing SELECT queries on TiDB databases, with optional support for INSERT, UPDATE, and DELETE operations when explicitly enabled.117-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/apache/iotdb-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server