返回市场
麦普主机

麦普主机

作者:nhost5 星标更新:2025-10-27

项目介绍

注意:此仓库已弃用,开发已移至 https://github.com/nhost/nhost/tree/main/cli

mcp-nhost

一个用于与Nhost Cloud项目和服务交互的模型上下文协议(MCP)服务器实现。

概述

MCP-Nhost旨在通过模型上下文协议提供统一的接口来管理Nhost项目。它能够无缝地与Nhost Cloud服务进行交互,提供了强大的工具集以进行项目管理和配置。

可用工具

以下工具目前可通过MCP接口访问:

  1. cloud-get-graphql-schema

    • 提供Nhost Cloud平台的GraphQL模式
    • 提供对云管理可用查询和变异操作的访问
  2. cloud-graphql-query

    • 对Nhost Cloud平台执行GraphQL查询和变异操作
    • 允许项目和组织管理
    • 允许查询和更新项目配置
    • 变异操作需要在启动服务器时启用
  3. local-get-graphql-schema

    • 获取本地Nhost开发项目的GraphQL模式
    • 提供对项目特定查询和变异操作的访问
    • 帮助理解本地开发可用的操作,帮助生成代码
    • 使用“用户”角色,除非另有指定
  4. local-graphql-query

    • 对本地Nhost开发项目执行GraphQL查询
    • 允许测试和开发项目特定操作
    • 支持本地开发的查询和变异操作
    • 使用“用户”角色,除非另有指定
  5. local-config-server-get-schema

    • 获取本地配置服务器的GraphQL模式
    • 帮助理解本地项目的可用配置选项
  6. local-config-server-query

    • 对本地配置服务器执行GraphQL查询
    • 允许查询和修改本地项目配置
    • 更改需要运行'nhost up'才能生效
  7. local-get-management-graphql-schema

    • 获取本地项目的GraphQL管理模式
    • 有助于理解如何管理Hasura元数据、迁移和权限
    • 在使用管理工具之前提供有关可用管理操作的见解
  8. local-manage-graphql

    • 与本地项目的GraphQL管理端点进行交互
    • 管理Hasura元数据、迁移、权限和远程模式
    • 创建并应用数据库迁移
    • 通过适当的迁移工作流程处理数据和模式更改
    • 管理角色和权限
  9. project-get-graphql-schema

    • 获取Nhost Cloud项目的GraphQL模式
    • 提供对项目特定查询和变异操作的访问
    • 使用“用户”角色,除非另有指定
  10. project-graphql-query

    • 对Nhost Cloud项目执行GraphQL查询
    • 允许与实时项目数据进行交互
    • 支持查询和变异操作(需要允许)
    • 使用“用户”角色,除非另有指定
  11. search

    • 搜索Nhost官方文档
    • 提供关于Nhost功能、API和指南的信息
    • 帮助找到实施功能或解决问题的相关文档
    • 返回详细文档页面的链接

屏幕截图和示例

您可以在屏幕截图文件中找到当前特性和工具的屏幕截图和示例。

安装

要安装mcp-nhost,您可以使用以下命令:

sudo curl -L https://raw.githubusercontent.com/nhost/mcp-nhost/main/get.sh | bash

配置

安装mcp-nhost后,您需要对其进行配置。您可以通过在终端中运行命令mcp-nhost config来完成此操作。更多详情,请参阅CONFIG.md

客户端配置

Cursor

  1. 转到“Cursor设置”
  2. 点击“MCP”
  3. 点击“+ 添加新的全局MCP服务器”
  4. "mcpServers"内添加以下对象:
    "mcp-nhost": {
      "command": "/usr/local/bin/mcp-nhost",
      "args": [
        "start",
      ],
    }

CLI 使用

如需了解如何使用CLI,请运行:

mcp-nhost --help

或者查看USAGE.md获取更多详情。

故障排除

如果您在使用MCP服务器时遇到问题,可以尝试自己运行这些工具。例如:

# cloud-get-graphql-schema
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"cloud-get-graphql-schema","arguments":{}},"id":1}' | mcp-nhost start

# cloud-graphql-query
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"cloud-graphql-query","arguments":{"query":"{ apps { id subdomain name } }"}},"id":1}' | mcp-nhost start

# local-get-graphql-schema
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-get-graphql-schema","arguments":{"role":"user"}},"id":1}' | mcp-nhost start

# local-graphql-query
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-graphql-query","arguments":{"query":"{ users { id } }", "role":"admin"}},"id":1}' | mcp-nhost start

# local-config-server-get-schema
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-config-server-get-schema","arguments":{}},"id":1}' | mcp-nhost start

# local-config-server-query
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-config-server-query","arguments":{"query":"{ config(appID: \"00000000-0000-0000-0000-000000000000\", resolve: true) { postgres { version } } }"}},"id":1}' | mcp-nhost start

# local-get-management-graphql-schema
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-get-management-graphql-schema","arguments":{}},"id":1}' | mcp-nhost start

# local-manage-graphql
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"local-manage-graphql","arguments":{"body":"{\"type\":\"export_metadata\",\"args\":{}}","endpoint":"https://local.hasura.local.nhost.run/v1/metadata"}},"id":1}' | mcp-nhost start

# project-get-graphql-schema - 将projectSubdomain替换为您自己的项目
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"project-get-graphql-schema","arguments":{"projectSubdomain":"replaceMe", "role": "user"}},"id":1}' | mcp-nhost start

# project-graphql-query - 将projectSubdomain替换为您自己的项目
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"project-graphql-query","arguments":{"projectSubdomain":"replaceMe","query":"{ users { id } }", "role":"admin"}},"id":1}' | mcp-nhost start

# search
echo  '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search","arguments":{"query":"how to enable magic links"}},"id":1}' | mcp-nhost start

发展路线图

  • ✅ 云端平台:基本项目和组织管理
  • ✅ 云端项目:配置管理
  • ✅ 本地项目:配置管理
  • ✅ 本地项目:GraphQL模式意识和查询执行
  • ✅ 云端项目:模式意识和查询执行
  • ✅ 本地项目:创建迁移
  • ✅ 本地项目:管理权限和关系
  • ✅ 文档:整合或记录使用mintlify的mcp服务器
  • ✅ 本地项目:认证和存储模式意识(可能通过mintlify?)
  • ✅ 云端项目:认证和存储模式意识(可能通过mintlify?)
  • 🔄 本地项目:管理更多元数据

如果您有任何建议或功能请求,请随时打开一个议题进行讨论。

安全和隐私

增强保护层

MCP服务器设计的核心是安全,提供了超出现有GraphQL权限的额外保护层。关键的安全特性包括:

  • 所有请求的身份验证强制执行
  • 根据现有的授权系统和提供的凭据尊重权限和角色
  • 进一步限制允许操作的查询/变异过滤

细粒度访问控制

MCP服务器的一个关键安全优势是可以精确指定哪些操作可以通过,即使对于已认证的用户也是如此:

[[projects]]
subdomain = "my-blog"
region = "eu-central-1"
pat = "nhp_project_specific_pat"
allow_queries = ["getBlogs", "getCommends"]
allow_mutations = ["insertBlog", "insertComment"]

以上配置中,LLM将只能代表用户执行上述查询和变异操作,即使该用户在Nhost项目中有更广泛的权限。

贡献

我们欢迎对mcp-nhost的贡献!如果您有建议、错误报告或功能请求,请打开一个议题或提交拉取请求。