尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何把 NocoBase 暴露为 MCP 服务供外部 MCP 客户端调用

如何把 NocoBase 暴露为 MCP 服务供外部 MCP 客户端调用 如何把 NocoBase 暴露为 MCP 服务供外部 MCP 客户端调用【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase如果已经有一个运行中的 NocoBase 应用希望外部 MCP 客户端如 Codex、Claude Code、OpenCode能直接访问并操作其中的数据表和系统接口就需要启用 NocoBase 的 MCP 服务插件。启用后NocoBase 应用会对外提供一个 MCP 服务接口客户端可以调用resource_list、resource_query等通用工具操作数据表也可以按需加载内核与插件接口。本文按“启用插件 → 确认服务地址 → 配置鉴权 → 客户端接入 → 验证”的顺序给出完整操作路径。文中出现的host、port、app_name、your_api_key均为占位符需替换为你的 NocoBase 实例实际地址、子应用名和创建好的 API Key。启用 MCP 服务插件MCP 服务由nocobase/plugin-mcp-server插件名称“AI: MCP 服务器”提供它是内置的免费插件但默认未启用。在 NocoBase 管理后台的插件管理中启用该插件后应用即对外提供 MCP 服务接口。插件启用后服务地址如下主应用http(s)://host:port/api/mcp子应用http(s)://host:port/api/__app/app_name/mcp该地址使用streamable HTTP传输协议。了解客户端能调用哪些能力通用工具默认提供一组用于操作数据表的通用工具工具名称功能描述resource_list获取数据列表resource_get获取数据详情resource_create创建数据resource_update更新数据resource_destroy删除数据resource_query查询数据支持聚合、关联查询等复杂查询条件按请求头加载插件接口如果需要让 MCP 客户端访问 NocoBase 内核及各类插件的接口通过请求头x-mcp-packages控制暴露哪些包例如x-mcp-packages: nocobase/server,plugin-workflow*,plugin-users该请求头支持传完整包名未带 scope 时会自动补成nocobase/。默认不加载通用工具以外的其他包接口因此如果客户端只用到数据表操作不需要额外配置要访问系统管理功能时再按最小需要放开对应包。常用包如下包名功能描述nocobase/plugin-data-source-main管理主数据源包括创建数据表、添加字段等nocobase/plugin-data-source-manager管理数据源获取可用数据源信息nocobase/plugin-workflow管理工作流nocobase/plugin-acl管理角色和权限nocobase/plugin-users管理用户更多包和接口说明可以通过 API 文档插件了解。配置鉴权API Key 认证推荐主路径MCP 接口支持两种鉴权方式二选一即可。API Key 认证配置最简单适合作为默认路径。1. 配置 APP_KEY 环境变量API 密钥依赖APP_KEY环境变量且要求该值不要泄漏——一旦APP_KEY变更所有已添加的 API 密钥都会失效。Docker 部署时修改docker-compose.ymlservices: app: image: nocobase/nocobase:main environment: - APP_KEY4jAokvLKTJgM0v_JseUkJ源码或create-nocobase-app安装时直接在.env文件中配置APP_KEY4jAokvLKTJgM0v_JseUkJ为文档示例值请换成自己的随机字符串。2. 创建 API Key启用 API Keys 插件然后为一个已有账号创建 API Key。注意添加的 API 密钥归属当前用户其角色为当前用户所属角色因此创建 API Key 的账号权限范围决定了 MCP 客户端能做什么。可选分支OAuth 认证如果希望按具体授权用户而不是 API Key 来控制权限可改用 OAuth先启用 IdP: OAuth 插件MCP 客户端通过 OAuth 认证授权后获取 access token 调用接口权限由授权的用户决定。如果该用户有多个角色可通过请求头x-role设置调用角色。把 MCP 服务接入客户端以下配置均使用上文的服务地址API Key 方式在配置中携带Bearer your_api_keyOAuth 方式不带 Authorization 头、由客户端完成登录。CodexAPI Key 认证export NOCOBASE_API_TOKENyour_api_key codex mcp add nocobase --url https://host:port/api/mcp --bearer-token-env-var NOCOBASE_API_TOKENOAuth 认证前提已启用 IdP: OAuth 插件codex mcp add nocobase --url https://host:port/api/mcp codex mcp login nocobase --scopes mcp,offline_accessClaude CodeAPI Key 认证claude mcp add --transport http nocobase https://host:port/api/mcp --header Authorization: Bearer your_api_keyOAuth 认证前提已启用 IdP: OAuth 插件claude mcp add --transport http nocobase https://host:port/api/mcp执行完成后打开 Claude选择对应的 MCP 服务进行登录claude /mcpOpenCodeAPI Key 认证在opencode.json中配置your_api_key替换为上一步创建的 API Key{ mcp: { nocobase: { type: remote, url: https://host:port/api/mcp, enabled: true, headers: { Authorization: Bearer your_api_key } } }, $schema: https://opencode.ai/config.json }OAuth 认证同样配置opencode.json不带 headers然后执行登录opencode mcp auth nocobase验证连接是否生效OpenCode运行opencode mcp debug nocobase用文档提供的 debug 命令检查该 MCP 服务的连接状态。Claude Code在 Claude 中执行/mcp选择对应的 MCP 服务查看其状态并完成登录。判断调用行为时记住两条权限规则API Key 方式下权限由 API key 所绑定的角色决定OAuth 方式下权限由授权的用户决定。如果客户端能连上但某个工具调用返回无权限应回到“创建 API Key 的账号是否拥有对应角色”这一前提去核对而不是调整 MCP 侧配置。限制与说明默认不加载通用工具以外的包接口文档更推荐使用 NocoBase CLI 的方式操作其他系统功能仅当确实需要通过 MCP 访问时才用x-mcp-packages放开对应包。修改APP_KEY会使所有已添加的 API 密钥失效变更时需要重新分发密钥。子应用请使用/api/__app/app_name/mcp地址不要把子应用指向主应用地址。按上述步骤完成后外部 MCP 客户端即可通过http(s)://host:port/api/mcp连接 NocoBase使用resource_list、resource_query等工具读取和操作数据表。【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表