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.

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

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