返回市场
格林时间数据库-MCP服务器

格林时间数据库-MCP服务器

作者:GreptimeTeam23 星标更新:2025-06-09

项目介绍

greptimedb-mcp-server

PyPI - 版本 构建工作流 MIT 许可证

这是一个针对 GreptimeDB 的模型上下文协议(MCP)服务器实现。

该服务器提供了一种安全且结构化的方式来让AI助手探索和分析数据库。它允许它们通过一个受控接口列出表、读取数据并执行SQL查询,确保负责任地访问数据库。

项目状态

这是一个仍在开发中的实验性项目。尚未特别处理数据安全和隐私问题,请谨慎使用。

功能

  • list_resources 列出表
  • read_resource 读取表数据
  • list_tools 列出工具
  • call_tool 执行SQL
  • list_prompts 列出提示
  • get_prompt 根据名称获取提示

安装

pip install greptimedb-mcp-server

配置

设置以下环境变量:

GREPTIMEDB_HOST=localhost    # 数据库主机
GREPTIMEDB_PORT=4002         # 可选:数据库MySQL端口(未指定时默认为4002)
GREPTIMEDB_USER=root
GREPTIMEDB_PASSWORD=
GREPTIMEDB_DATABASE=public
GREPTIMEDB_TIMEZONE=UTC

或通过命令行参数:

  • --host 数据库主机,默认为 localhost
  • --port 数据库端口,必须是MySQL协议端口,默认为 4002
  • --user 数据库用户名,默认为空
  • --password 数据库密码,默认为空
  • --database 数据库名称,默认为 public
  • --timezone 会话时区,默认为空(使用服务器默认时区)

使用

Claude Desktop 集成

在 Claude Desktop 的配置文件中配置 MCP 服务器:

MacOS

位置:~/Library/Application Support/Claude/claude_desktop_config.json

Windows

位置:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "greptimedb": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/greptimedb-mcp-server",
        "run",
        "-m",
        "greptimedb_mcp_server.server"
      ],
      "env": {
        "GREPTIMEDB_HOST": "localhost",
        "GREPTIMEDB_PORT": "4002",
        "GREPTIMEDB_USER": "root",
       _ "GREPTIMEDB_PASSWORD": "",
        "GREPTIMEDB_DATABASE": "public",
        "GREPTIMEDB_TIMEZONE": ""
      }
    }
  }
}

许可证

MIT 许可证 - 详情见 LICENSE.md 文件。

贡献

前提条件

  • 安装了带有 uv 包管理器的 Python
  • 安装了 GreptimeDB
  • MCP 服务器依赖项

开发

# 克隆仓库
git clone https://github.com/GreptimeTeam/greptimedb-mcp-server.git
cd greptimedb-mcp-server

# 创建虚拟环境
uv venv
source venv/bin/activate  # 或者在 Windows 上使用 `venv\Scripts\activate`

# 安装开发依赖项
uv sync

# 运行测试
pytest

使用 MCP Inspector 进行调试:

npx @modelcontextprotocol/inspector uv \
  --directory \
  /path/to/greptimedb-mcp-server \
  run \
  -m \
  greptimedb_mcp_server.server

致谢

本库的实现受到了以下两个仓库的启发,并整合了它们的代码,对此我们表示感谢:

谢谢!