nocobase-mcp-server
nocobase-mcp-server enables AI assistants to programmatically manage a NocoBase instance via MCP tools, covering collections, UI schemas, desktop routes, flowPage blocks, and JS blocks.
Collections
List all collections and retrieve details by name.
UI Schemas (Classic Pages)
List all UI schema nodes; get a full nested tree, direct child properties, or parent schema by UID.
Create root-level nodes, insert new nodes (via
insertNewSchema), or insert relative to a target (before/after, first/last child).Patch a single node or batch-patch multiple nodes; remove a node and its descendants; save a node as a reusable block template.
Desktop Routes / Navigation
List all desktop routes (pages, menus, groups, tabs) for classic and flowPages.
FlowPage Blocks
Get a block by UID or by parent ID + subKey.
Create or update blocks; attach to a container at a specific position; move, duplicate (deep copy, auto-attached), or delete a block and its children.
JavaScript Blocks
Get and update JS block code in classic pages.
Update JS block code in flowPages using the NocoBase sandbox (
ctx.render(), supporting React + Ant Design).
Dynamic Tools
Auto-generate additional tools from NocoBase's OpenAPI/Swagger spec when the API documentation plugin is enabled.
Provides integration with Ant Design UI components within NocoBase's JS block sandbox, enabling AI assistants to render JSX interfaces using Ant Design's React components for building rich user interfaces.
Provides integration with React within NocoBase's JS block sandbox, enabling AI assistants to create and render React components for building dynamic user interfaces in flowPage blocks.
Enables dynamic tool generation from NocoBase's OpenAPI/Swagger specifications, automatically loading all API endpoints as tools when the API documentation plugin is enabled.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nocobase-mcp-serverlist all collections in my NocoBase instance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
nocobase-mcp-server
An MCP (Model Context Protocol) server for NocoBase, enabling AI assistants like Claude to interact with your NocoBase instance — read collections, manage UI schemas, build flowPage blocks, and run dynamic API operations via OpenAPI.
Features
24 hand-crafted tools covering collections, UI schemas, desktop routes, flow models, and JS blocks
Dynamic tools auto-generated from your NocoBase's OpenAPI/Swagger spec (requires API documentation plugin)
Works with NocoBase v2.x (tested on
2.0.17-full)
Requirements
Node.js 18+
A running NocoBase instance
A NocoBase API token (root or sufficient permissions)
Installation
Option A — via npm (recommended)
npm install -g @reroet/nocobase-mcp-serverThen add to ~/.claude/mcp.json:
{
"mcpServers": {
"nocobase": {
"type": "stdio",
"command": "nocobase-mcp-server",
"env": {
"NOCOBASE_URL": "http://localhost:13000",
"NOCOBASE_API_TOKEN": "your-api-token-here"
}
}
}
}Or use npx without installing globally:
{
"mcpServers": {
"nocobase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@reroet/nocobase-mcp-server"],
"env": {
"NOCOBASE_URL": "http://localhost:13000",
"NOCOBASE_API_TOKEN": "your-api-token-here"
}
}
}
}Option B — from source
git clone https://github.com/puguhsudarma/nocobase-mcp-server.git
cd nocobase-mcp-server
pnpm installThen add to ~/.claude/mcp.json:
{
"mcpServers": {
"nocobase": {
"type": "stdio",
"command": "/absolute/path/to/nocobase-mcp-server/node_modules/.bin/tsx",
"args": ["/absolute/path/to/nocobase-mcp-server/src/index.ts"],
"env": {
"NOCOBASE_URL": "http://localhost:13000",
"NOCOBASE_API_TOKEN": "your-api-token-here"
}
}
}
}Replace /absolute/path/to/nocobase-mcp-server with the actual path (e.g. /Users/yourname/Projects/nocobase-mcp-server).
Environment Variables
Variable | Required | Default | Description |
| Yes | — | NocoBase API token |
| No |
| NocoBase instance base URL |
Getting an API Token
In NocoBase UI: Settings → Plugins → enable the API keys plugin
Go to Settings → API keys → Add API key
Copy the generated token
Enabling Dynamic Tools (optional)
Enable the API documentation plugin in NocoBase (Settings → Plugins). Once active, the server will automatically load all additional API endpoints as tools on startup.
Tools Reference
Collections
Tool | Description |
| List all collections |
| Get a collection by name |
UI Schemas (Classic Pages)
Tool | Description |
| List all UI schema nodes |
| Get full nested UI schema tree by UID |
| Get the parent schema of a node |
| Create a new root-level UI schema node |
| Create and insert a new UI schema node |
| Insert a schema node relative to a target node |
| Patch an existing UI schema node |
| Patch multiple UI schema nodes in one request |
| Remove a UI schema node and its descendants ⚠️ |
| Save a UI schema node as a reusable block template |
Desktop Routes / Navigation
Tool | Description |
| List all desktop routes (pages, menus, groups, tabs) |
Flow Models (flowPage blocks)
Tool | Description |
| Get a flowPage block by UID |
| Get a flowPage block by parent ID and subKey |
| Create or update a flowPage block |
| Attach a block to a flowPage container |
| Move a block to a different position |
| Deep-copy a block and auto-attach it |
| Delete a block and its children ⚠️ |
JS Blocks
Tool | Description |
| Get a JS block schema (classic page) |
| Update JS block code (classic page) |
| Update JS block code inside a flowPage — use |
⚠️ Destructive operations cannot be undone.
JS Block Sandbox
flowPage JS blocks run in NocoBase's sandbox. Available APIs:
// Render HTML
ctx.render(`<h1>Hello</h1>`);
// Render JSX with React + Ant Design
const { React, antd } = ctx.libs;
const { useState } = React;
const { Table, Tag } = antd;
function MyComponent() {
const [tab, setTab] = useState("a");
return <div>...</div>;
}
ctx.render(<MyComponent />);Example Prompts
How to get UIDs:
Block UID — right-click any block in NocoBase UI → Copy UID (e.g.
add17a3cf3f)Page UID — visible in the browser URL when you open a page (e.g.
http://localhost:13000/page/96acpujiwc6→ UID is96acpujiwc6)
Without Figma MCP
List all collections in my NocoBase, then create a JS block on flowPage "<your-page-uid>"
that shows a summary dashboard with total records from the "users" collection.Get the flowPage with UID "<your-page-uid>", add a new JS block below the existing ones
(the grid block UID is "<your-grid-uid>"), and implement a tabbed table showing data
from the "orders" and "products" collections.Show me all desktop routes, then fetch the UI schema tree of the first page
and explain its block structure.With Figma MCP
Here's my Figma design: https://www.figma.com/board/XXXXXXXXXXXXXXXX/MyApp?node-id=8273-xxxx
Implement it as a JS block on flowPage "<your-page-uid>" (grid UID: "<your-grid-uid>").
Use React + Ant Design from ctx.libs. Use dummy data for now.Fetch the Figma design at the link above, then create a new JS block on my NocoBase
flowPage and implement the tabs component with the exact columns from the Figma table.
The block UID I want to update is "<your-block-uid>".Contributing
Contributions are welcome! To add a new tool:
Fork the repo and create a feature branch
Add your tool in
src/index.tsusingserver.registerTool()Follow the existing pattern — use
nocoFetch()for API calls andok()to format responsesUpdate the tool list in
README.mdOpen a pull request
For bug reports or feature requests, open an issue on GitHub.
License
MIT — see LICENSE for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/puguhsudarma/nocobase-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server