项目简介

这是一个基于 Model Context Protocol (MCP) 构建的后端服务器,专门用于为支持MCP的AI助手(如Cursor IDE、Anthropic Claude等)提供与TDengine时序数据库交互的能力。它允许AI助手通过标准化的协议执行TDengine的只读查询、获取数据库和表结构信息,从而帮助用户在AI环境中便捷地探索和分析TDengine中的数据。

核心限制: 本服务器仅支持 只读 操作(如 SELECT, SHOW, DESCRIBE),严禁执行数据修改、删除、创建等写操作,以保障数据安全。

主要功能点

  • 执行只读查询: 支持对TDengine数据库执行 SELECT、SHOW、DESCRIBE 等只读SQL语句。
  • 获取数据库信息: 提供获取当前TDengine实例中所有可用数据库列表的功能。
  • 获取表信息: 提供获取指定数据库中所有表(stable)列表的功能。
  • 获取表结构: 提供获取特定表(stable)的详细字段(列)信息的功能。
  • 切换数据库: 支持在不同的数据库之间切换操作上下文。
  • 提供数据库元数据: 将TDengine的数据库和表结构等信息作为MCP资源暴露给AI客户端。
  • Prompt 模板: 定义用于辅助AI生成TDengine相关查询或交互的Prompt模板。

安装步骤

  1. 安装 Python 环境: 确保你的系统安装了 Python 3.8 或更高版本。
  2. 安装 MCP 服务器: 打开终端,运行以下命令使用 pip 安装:
    pip install tdengine_mcp_server

服务器配置

要让支持MCP协议的AI客户端(如Cursor IDE、Anthropic Claude等)使用此服务器,你需要在客户端中配置服务器的启动信息。这通常是一个JSON格式的配置,包含服务器的名称、启动命令及其参数。

客户端需要配置以下信息来启动此MCP服务器:

  • 服务器名称: 可以自定义一个名称,例如 'TDengine Query Server'。
  • 启动命令 (command): 'python -m tdengine_mcp_server'
  • 启动参数 (args): 用于配置TDengine数据库连接和服务器行为。这些参数可以作为启动命令的命令行参数传递。常用的参数包括:
    • '-th <主机名>' 或 '--taos-host <主机名>': 指定TDengine服务器的主机地址。
    • '-tp <端口号>' 或 '--taos-port <端口号>': 指定TDengine服务器的端口号(默认为 '6041')。
    • '-tu <用户名>' 或 '--taos-username <用户名>': 指定连接TDengine的用户名(默认为 'root')。
    • '-pwd <密码>' 或 '--taos-password <密码>': 指定连接TDengine的密码(默认为 'taosdata')。
    • '-db <数据库名>' 或 '--taos-database <数据库名>': 指定要使用的默认数据库名(默认为 'default')。
    • '-to <超时时间>' 或 '--taos-timeout <超时时间>': 指定连接超时时间(秒,默认为 '30')。
    • '-ll <日志级别>' 或 '--log-level <日志级别>': 指定服务器日志级别(INFO, DEBUG等,默认为 'INFO')。
    • '-trans <传输协议>' 或 '--transport <传输协议>': 指定MCP传输协议 (stdio 或 sse,默认为 'sse')。

注意: 你也可以在服务器运行目录下创建 '.env' 文件来配置TDengine连接信息,文件中的配置项(如 'TDENGINE_HOST', 'TDENGINE_PORT' 等)会覆盖命令行参数。详细的环境变量配置请参考项目文档。

MCP客户端配置示例概念 (非实际代码):

{
  "name": "My TDengine Server",
  "command": "python",
  "args": [
    "-m",
    "tdengine_mcp_server",
    "-th", "your_taos_host",
    "-tp", "your_taos_port",
    "-tu", "your_taos_user",
    "-pwd", "your_taos_password",
    "-db", "your_database_name",
    "-trans", "stdio" // 或 sse,取决于客户端需求
  ]
  // 其他客户端可能需要的配置项,如 transport: "stdio" 等
}

请根据你使用的具体AI客户端(如Cursor、Claude等)的文档进行配置。

基本使用方法

配置完成后,你的AI助手即可与TDengine数据库交互。你可以通过自然语言指示AI助手执行以下操作:

  • 查询数据: 让AI助手使用内置的工具来执行只读的SQL查询。例如:
    • "帮我查询 'temperature_data' 表中最近10条记录。"
    • "使用查询工具运行 'SELECT ts, temp FROM sensor_readings WHERE location='office' LIMIT 5;'"
  • 获取表结构: 让AI助手获取特定表的字段信息。例如:
    • "请描述一下 'weather_stations' 表的结构。"
    • "查看 'machine_status' 表的列详情。"
  • 浏览数据库/表: 让AI助手列出可用的数据库或当前数据库中的所有表。例如:
    • "有哪些数据库可用?"
    • "列出当前数据库中的所有表。"
  • 切换数据库: 让AI助手切换到另一个数据库。例如:
    • "切换到 'production_logs' 数据库。"

AI助手会通过MCP协议调用服务器提供的工具和资源来完成这些请求,并将结果展示给你。

信息

分类

数据库与文件