GigAPI MCP Server 是一个用于 GigAPI 时序湖的 MCP 服务器,它能与 Claude Desktop 及其他 MCP 兼容客户端实现无缝集成。
run_select_query
sql(字符串):要执行的 SQL 查询;database(字符串):要执行查询的数据库。list_databases
database(字符串):用于 SHOW DATABASES 查询的数据库(默认为 "mydb")。list_tables
database(字符串):数据库名称。get_table_schema
database(字符串):数据库名称;table(字符串):表名称。write_data
database(字符串):要写入的数据库;data(字符串):InfluxDB Line Protocol 格式的数据。health_check
ping
# 首次发布后,该包将在 PyPI 上可用
# 用户可以直接使用 uv 安装
uv run --with mcp-gigapi --python 3.11 mcp-gigapi --help
# 克隆仓库
git clone https://github.com/gigapi/mcp-gigapi.git
cd mcp-gigapi
# 安装依赖
uv sync
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json{
"mcpServers": {
"mcp-gigapi": {
"command": "uv",
"args": [
"run",
"--with",
"mcp-gigapi",
"--python",
"3.13",
"mcp-gigapi"
],
"env": {
"GIGAPI_HOST": "gigapi.fly.dev",
"GIGAPI_PORT": "443",
"GIGAPI_TIMEOUT": "30",
"GIGAPI_VERIFY_SSL": "true",
"GIGAPI_DEFAULT_DATABASE": "mydb"
}
}
}
}
{
"mcpServers": {
"mcp-gigapi": {
"command": "uv",
"args": [
"run",
"--with",
"mcp-gigapi",
"--python",
"3.13",
"mcp-gigapi"
],
"env": {
"GIGAPI_HOST": "localhost",
"GIGAPI_PORT": "7971",
"GIGAPI_TIMEOUT": "30",
"GIGAPI_VERIFY_SSL": "false",
"GIGAPI_DEFAULT_DATABASE": "mydb"
}
}
}
}
{
"mcpServers": {
"mcp-gigapi": {
"command": "uv",
"args": [
"run",
"--with",
"mcp-gigapi",
"--python",
"3.13",
"mcp-gigapi"
],
"env": {
"GIGAPI_HOST": "your-gigapi-server",
"GIGAPI_PORT": "7971",
"GIGAPI_USERNAME": "your_username",
"GIGAPI_PASSWORD": "your_password",
"GIGAPI_TIMEOUT": "30",
"GIGAPI_VERIFY_SSL": "true",
"GIGAPI_DEFAULT_DATABASE": "your_database"
}
}
}
}
uv 命令替换为 uv 可执行文件的绝对路径:which uv # 查找路径
此 MCP 服务器设计用于与 GigAPI 的 HTTP API 端点配合使用:
POST /query?db={database}&format=ndjson - 以 NDJSON 响应格式执行 SQL 查询POST /write?db={database} - 使用 InfluxDB Line Protocol 写入数据GET /health - 健康检查GET /ping - 简单的 ping 操作使用 InfluxDB Line Protocol 格式:
curl -X POST "http://localhost:7971/write?db=mydb" --data-binary @/dev/stdin << EOF
weather,location=us-midwest,season=summer temperature=82
weather,location=us-east,season=summer temperature=80
weather,location=us-west,season=summer temperature=99
EOF
通过 JSON POST 以 NDJSON 格式执行 SQL 查询:
curl -X POST "http://localhost:7971/query?db=mydb&format=ndjson" \
-H "Content-Type: application/json" \
-d '{"query": "SELECT time, temperature FROM weather WHERE time >= epoch_ns('\''2025-04-24T00:00:00'\''::TIMESTAMP)"}'
# 显示数据库
curl -X POST "http://localhost:7971/query?db=mydb&format=ndjson" \
-H "Content-Type: application/json" \
-d '{"query": "SHOW DATABASES"}'
# 显示表
curl -X POST "http://localhost:7971/query?db=mydb&format=ndjson" \
-H "Content-Type: application/json" \
-d '{"query": "SHOW TABLES"}'
# 统计记录数
curl -X POST "http://localhost:7971/query?db=mydb&format=ndjson" \
-H "Content-Type: application/json" \
-d '{"query": "SELECT count(*), avg(temperature) FROM weather"}'
GIGAPI_HOST:GigAPI 服务器的主机名GIGAPI_PORT:GigAPI 服务器的端口号(默认:7971)GIGAPI_USERNAME 或 GIGAPI_USER:认证所需的用户名(如果需要)GIGAPI_PASSWORD 或 GIGAPI_PASS:认证所需的密码(如果需要)GIGAPI_TIMEOUT:请求超时时间(秒)(默认:30)GIGAPI_VERIFY_SSL:启用/禁用 SSL 证书验证(默认:true)GIGAPI_DEFAULT_DATABASE:查询使用的默认数据库(默认:mydb)GIGAPI_MCP_SERVER_TRANSPORT:设置 MCP 服务器的传输方法(默认:stdio)GIGAPI_ENABLED:启用/禁用 GigAPI 功能(默认:true)# 必需变量
GIGAPI_HOST=localhost
GIGAPI_PORT=7971
# 可选:覆盖本地开发的默认值
GIGAPI_VERIFY_SSL=false
GIGAPI_TIMEOUT=60
GIGAPI_DEFAULT_DATABASE=mydb
# 必需变量
GIGAPI_HOST=your-gigapi-server
GIGAPI_PORT=7971
GIGAPI_USERNAME=your_username
GIGAPI_PASSWORD=your_password
# 可选:生产环境设置
GIGAPI_VERIFY_SSL=true
GIGAPI_TIMEOUT=30
GIGAPI_DEFAULT_DATABASE=your_database
GIGAPI_HOST=gigapi.fly.dev
GIGAPI_PORT=443
GIGAPI_VERIFY_SSL=true
GIGAPI_DEFAULT_DATABASE=mydb
GigAPI 使用 Hive 分区,结构如下:
/data
/mydb
/weather
/date=2025-04-10
/hour=14
*.parquet
metadata.json
uv sync --all-extras --dev
source .venv/bin/activate
.env 文件:GIGAPI_HOST=localhost
GIGAPI_PORT=7971
GIGAPI_USERNAME=your_username
GIGAPI_PASSWORD=your_password
GIGAPI_TIMEOUT=30
GIGAPI_VERIFY_SSL=false
GIGAPI_DEFAULT_DATABASE=mydb
fastmcp dev mcp_gigapi/mcp_server.py
# 运行所有测试
uv run pytest -v
# 仅运行单元测试
uv run pytest -v -m "not integration"
# 仅运行集成测试
uv run pytest -v -m "integration"
# 运行代码检查
uv run ruff check .
# 使用公共演示进行测试
python test_demo.py
仓库中包含一个测试脚本,用于针对公共 GigAPI 演示验证 MCP 服务器:
python test_demo.py
这将测试:
此包在每次 GitHub 发布时自动发布到 PyPI。发布过程由 GitHub Actions 工作流处理:
.github/workflows/ci.yml):在拉取请求和推送到主分支时运行测试.github/workflows/publish.yml):在创建发布时发布到 PyPI发布后,用户可以直接从 PyPI 安装该包:
# 安装并运行 MCP 服务器
uv run --with mcp-gigapi --python 3.11 mcp-gigapi
要发布新版本:
pyproject.toml 中更新版本号详细的发布说明请参阅 RELEASING.md。
GIGAPI_VERIFY_SSL=false通过设置日志级别启用调试日志:
import logging
logging.basicConfig(level=logging.DEBUG)
本项目采用 Apache-2.0 许可证。