Skip to main content
Glama

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_TOKEN

예

—

NocoBase API 토큰

NOCOBASE_URL

아니오

http://localhost:13000

NocoBase 인스턴스 기본 URL

API 토큰 얻기

  1. NocoBase UI에서: 설정 → 플러그인 → API keys 플러그인 활성화

  2. 설정 → API keys → API 키 추가로 이동

  3. 생성된 토큰 복사

동적 도구 활성화 (선택 사항)

NocoBase에서 API 문서 플러그인을 활성화합니다 (설정 → 플러그인). 활성화되면 서버 시작 시 모든 추가 API 엔드포인트가 도구로 자동 로드됩니다.

도구 참조

컬렉션

도구

설명

list_collections

모든 컬렉션 나열

get_collection

이름으로 컬렉션 가져오기

UI 스키마 (클래식 페이지)

도구

설명

list_pages

모든 UI 스키마 노드 나열

get_page

UID로 전체 중첩 UI 스키마 트리 가져오기

get_parent_schema

노드의 부모 스키마 가져오기

create_page

새로운 루트 레벨 UI 스키마 노드 생성

insert_new_schema

새로운 UI 스키마 노드 생성 및 삽입

insert_adjacent_schema

대상 노드에 상대적으로 스키마 노드 삽입

update_ui_schema

기존 UI 스키마 노드 패치

batch_patch_ui_schema

한 번의 요청으로 여러 UI 스키마 노드 패치

remove_ui_schema

UI 스키마 노드 및 하위 항목 제거 ⚠️

save_as_template

UI 스키마 노드를 재사용 가능한 블록 템플릿으로 저장

데스크톱 라우트 / 내비게이션

도구

설명

list_desktop_routes

모든 데스크톱 라우트(페이지, 메뉴, 그룹, 탭) 나열

플로우 모델 (flowPage 블록)

도구

설명

get_flow_model

UID로 flowPage 블록 가져오기

get_flow_model_by_parent

부모 ID와 subKey로 flowPage 블록 가져오기

save_flow_model

flowPage 블록 생성 또는 업데이트

attach_flow_model

flowPage 컨테이너에 블록 부착

move_flow_model

블록을 다른 위치로 이동

duplicate_flow_model

블록을 딥 카피하고 자동 부착

destroy_flow_model

블록 및 하위 항목 삭제 ⚠️

JS 블록

도구

설명

get_js_block

JS 블록 스키마 가져오기 (클래식 페이지)

update_js_block

JS 블록 코드 업데이트 (클래식 페이지)

update_flow_js_block

flowPage 내 JS 블록 코드 업데이트 — ctx.render() 또는 ctx.libs.React를 통한 JSX 사용

⚠️ 파괴적인 작업은 되돌릴 수 없습니다.

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>".

기여

기여를 환영합니다! 새로운 도구를 추가하려면:

  1. 저장소를 포크하고 기능 브랜치를 생성합니다.

  2. server.registerTool()을 사용하여 src/index.ts에 도구를 추가합니다.

  3. 기존 패턴을 따릅니다 — API 호출에는 nocoFetch()를, 응답 형식 지정에는 ok()를 사용합니다.

  4. README.md의 도구 목록을 업데이트합니다.

  5. 풀 리퀘스트를 엽니다.

버그 보고나 기능 요청은 GitHub에서 이슈를 열어주세요.

라이선스

MIT — 자세한 내용은 LICENSE를 참조하세요.

Available Tools

23 tools
attach_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.

NameRequiredDescriptionDefault
uidYesFlow model UID to attach
parentIdYesParent flow model UID to attach to
subKeyYesSub-key within the parent (e.g. 'items')
subTypeNoSub-type (e.g. 'array')
positionNoSort position index
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.

NameRequiredDescriptionDefault
patchesYesArray of partial schema patch objects, each identified by x-uid
create_pageB

Create a new root-level UI schema node in NocoBase

NameRequiredDescriptionDefault
schemaYesUI schema object to create (JSON)
destroy_flow_modelA

Delete a flowPage block/model by UID. DESTRUCTIVE — also removes child blocks.

NameRequiredDescriptionDefault
uidYesFlow model UID to delete
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.

NameRequiredDescriptionDefault
uidYesFlow model UID to duplicate
get_collectionB

Get a specific collection by name

NameRequiredDescriptionDefault
nameYesCollection name
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.

