SQL查询服务器

Timeplus MCP Server是一个用于执行SQL查询和管理Timeplus集群的服务器,支持Kafka和Apache Iceberg集成。

  • by timeplus-io
  • Python
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 jovezhong/mcp-timeplus

使用说明

Timeplus MCP服务器

Timeplus的MCP服务器。

特性

鼓励

  • generate_sql 为LLM提供更多关于如何通过SQL查询Timeplus的知识

工具

  • run_sql

    • 在Timeplus集群上执行SQL查询。
    • 输入: sql (string):要执行的SQL查询。
    • 默认情况下,所有Timeplus查询都使用 readonly = 1 以确保它们的安全。如果要运行DDL或DML查询,可以设置环境变量 TIMEPLUS_READ_ONLY 向 false.
  • list_databases

    • 列出Timeplus集群上的所有数据库。
  • list_tables

    • 列出数据库中的所有表。
    • 输入: database (string):数据库的名称。
  • list_kafka_topics

    • 列出Kafka集群中的所有主题
  • explore_kafka_topic

    • 显示Kafka主题中的一些消息
    • 输入: topic (string):主题的名称。 message_count (int):要显示的消息数,默认为1。
  • create_kafka_stream

    • 在Timeplus中设置流式ETL以在本地保存Kafka消息
    • 输入: topic (string):主题的名称。
  • connect_to_apache_iceberg

    • 连接到基于Apache Iceberg的数据库。目前,这只能通过Timeplus Enterprise获得,计划很快将其提供给Timeplus Proton。
    • 输入: iceberg_db (string):冰山数据库的名称。 aws_account_id (int):AWS帐户ID(12位数字)。 s3_bucket (string):S3存储桶名称。 aws_region (string):AWS区域,默认为“us-west-2”。 is_s3_table_bucket (bool):S3 bucket是否为S3表bucket,默认为False。

配置

首先,确保你有 uv 可执行文件已安装。如果没有,您可以按照说明进行安装 这里.

  1. 打开位于以下位置的Claude Desktop配置文件:

    • 在 macOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 在Windows上: %APPDATA%/Claude/claude_desktop_config.json
  2. 添加以下内容:

{
  "mcpServers": {
    "mcp-timeplus": {
      "command": "uvx",
      "args": ["mcp-timeplus"],
      "env": {
        "TIMEPLUS_HOST": "<timeplus-host>",
        "TIMEPLUS_PORT": "<timeplus-port>",
        "TIMEPLUS_USER": "<timeplus-user>",
        "TIMEPLUS_PASSWORD": "<timeplus-password>",
        "TIMEPLUS_SECURE": "false",
        "TIMEPLUS_VERIFY": "true",
        "TIMEPLUS_CONNECT_TIMEOUT": "30",
        "TIMEPLUS_SEND_RECEIVE_TIMEOUT": "30",
        "TIMEPLUS_READ_ONLY": "false",
        "TIMEPLUS_KAFKA_CONFIG": "{\"bootstrap.servers\":\"a.aivencloud.com:28864\", \"sasl.mechanism\":\"SCRAM-SHA-256\",\"sasl.username\":\"avnadmin\", \"sasl.password\":\"thePassword\",\"security.protocol\":\"SASL_SSL\",\"enable.ssl.certificate.verification\":\"false\"}"
      }
    }
  }
}

更新环境变量以指向您自己的Timeplus服务。

  1. 重新启动Claude Desktop以应用更改。

您还可以将此MCP服务器与其他MCP客户端一起尝试,例如 5ire.

发展

  1. 在……里面 test-services 目录运行 docker compose up -d 启动Timeplus Proton服务器。您也可以通过以下方式下载 curl https://install.timeplus.com/oss | sh,然后开始 ./proton server.

  2. 将以下变量添加到 .env 存储库根目录中的文件。

TIMEPLUS_HOST=localhost
TIMEPLUS_PORT=8123
TIMEPLUS_USER=default
TIMEPLUS_PASSWORD=
TIMEPLUS_SECURE=false
TIMEPLUS_VERIFY=true
TIMEPLUS_CONNECT_TIMEOUT=30
TIMEPLUS_SEND_RECEIVE_TIMEOUT=30
TIMEPLUS_READ_ONLY=false
TIMEPLUS_KAFKA_CONFIG={"bootstrap.servers":"a.aivencloud.com:28864", "sasl.mechanism":"SCRAM-SHA-256","sasl.username":"avnadmin", "sasl.password":"thePassword","security.protocol":"SASL_SSL","enable.ssl.certificate.verification":"false"}
  1. 跑 uv sync 安装依赖项。那就去吧 source .venv/bin/activate.

  2. 为了便于测试,您可以运行 mcp dev mcp_timeplus/mcp_server.py 启动MCP服务器。单击“连接”按钮将UI与MCP服务器连接,然后切换到“工具”选项卡运行可用工具。

  3. 要构建Docker镜像,请运行 docker build -t mcp_timeplus ..

环境变量

以下环境变量用于配置Timeplus连接:

必需变量

  • TIMEPLUS_HOST:Timeplus服务器的主机名
  • TIMEPLUS_USER:用于身份验证的用户名
  • TIMEPLUS_PASSWORD:身份验证密码

可选变量

  • TIMEPLUS_PORT:Timeplus服务器的端口号
    • 违约: 8443 如果启用了HTTPS, 8123 如果禁用
    • 通常不需要设置,除非使用非标准端口
  • TIMEPLUS_SECURE:启用/禁用HTTPS连接
    • 违约: "false"
    • 吃起来 "true" 用于安全连接
  • TIMEPLUS_VERIFY:启用/禁用SSL证书验证
    • 违约: "true"
    • 吃起来 "false" 禁用证书验证(不建议用于生产)
  • TIMEPLUS_CONNECT_TIMEOUT:连接超时(秒)
    • 违约: "30"
    • 如果遇到连接超时,请增加此值
  • TIMEPLUS_SEND_RECEIVE_TIMEOUT:发送/接收超时(秒)
    • 违约: "300"
    • 为长时间运行的查询增加此值
  • TIMEPLUS_DATABASE:要使用的默认数据库
    • 默认值:无(使用服务器默认值)
    • 将其设置为自动连接到特定数据库
  • TIMEPLUS_READ_ONLY:启用/禁用只读模式
    • 违约: "true"
    • 吃起来 "false" 启用DDL/DML
  • TIMEPLUS_KAFKA_CONFIG:Kafka配置的JSON字符串。请参考 librdkafka配置 或者以上述示例为参考。