在之前发布的内容中,我们曾介绍过时序数据库 IoTDB 实现了 IoTDB MCP Server 功能。借助该功能,用户只需用自然语言描述需求,例如“查询 2025 年 3 月 19 日所有基站的整流模块电流平均值”,大模型便能自动调用相应的查询函数,直接与 IoTDB 交互并获取所需数据。
值得一提的是,IoTDB MCP Server 已被多个社区/网站收录:
官方 MCP Server:Anthropic 公司开源,时序数据库 IoTDB 已被 MCP 开源社区收录在 GitHub README 的“官方集成”板块中
魔搭社区:阿里云推出的 AI 大模型开源社区,为开发者模型体验、下载、调优、训练、推理、部署等提供一站式服务
Smithery 网站:集中收录 MCP Server 的网站,提供多种 MCP Client 配置命令,可以直接复制
MCPSvr 网站:从 5ire 衍生出的开源项目,目的是提供一个开放的 MCP Servers 市场
为什么我们如此关注 MCP?为什么我们认为,MCP 为时序数据库和 AI 的融合创新带来了更加易用的解决方案?我们将为您一一说明。
01 快速回顾:MCP 是什么
MCP,全称为 Model Context Protocol,即模型上下文协议,由 Anthropic 公司建立并开源。它就像是一座桥梁,一端连接着数据源,另一端连接着 AI 驱动的工具,极大地简化了大模型与数据、工具及服务之间的交互方式。
MCP 的架构主要包含 MCP 服务器和 MCP 客户端两个核心部分。开发人员可以通过 MCP 服务器公开自己的数据,这些数据可以来自本地的文件系统、数据库,也可以来自诸如第三方 API 的远程服务。连接到这些服务器的 AI 应用程序就是 MCP 客户端,主要负责访问这些数据。
MCP 的工作原理主要分为四步:
1. 用户提出问题后,MCP 客户端把问题和 MCP 服务器工具一起发给大模型。
2. 大模型返回需要调用哪些工具,MCP 客户端调用对应工具,获取数据执行结果。
3. MCP 客户端将本次结果、用户提出的问题及工具再发给大模型。
4. 重复以上步骤,直到大模型返回完整的问题解答,结果通过 MCP 客户端返回给用户。
02 为什么所有 AI 玩家都在讨论 MCP?
为什么 MCP 成为当下大热点?主要有以下几个原因:
(1) 增强大模型能力
以往的大模型如同一个知识渊博却被困在屋子里的人,只能凭借静态知识库中的公开知识来回答问题,无法直接获取实时数据或与外部系统交互。比如不能直接访问数据库中的最新信息,也无法借助外部工具完成特定任务。这使得大模型基于本地数据库进行训练并实现私有化部署变得非常困难。
MCP 的出现打破了这种局限,赋予大模型更多“外挂工具”。大模型借此能够连接数据库、访问本地文件、调用第三方 API 服务,进而提升自身的性能和表现。大模型不再仅仅是“公用的知识专家”,还成为了“私人的数据助手”。如此一来,用户便能基于 IoTDB 存储的工业时序数据,真正将时序大模型应用到实际场景中。
(2) 简化交互流程
在 MCP 出现之前,开发者要想让大模型与不同数据源交互,需为每个数据源编写单独的连接器。这就好比想要连接不同的电器设备,却要为每个设备准备特定的插头,非常麻烦。MCP 制定了统一规范,为所有数据源提供了一个类似“通用插头”或“USB 接口”的标准化接口。借助这个接口,无论是连接数据库、第三方 API,还是本地文件等各类外部资源,都能轻松实现,既简单又高效。
因此,MCP 在时序数据库 IoTDB 的功能实现无疑满足了用户使用时序大模型时的多样化需求,减少了时序大模型的使用和学习成本。
(3) 打破数据孤岛
传统的数据集成方式很容易形成数据孤岛。不同的数据库、文件系统和服务,因各自的接口、协议和数据格式存在差异,与其他数据源之间常常缺乏连接,导致大模型无法充分利用数据资源。MCP 的出现打破了这些数据孤岛之间的壁垒,大模型得以用统一的方式访问各类数据源,数据的流动和共享变得更加便捷。
工业场景时序数据管理可能涉及设备管理、故障诊断、数字孪生等多类系统,利用 IoTDB MCP Server,时序大模型能够实现不同系统数据的集成、访问和运用,在提升时序大模型结果准确性的同时,为企业的决策提供更全面、准确的支持。
03 IoTDB MCP 新增:树表双模型支持
通过上面的详细解读,大家应该已经理解了 MCP 对于时序大模型深度应用的重要性。MCP 让 IoTDB 的时序大模型“看得懂”实际场景需求,用户使用时序大模型也就会更加丝滑,能通过 IoTDB 时序大模型做到的查询计算也就会越来越深入了。
在之前对 IoTDB MCP Server 功能的介绍中,我们详细解读了 MCP 在 IoTDB 表模型数据库架构下的功能、应用场景以及对应的使用流程。现在,我们很高兴地宣布,IoTDB MCP 针对树模型架构也完成了功能实现,目前 MCP 已支持树表双模型的使用!
针对 MCP 在 IoTDB 树模型方向实现的功能情况,我们总结如下:
(1) 核心功能
1. 查询工具
select_query:执行 SELECT 查询语句,从数据库中读取数据,大模型提供一个 SELECT SQL 查询语句作为输入,函数就会返回查询结果,大模型会读取到表的文本形式(列以逗号分隔)。例如,如果你想要查询某个设备在过去一周内的温度数据,可以用自然语言描述这个需求,大模型就会调用 select_query 函数,传入相应的 SQL 查询语句,然后返回温度数据。
2. 元数据工具
metadata_query:执行测点管理中的查询语句,比如查看或统计数据库、设备模板、时间序列等信息,大模型提供一个 SHOW / COUNT 语句作为输入,函数会返回元数据的详细信息或统计结果。例如,可以用自然语言询问某个数据库中有哪些时间序列,大模型就会调用 metadata_query,并生成 SQL 语句 SHOW timeseries root.xx.** 作为输入,然后获取时间序列信息。
(2) 使用流程
使用 IoTDB MCP Server 需要满足一些前提条件:
安装 Python,并使用 uv 包管理器(pip install uv)
安装并运行 IoTDB 数据库实例(可点击下载)
安装 IoTDB MCP Server 的依赖项
接下来,按照以下步骤进行操作:
1. 克隆仓库
打开终端,运行以下命令克隆 IoTDB MCP Server 的代码仓库:
git clone https://github.com/apache/iotdb-mcp-server.git
cd iotdb_mcp_server
2. 创建虚拟环境
使用 uv 创建虚拟环境,并激活它:
uv venv
source venv/bin/activate # 或在 Windows 上使用 venv\Scripts\activate
3. 安装依赖
在虚拟环境中,运行以下命令安装开发依赖:
uv sync
4. 配置集成(以 Claude Desktop 为例)
根据你的操作系统,找到 Claude Desktop 的配置文件:
在 MacOS 上,位置为 ~/Library/Application Support/Claude/claude_desktop_config.json
在 Windows 上,位置为 %APPDATA%/Claude/claude_desktop_config.json
在配置文件中,添加以下内容,确保将 YOUR_REPO_PATH 替换为你的仓库路径,env 配置为实际的 IoTDB 实例信息:
{
"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_SQL_DIALECT": "tree"
}
}
}
}
如果你需要找到 uv 的完整路径,可以在 MacOS/Linux 上运行 which uv,在 Windows 上运行 where uv。
5. 打开 Claude Desktop,开始体验
正式使用前请提前准备好数据,也可以直接使用下方的 SQL 快速录入测试数据。
通过 start-cli.sh/bat 进入 IoTDB CLI,并执行以下 SQL 语句:
create database root.test
create device template battery_data aligned (load_current FLOAT encoding=RLE, battery_current FLOAT encoding=RLE)
set device template battery_data to root.test.station_001
insert into root.test.station_001(timestamp, load_current, battery_current) values(1, 60.1, 10.2)
insert into root.test.station_001(timestamp, load_current, battery_current) values(2, 61.1, 10.3)
insert into root.test.station_001(timestamp, load_current, battery_current) values(3, 59.2, 9.1)
insert into root.test.station_001(timestamp, load_current, battery_current) values(4, 61.5, 10.9)
insert into root.test.station_001(timestamp, load_current, battery_current) values(5, 60.4, 10.2)
insert into root.test.station_001(timestamp, load_current, battery_current) values(6, 58.5, 10.8)
(3) 使用场景
场景1:自然语言查询数据库
场景2:结构分析
04 总结
MCP 技术的突破性出现,正在重塑大模型生态的底层架构,其标准化交互机制有望成为 AI 世界的“通用语言”。IoTDB MCP Server 作为 MCP 技术的成功实践,在极大简化数据查询流程的同时,为时序数据处理提供了标准化的大模型接入方案。这使得工业设备数据能够直接参与模型训练与推理,充分释放了时序数据在 AI 时代的应用潜能。目前,IoTDB MCP Server 已被收录于 MCP 官方社区和多个 MCP 资源网站。
目前,MCP 功能已在 GitHub 开源,我们诚邀更多朋友参与试用,并提供宝贵意见!
05 附:官方收录链接
MCP 开源社区收录 IoTDB:https://github.com/modelcontextprotocol/servers
阿里云魔搭社区收录 IoTDB MCP Server:https://modelscope.cn/mcp/servers/@apache/iotdb-mcp-server
Smithery 网站收录 IoTDB MCP Server:https://smithery.ai/server/@apache/iotdb-mcp-server
MCPSvr 网站收录 IoTDB MCP Server:https://mcpsvr.com/
更多内容推荐:
• 下载时序数据库 IoTDB 开源版
• 了解如何使用 时序数据库 IoTDB AI 能力