NameRequiredDescriptionDefault
uidYesFlow model UID (from 'Copy UID' on a block inside a flowPage)
includeAsyncNodeNoWhether to include async node data (default false)
get_flow_model_by_parentB

Get a flowPage block/model by its parent ID and subKey. Useful for navigating the flowPage block tree.

NameRequiredDescriptionDefault
parentIdYesParent flow model UID
subKeyNoSub-key within the parent (e.g. 'items')
includeAsyncNodeNoWhether to include async node data (default false)
get_js_blockA

Get a JS block UI schema by UID (for classic 'page' type pages, not flowPage)

NameRequiredDescriptionDefault
uidYesUI schema UID of the JS block
get_pageA

Get the full nested UI schema tree for a node by UID (uses :getProperties to include all descendants)

NameRequiredDescriptionDefault
uidYesUI schema UID
get_parent_schemaB

Get the parent UI schema of a node by UID

NameRequiredDescriptionDefault
uidYesUI schema UID of the child node
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)

NameRequiredDescriptionDefault
uidYesTarget UI schema UID to insert relative to
schemaYesNew schema node to insert (JSON)
positionYesInsert position relative to the target node
insert_new_schemaB

Create and insert a new UI schema node via NocoBase's insertNewSchema action

NameRequiredDescriptionDefault
schemaYesSchema node to create and insert (JSON)
list_collectionsA

List all collections in NocoBase

NameRequiredDescriptionDefault

No 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.

NameRequiredDescriptionDefault
pageSizeNoNumber of routes per page (default 100)
list_pagesA

List all UI schemas in NocoBase (returns raw schema nodes, not page-level navigation)

NameRequiredDescriptionDefault

No parameters

move_flow_modelB

Move a flowPage block/model to a different position relative to another block.

NameRequiredDescriptionDefault
sourceIdYesUID of the flow model to move
targetIdYesUID of the target flow model (reference position)
positionNoTarget sort position index
remove_ui_schemaA

Remove a UI schema node and all its descendants by UID. DESTRUCTIVE — cannot be undone.

NameRequiredDescriptionDefault
uidYesUI schema UID to remove
save_as_templateB

Save an existing UI schema node as a reusable block template

NameRequiredDescriptionDefault
uidYesUI schema UID to save as template
valuesYesTemplate metadata (e.g. name, componentName, collectionName)
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.

NameRequiredDescriptionDefault
valuesYesFlow model data. Key fields: uid (optional), use (component type), parentId, subKey, subType, stepParams, sortIndex
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>);

NameRequiredDescriptionDefault
uidYesFlow model UID of the JS block (JSBlockModel)
codeYesJavaScript code using ctx.render(htmlString) sandbox API
update_js_blockA

Update the code content of a JS block UI schema by UID (for classic 'page' type pages, not flowPage)

NameRequiredDescriptionDefault
uidYesUI schema UID of the JS block
codeYesNew JavaScript code content
update_ui_schemaB

Patch an existing UI schema node by UID (partial update)

NameRequiredDescriptionDefault
uidYesUI schema UID
patchYesPartial schema fields to update (JSON)

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.5
    • Removedget_page_properties
  2. 24 tool updatesv1.0.0
    • First observedattach_flow_model
    • First observedbatch_patch_ui_schema
    • First observedcreate_page
    • First observeddestroy_flow_model
    • First observedduplicate_flow_model
    • First observedget_collection
    • First observedget_flow_model
    • First observedget_flow_model_by_parent
    • First observedget_js_block
    • First observedget_page
    • First observedget_page_properties
    • First observedget_parent_schema
    • First observedinsert_adjacent_schema
    • First observedinsert_new_schema
    • First observedlist_collections
    • First observedlist_desktop_routes
    • First observedlist_pages
    • First observedmove_flow_model
    • First observedremove_ui_schema
    • First observedsave_as_template
    • First observedsave_flow_model
    • First observedupdate_flow_js_block
    • First observedupdate_js_block
    • First observedupdate_ui_schema

TDQS

A3.7/5.0

Scored across 23 tools

Disambiguation4/5

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.

Naming Consistency5/5

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'.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An 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 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    22 npm
    6
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Remote 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
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that enables AI assistants to interact with the VoIPbin CPaaS platform, exposing tools for managing calls, flows, messaging, conferencing, and more.
    66
    1
    MIT