nocobase-mcp-server
nocobase-mcp-server
NocoBase를 위한 MCP(Model Context Protocol) 서버로, Claude와 같은 AI 어시스턴트가 NocoBase 인스턴스와 상호작용할 수 있게 해줍니다. 컬렉션 읽기, UI 스키마 관리, flowPage 블록 빌드, OpenAPI를 통한 동적 API 작업 실행이 가능합니다.
기능
24개의 수동 제작 도구: 컬렉션, UI 스키마, 데스크톱 라우트, 플로우 모델 및 JS 블록을 다룹니다.
동적 도구: NocoBase의 OpenAPI/Swagger 사양에서 자동 생성됩니다 (API 문서 플러그인 필요).
NocoBase v2.x와 호환됩니다 (
2.0.17-full에서 테스트됨).
Related MCP server: anyapi-mcp-server
요구 사항
Node.js 18+
실행 중인 NocoBase 인스턴스
NocoBase API 토큰 (루트 또는 충분한 권한)
설치
옵션 A — npm 사용 (권장)
npm install -g @reroet/nocobase-mcp-server그런 다음 ~/.claude/mcp.json에 추가합니다:
{
"mcpServers": {
"nocobase": {
"type": "stdio",
"command": "nocobase-mcp-server",
"env": {
"NOCOBASE_URL": "http://localhost:13000",
"NOCOBASE_API_TOKEN": "your-api-token-here"
}
}
}
}또는 전역 설치 없이 npx를 사용합니다:
{
"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"
}
}
}
}옵션 B — 소스에서 설치
git clone https://github.com/puguhsudarma/nocobase-mcp-server.git
cd nocobase-mcp-server
pnpm install그런 다음 ~/.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"
}
}
}
}/absolute/path/to/nocobase-mcp-server를 실제 경로(예: /Users/yourname/Projects/nocobase-mcp-server)로 바꿉니다.
환경 변수
변수 | 필수 | 기본값 | 설명 |
| 예 | — | NocoBase API 토큰 |
| 아니오 |
| NocoBase 인스턴스 기본 URL |
API 토큰 얻기
NocoBase UI에서: 설정 → 플러그인 → API keys 플러그인 활성화
설정 → API keys → API 키 추가로 이동
생성된 토큰 복사
동적 도구 활성화 (선택 사항)
NocoBase에서 API 문서 플러그인을 활성화합니다 (설정 → 플러그인). 활성화되면 서버 시작 시 모든 추가 API 엔드포인트가 도구로 자동 로드됩니다.
도구 참조
컬렉션
도구 | 설명 |
| 모든 컬렉션 나열 |
| 이름으로 컬렉션 가져오기 |
UI 스키마 (클래식 페이지)
도구 | 설명 |
| 모든 UI 스키마 노드 나열 |
| UID로 전체 중첩 UI 스키마 트리 가져오기 |
| 노드의 부모 스키마 가져오기 |
| 새로운 루트 레벨 UI 스키마 노드 생성 |
| 새로운 UI 스키마 노드 생성 및 삽입 |
| 대상 노드에 상대적으로 스키마 노드 삽입 |
| 기존 UI 스키마 노드 패치 |
| 한 번의 요청으로 여러 UI 스키마 노드 패치 |
| UI 스키마 노드 및 하위 항목 제거 ⚠️ |
| UI 스키마 노드를 재사용 가능한 블록 템플릿으로 저장 |
데스크톱 라우트 / 내비게이션
도구 | 설명 |
| 모든 데스크톱 라우트(페이지, 메뉴, 그룹, 탭) 나열 |
플로우 모델 (flowPage 블록)
도구 | 설명 |
| UID로 flowPage 블록 가져오기 |
| 부모 ID와 subKey로 flowPage 블록 가져오기 |
| flowPage 블록 생성 또는 업데이트 |
| flowPage 컨테이너에 블록 부착 |
| 블록을 다른 위치로 이동 |
| 블록을 딥 카피하고 자동 부착 |
| 블록 및 하위 항목 삭제 ⚠️ |
JS 블록
도구 | 설명 |
| JS 블록 스키마 가져오기 (클래식 페이지) |
| JS 블록 코드 업데이트 (클래식 페이지) |
| flowPage 내 JS 블록 코드 업데이트 — |
⚠️ 파괴적인 작업은 되돌릴 수 없습니다.
JS 블록 샌드박스
flowPage JS 블록은 NocoBase의 샌드박스에서 실행됩니다. 사용 가능한 API:
// 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 />);프롬프트 예시
UID를 얻는 방법:
블록 UID — NocoBase UI에서 블록 우클릭 → UID 복사 (예:
add17a3cf3f)페이지 UID — 페이지를 열 때 브라우저 URL에서 확인 가능 (예:
http://localhost:13000/page/96acpujiwc6→ UID는96acpujiwc6)
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.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>".기여
기여를 환영합니다! 새로운 도구를 추가하려면:
저장소를 포크하고 기능 브랜치를 생성합니다.
server.registerTool()을 사용하여src/index.ts에 도구를 추가합니다.기존 패턴을 따릅니다 — API 호출에는
nocoFetch()를, 응답 형식 지정에는ok()를 사용합니다.README.md의 도구 목록을 업데이트합니다.풀 리퀘스트를 엽니다.
버그 보고나 기능 요청은 GitHub에서 이슈를 열어주세요.
라이선스
MIT — 자세한 내용은 LICENSE를 참조하세요.
Available Tools
23 toolsattach_flow_modelA
Attach an existing flowPage block/model to a parent. Use this to add an existing block into a flowPage container at a specific position.
Inputs: uid (required), parentId (required), subKey (required), subType, +1 more.
batch_patch_ui_schemaA
Patch multiple UI schema nodes in a single request. Each object in the patches array must include 'x-uid' plus the fields to update.
Inputs: patches (required).
create_pageB
Create a new root-level UI schema node in NocoBase
Inputs: schema (required).
destroy_flow_modelA
Delete a flowPage block/model by UID. DESTRUCTIVE — also removes child blocks.
Inputs: uid (required).
duplicate_flow_modelB
Duplicate an existing flowPage block/model (deep copy) and automatically attach it to the same parent. Returns the new block's data.
Inputs: uid (required).
get_collectionB
Get a specific collection by name
Inputs: name (required).
get_flow_modelA
Get a flowPage block/model by UID. Use this for blocks inside flowPage type pages (not classic 'page' type). Returns the block's model data including 'use' (component type), 'parentId', 'stepParams', etc.
Inputs: uid (required), includeAsyncNode.
get_flow_model_by_parentB
Get a flowPage block/model by its parent ID and subKey. Useful for navigating the flowPage block tree.
Inputs: parentId (required), subKey, includeAsyncNode.
get_js_blockA
Get a JS block UI schema by UID (for classic 'page' type pages, not flowPage)
Inputs: uid (required).
get_pageA
Get the full nested UI schema tree for a node by UID (uses :getProperties to include all descendants)
Inputs: uid (required).
get_parent_schemaB
Get the parent UI schema of a node by UID
Inputs: uid (required).
insert_adjacent_schemaA
Insert a schema node at a position relative to a target node. Position values: beforeBegin (prev sibling), afterBegin (first child), beforeEnd (last child), afterEnd (next sibling)
Inputs: uid (required), schema (required), position (required).
insert_new_schemaB
Create and insert a new UI schema node via NocoBase's insertNewSchema action
Inputs: schema (required).
list_collectionsA
List all collections in NocoBase
Inputs: no named parameters.
list_desktop_routesA
List all desktop routes (pages and menus) in NocoBase v2. Each route has a type: 'page', 'flowPage', 'group', 'tabs'. Use schemaUid to fetch page content. Works for both classic pages and flowPages.
Inputs: pageSize.
list_pagesA
List all UI schemas in NocoBase (returns raw schema nodes, not page-level navigation)
Inputs: no named parameters.
move_flow_modelB
Move a flowPage block/model to a different position relative to another block.
Inputs: sourceId (required), targetId (required), position.
remove_ui_schemaA
Remove a UI schema node and all its descendants by UID. DESTRUCTIVE — cannot be undone.
Inputs: uid (required).
save_as_templateB
Save an existing UI schema node as a reusable block template
Inputs: uid (required), values (required).
save_flow_modelA
Create or update a flowPage block/model. If 'uid' is provided in values, it updates; otherwise creates a new one. The 'use' field specifies the component type (e.g. 'JSBlockModel', 'TableBlockModel'). NOTE: after creating, call attach_flow_model to make it appear on the page.
Inputs: values (required).
update_flow_js_blockA
Update the JavaScript code of a JSBlockModel inside a flowPage. Code runs in NocoBase sandbox — use ctx.render(htmlString) to render output. Example: ctx.render(<h1>Hello</h1>);
Inputs: uid (required), code (required).
update_js_blockA
Update the code content of a JS block UI schema by UID (for classic 'page' type pages, not flowPage)
Inputs: uid (required), code (required).
update_ui_schemaB
Patch an existing UI schema node by UID (partial update)
Inputs: uid (required), patch (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 23 tools
Tools are generally distinct, with clear differentiation between flowPage blocks, classic pages, JS blocks, and UI schema operations. However, the high number of flow model and schema tools could cause some confusion, though descriptions help.
All tool names follow a consistent verb_noun pattern in snake_case, with no mixing of conventions. Examples include 'attach_flow_model', 'batch_patch_ui_schema', 'get_flow_model_by_parent'.
23 tools is slightly on the high side but appropriate for a full-featured low-code platform like NocoBase. The count reflects the complexity of managing UI schemas, blocks, collections, and routes without being excessive.
The tool set covers most essential operations for UI schema management: create, read, update, delete, move, duplicate, and template. Minor gaps exist (e.g., no direct tool for updating page metadata), but these can be handled via update_ui_schema.
Maintenance
Related MCP Connectors
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides AI assistants with access to documentation, schemas, and operations for over 535 n8n workflow automation nodes. It enables models to understand, create, and manage n8n workflows through natural language by connecting to the n8n API.52,147 npmMIT
- FlicenseNot gradedqualityDmaintenanceA universal MCP server that connects any REST API to AI assistants via OpenAPI or Postman specifications. It enables dynamic tool creation with GraphQL-style field selection and automatic schema inference for efficient data retrieval.9 npm6-
- AlicenseNot gradedqualityDmaintenanceRemote MCP server that auto-generates tools from NocoBase OpenAPI specs to enable full CRUD operations on collections across multiple instances. Supports streamable HTTP transport and API key authentication for secure, natural language interaction with NocoBase deployments.MIT

VoIPbin MCP Serverofficial
AlicenseBqualityBmaintenanceAn MCP server that enables AI assistants to interact with the VoIPbin CPaaS platform, exposing tools for managing calls, flows, messaging, conferencing, and more.661MIT