Hasura MCP服务

一个为Hasura GraphQL引擎提供自然语言交互的MCP服务器,支持元数据管理、SQL查询执行和数据库模式自省等功能。

  • by sanjay3290
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sanjay3290/hasura-mcp-server

使用说明

Hasura MCP服务器

Hasura GraphQL引擎的模型上下文协议服务器-支持与Hasura实例的自然语言交互。

Docker 中心: 桑贾伊3290/hasura mcp 作者桑杰·拉马杜古 许可证:Apache 2.0

这是什么?

MCP服务器,使AI助手(Claude Desktop等)能够与Hasura GraphQL引擎交互,用于:

  • 元数据管理(导出、应用、重新加载、清除)
  • SQL查询执行
  • 模式自省
  • 交互式调试和设置

快速开始

# Pull the Docker image
docker pull sanjay3290/hasura-mcp:latest

# Run with your Hasura instance
docker run -i --rm \
  --network host \
  sanjay3290/hasura-mcp:latest \
  --endpoint http://localhost:8080 \
  --admin-secret your-secret

对于远程Hasura实例,省略 --network host:

docker run -i --rm \
  sanjay3290/hasura-mcp:latest \
  --endpoint https://your-hasura.com \
  --admin-secret your-secret

特性

工具(9)

  • export_metadata -导出当前Hasura元数据
  • apply_metadata -应用元数据更改
  • reload_metadata -从数据库重新加载元数据
  • clear_metadata -清除所有元数据(只读模式阻止此操作)
  • get_inconsistent_metadata -列出元数据不一致
  • drop_inconsistent_metadata -删除不一致的元数据对象
  • run_sql -执行SQL查询
  • get_version -获取Hasura版本信息
  • get_schema -获取数据库架构信息

资源(4)

  • hasura://metadata -当前元数据为JSON
  • hasura://version -Hasura版本详细信息
  • hasura://schema -数据库架构信息
  • hasura://inconsistent-metadata -当前不一致

提示(4)

  • setup_table -交互式表格设置向导
  • debug_metadata -元数据调试助手
  • create_migration -迁移创建助手
  • setup_permissions -权限配置指南

源代码

源代码保存在Hasura GraphQL引擎分支中:

仓库: https://github.com/sanjay3290/graphql-engine 位置: cli/cmd/mcp-server/

这允许从源代码构建,同时保持完整的Hasura CLI上下文可用。

文档

Docker镜像详细信息

  • 基础:Alpine Linux 3.19
  • 尺寸:已压缩约41MB
  • 用户:非根(hasura:1000)
  • 建筑:linux/amd64
  • 标签: latest, 1.0.0

配置

命令行标志

--endpoint, -e      Hasura endpoint URL (required)
--admin-secret, -s  Hasura admin secret (optional but recommended)
--read-only, -r     Enable read-only mode (disables destructive operations)
--name, -n          MCP server name (default: "hasura-mcp-server")
--version, -v       Print version information

环境变量

HASURA_GRAPHQL_ENDPOINT       # Hasura endpoint URL
HASURA_GRAPHQL_ADMIN_SECRET   # Admin secret

命令行标志优先于环境变量。

只读模式

为安全生产启用只读模式:

docker run -i --rm \
  sanjay3290/hasura-mcp:latest \
  --endpoint https://prod-hasura.com \
  --admin-secret secret \
  --read-only

在只读模式下,这些操作被阻止:

  • apply_metadata
  • clear_metadata
  • drop_inconsistent_metadata

示例用例

元数据管理

“导出当前元数据并显示表配置”

模式探索

“数据库中存在哪些表,它们之间的关系是什么?”

调试

“检查元数据是否不一致,并解释其含义”

SQL操作

“运行查询以统计过去7天内创建的用户数”

安装协助

“帮助我为用户表设置权限,并为用户角色选择访问权限”

社区

许可证

根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

归因

此MCP服务器是使用Hasura GraphQL Engine内部库构建的:

  • Hasura GraphQL引擎:版权所有(c)Hasura股份有限公司- Apache 2.0
  • MCP Go SDK:版权所有(c)2024 Anthropic,中国人民银行- 麻省理工学院

这是基于Hasura开源代码的衍生作品。所有商标和产品名称均为其各自所有者的财产。

这是一个独立的社区项目,不是Hasura股份有限公司的正式附属或认可。

更新日志

看 更改日志.md 查看版本历史和更新。