本项目提供一系列高级功能,可帮助你轻松搭建和配置基于 Hasura 的服务器,实现与 MCP 客户端的连接。
运行以下命令安装项目所需的依赖:
pnpm install
构建 TypeScript 代码到 dist 目录:
pnpm run build
使用以下命令启动服务器,指定 Hasura GraphQL 终点和可选的管理员密钥:
# 使用 pnpm 脚本运行
pnpm start [ADMIN_SECRET]
# 或者直接使用 Node.js
node dist/index.js [ADMIN_SECRET]
示例:
pnpm start https://my-hasura.cloud/v1/graphql mysecretkey123
或
node dist/index.js https://my-hasura.cloud/v1/graphql mysecretkey123
如果不需要管理员密钥(使用默认角色权限):
pnpm start https://my-hasura.cloud/v1/graphql
服务器启动后,将尝试初始模式反编译,连接到 STDIO 传输,并将状态消息记录到 stderr。它监听 MCP JSON-RPC 请求在 stdin 并将响应发送到 stdout。
要将此服务器连接到 MCP 客户端,如 Cursor,可按以下步骤操作:
找到绝对路径:
which node 在终端中。mcp-hasura-advanced 目录并运行 pwd。附加 /dist/index.js 到结果。pwd 结果。配置客户端: 打开您的客户端配置文件(例如,Cursor 的 settings.json,Claude Desktop 的 claude_desktop_config.json)。
添加服务器条目: 在适当的键下添加一个条目(例如,Cursor 的 cursor.customMcpServers 数组,Claude Desktop 的 mcpServers 对象)。
示例 Cursor settings.json:
{
// ... 其他设置 ...
"cursor.customMcpServers": [
// ... 其他服务器 ...
{
"name": "My Advanced Hasura Server", // 在 Cursor UI 中显示的名称
"command": "/path/to/your/node", // <<< 绝对路径来自 'which node'
"args": [
"/absolute/path/to/mcp-hasura-advanced/dist/index.js", // <<< 绝对路径到编译后的脚本
"https://YOUR_HASURA_ENDPOINT.com/v1/graphql", // <<< 您的端点
"YOUR_ADMIN_SECRET" // <<< 您的秘密(如果不需要秘密请删除)
],
// 可选但推荐以保持模块解析一致性:
"cwd": "/absolute/path/to/mcp-hasura-advanced" // <<< 绝对路径到项目根目录
}
]
}
示例 Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
// ... 其他服务器 ...
"hasura-advanced": { // 关键字由 Claude 内部使用
"command": "/path/to/your/node",
"args": [
"/absolute/path/to/mcp-hasura-advanced/dist/index.js",
"https://YOUR_HASURA_ENDPOINT.com/v1/graphql",
"YOUR_ADMIN_SECRET"
],
// 可选但推荐以保持模块解析一致性:
"cwd": "/absolute/path/to/mcp-hasura-advanced"
}
}
}
您可以在 package.json 中添加自定义环境变量:
{
"env": {
"NODE_ENV": "production",
"MY_SECRET": "my-secret-value"
}
}
要更改默认端口(3000),可以在运行时指定:
pnpm start --port=3001 [ADMIN_SECRET]
在启动服务器之前,验证所有配置是否正确:
pnpm run lint
如果遇到问题,请检查以下内容:
pnpm start [options] [ADMIN_SECRET]
Options:
--port=VALUE 自定义服务器端口 (默认: 3000)
--verbose 启用详细日志记录
mcp-hasura-advanced/
├── dist/ # 编译后的输出目录
├── src/
│ ├── index.ts # 主应用文件
│ └── schema.ts # GraphQL 模式定义
└── package.json # 依赖和脚本配置
要为项目做出贡献,请 fork 仓库并在 dev 分支上进行修改。提交前,请确保通过所有测试。
[此处插入许可证信息]