Skip to main content
Glama
Degree-AS
by Degree-AS

degree-dynamicweb-mcp

DynamicWeb 10 Admin API용 MCP(Model Context Protocol) 서버입니다. Claude Code에 DynamicWeb 항목 유형, 필드, 페이지, 문단 및 API 검색을 관리할 수 있는 전체 액세스 권한을 제공하며 DW Admin UI를 건드릴 필요가 없습니다.

도구

항목 유형

Tool

Description

dw_itemtype_list

모든 항목 유형 나열

dw_itemtype_get

항목 유형 세부 정보 및 제한 사항 가져오기

dw_itemtype_create

한 번의 호출로 필드, 그룹, 제한 사항이 포함된 항목 유형 생성

dw_itemtype_update_settings

설정 업데이트 (이름, 카테고리, 아이콘, 사용 가능 여부 등)

dw_itemtype_update_restrictions

제한 사항 업데이트 (허용된 상위, 하위, 웹사이트 등)

dw_itemtype_delete

항목 유형 삭제

스키마 유지 관리

항목 유형 XML을 배포해도 데이터베이스는 변경되지 않습니다. 스키마가 동기화될 때까지, 열이 누락된 필드는 오류 없이 저장되지만 아무것도 유지되지 않습니다.

Tool

Description

dw_itemtype_health

DB 열이 누락된 필드와 XML이 더 이상 선언하지 않는 열을 보고합니다.

dw_itemtype_sync_schema

항목 유형 XML을 다시 로드하고 누락된 테이블과 열을 생성합니다.

dw_itemtype_usages

항목 유형을 사용하는 페이지와 문단을 나열합니다.

dw_itemtype_clean_table

파괴적 작업. 항목 유형 테이블에서 고아 행을 삭제합니다.

새 XML을 배포한 후: dw_itemtype_sync_schema, 그 다음 dw_itemtype_health. 동기화 엔드포인트는 중간에 중단되어도 "ok"로 응답하므로, 실제로 작동했는지 알려주는 것은 상태 점검입니다. 실제 오류는 /Files/System/Log/items/ActivationWorkflow에 있습니다. 테이블이 완전히 누락된 항목 유형은 상태 보고서에 아예 나타나지 않습니다.

필드

Tool

Description

dw_field_list

항목 유형의 필드 나열

dw_field_save

필드 추가 또는 업데이트

dw_field_delete

필드 삭제

dw_field_types

DW 인스턴스에서 사용 가능한 모든 편집기 유형 나열 (하드코딩 아님)

페이지

Tool

Description

dw_page_list

페이지 나열, 영역 또는 상위 항목으로 선택적 필터링

dw_page_get

모든 항목 필드가 포함된 페이지 가져오기

dw_page_create

상위 페이지 아래에 페이지 생성

dw_page_set_fields

페이지에 항목 필드 값 설정

dw_page_delete

페이지 삭제

dw_area_list

모든 영역(웹사이트) 나열

문단

Tool

Description

dw_paragraph_list

페이지의 문단 나열

dw_paragraph_get

모든 항목 필드가 포함된 문단 가져오기

dw_paragraph_create

페이지에 문단 생성

dw_paragraph_set_fields

문단에 항목 필드 값 설정

dw_paragraph_delete

문단 삭제

dw_page_set_fieldsdw_paragraph_set_fields는 자체 쓰기를 검증합니다. 항목 유형이 선언하지 않은 필드 이름은 오류로 처리되며, 해당 유형이 가진 이름 목록을 보여줍니다. 저장 후에는 항목을 다시 읽어 현재 보유한 값을 반환합니다. DW는 값이 저장되었는지 여부와 관계없이 "ok"로 응답하므로, SystemName의 오타는 이전에 성공적인 쓰기와 구분할 수 없었습니다.

제품

Tool

Description

dw_product_list

제품 나열, 그룹 또는 검색으로 선택적 필터링

dw_product_get

단일 제품 가져오기 (CustomFields/CategoryFields 포함 전체 모델). 제품이 없으면 API 오류 대신 {found: false} 반환

dw_product_update

제품의 최상위 필드, customFields, categoryFields 업데이트

dw_product_delete

하나 이상의 제품 삭제

dw_product_bulk_discount

그룹 또는 제품 목록의 DefaultPrice에 백분율 할인 적용

dw_product_update는 세 가지 입력 맵을 받습니다:

  • fields - 최상위 제품 필드 (Name, DefaultPrice, Stock 등)

  • customFields - SystemName을 키로 하는 전역 제품 사용자 정의 필드 값

  • categoryFields - SystemName을 키로 하는 제품 카테고리 필드 값

제품 스키마

PIM 데이터 모델을 관리합니다: 제품 카테고리(속성 그룹)와 제품 필드(속성 자체).

Tool

Description

dw_product_field_type_list

15가지 제품 필드 유형 나열 (TypeId + 별칭)

dw_product_category_list

제품 카테고리 나열

dw_product_category_save

제품 카테고리 생성 또는 업데이트

dw_product_category_delete

카테고리 삭제 (3단계 DW 워크플로우는 내부적으로 처리)

dw_product_field_list

카테고리에 속한 필드 나열

dw_product_field_save

카테고리에 필드 생성 또는 업데이트 (유형 별칭 허용)

dw_product_field_delete

단일 카테고리에서 필드 삭제

파일

Tool

Description

dw_files_list

디렉터리의 파일 나열, 확장자로 선택적 필터링

dw_files_directories

하위 디렉터리 나열

Delivery API (읽기 전용)

Tool

Description

dw_content_areas

Delivery API에서 영역 가져오기

dw_content_pages

콘텐츠가 포함된 페이지 가져오기

dw_content_paragraphs

콘텐츠가 포함된 문단 가져오기

API 검색

Tool

Description

dw_api_search

키워드로 Swagger 스펙에서 엔드포인트 검색

dw_api_endpoint_schema

엔드포인트의 요청/응답 스키마 가져오기

dw_api_call

모든 Admin API 엔드포인트에 대한 원시 호출

Related MCP server: TeamDesk MCP Server

설정

1. DW API 토큰 받기

DynamicWeb Admin에서 Settings > Developer > API Keys로 이동하여 전체 액세스 권한이 있는 새 키를 만듭니다.

2. AI 클라이언트 구성

프로젝트의 .mcp.json에 추가하세요:

{
  "mcpServers": {
    "dynamicweb": {
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

~/Library/Application Support/Claude/claude_desktop_config.json(macOS) 또는 %APPDATA%\Claude\claude_desktop_config.json(Windows)을 편집하세요:

{
  "mcpServers": {
    "dynamicweb": {
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

~/.cursor/mcp.json(전역) 또는 .cursor/mcp.json(프로젝트)에 추가하세요:

{
  "mcpServers": {
    "dynamicweb": {
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

프로젝트에 .vscode/mcp.json을 추가하세요 (참고: mcpServers가 아닌 servers를 사용합니다):

{
  "servers": {
    "dynamicweb": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

~/.codeium/windsurf/mcp_config.json을 편집하세요:

{
  "mcpServers": {
    "dynamicweb": {
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

Cline의 MCP 설정 UI를 통해 구성하거나 해당 config에 추가하세요:

{
  "mcpServers": {
    "dynamicweb": {
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

Zed의 settings.json에 추가하세요 (참고: context_servers를 사용합니다):

{
  "context_servers": {
    "dynamicweb": {
      "source": "custom",
      "command": "npx",
      "args": ["-y", "@degree-as/dynamicweb-mcp"],
      "env": {
        "DW_BASE_URL": "https://your-dw-instance",
        "DW_API_TOKEN": "your-token"
      }
    }
  }
}

~/.continue/config.yaml에 추가하세요:

mcpServers:
  - name: dynamicweb
    command: npx
    args:
      - -y
      - "@degree-as/dynamicweb-mcp"
    env:
      DW_BASE_URL: https://your-dw-instance
      DW_API_TOKEN: your-token

3. 클라이언트 다시 시작

MCP 서버는 AI 클라이언트가 로드될 때 자동으로 시작됩니다.

로컬 개발

게시된 패키지 대신 소스에서 실행하려면:

git clone https://github.com/Degree-AS/degree-dynamicweb-mcp.git
cd degree-dynamicweb-mcp
npm install
npm run build

그런 다음 .mcp.json에서 "command": "node", "args": ["/path/to/degree-dynamicweb-mcp/dist/index.js"]를 사용하세요.

필드 유형 별칭

항목 유형 필드 (dw_field_save, dw_itemtype_create)

필드를 만들 때 전체 .NET 클래스 이름 대신 짧은 별칭을 사용할 수 있습니다:

별칭

편집기

text

TextEditor

longtext

LongTextEditor

richtext

RichTextEditor

richtextlight

RichTextEditorLight

file / image

FileEditor

folder

FolderEditor

media

MediaEditor

link

LinkEditor

itemlink

ItemLinkEditor

itemrelation

ItemRelationListEditor

number

IntegerEditor

decimal

DecimalEditor

date

DateEditor

datetime

DateTimeEditor

checkbox

CheckboxEditor

checkboxlist

CheckboxListEditor

dropdown

DropDownListEditor

radiolist

RadioButtonListEditor

editablelist

EditableListEditor

color

ColorEditor

colorswatch

ColorSwatchEditor

itemtype

ItemTypeEditor

itemtab

ItemTypeTabEditor

user

UserEditor

singleuser

SingleUserEditor

usergroup

SingleUserGroupEditor

geolocation

GeolocationEditor

googlefont

GoogleFontEditor

hidden

HiddenFieldEditor

password

PasswordEditor

전체 .NET 편집기 클래스 이름도 허용됩니다. dw_field_types를 사용하여 DW 인스턴스에서 사용 가능한 모든 편집기를 확인하세요.

반복 가능한 목록 (itemrelation)

itemrelation(ItemRelationListEditor)은 하위 항목의 반복 가능한 목록을 만듭니다. FAQ 항목, 행, 사람 등을 모델링하는 일반적인 방법입니다 (고정된 번호 슬롯 Question1..5 대신). 두 개의 추가 매개변수가 필요합니다:

매개변수

필수

설명

itemRelationType

목록이 보유하는 하위 항목 유형의 systemName입니다. 먼저 생성하세요.

itemSource

아니요

항목이 저장되는 위치입니다. 기본값은 CurrentParagraph(소유자에 저장된 행)입니다.

하위 항목 유형을 먼저 생성한 다음, 상위 항목 유형을 생성하세요:

// 1) child row
dw_itemtype_create { systemName: "OpeningHoursRow", fields: [
  { name: "Label", systemName: "Label", type: "text" },
  { name: "Value", systemName: "Value", type: "text" },
]}
// 2) parent with the repeatable list
dw_itemtype_create { systemName: "OpeningHours", fields: [
  { name: "Title", systemName: "Title", type: "text" },
  { name: "Rows",  systemName: "Rows",  type: "itemrelation", itemRelationType: "OpeningHoursRow" },
]}

이 도구는 필요한 EditorConfiguration + EditorFields (항목 유형 / 항목 소스)와 Int32 기본 유형을 자동으로 생성합니다.

제품 필드 (dw_product_field_save)

제품 필드는 편집기 클래스 이름이 아닌 FieldTypeAll의 정수 TypeId를 사용하는 다른 시스템을 사용합니다:

별칭

TypeId

이름

text / text255

1

텍스트 (255)

longtext

2

긴 텍스트

checkbox

3

체크박스

date

4

날짜

datetime

5

날짜/시간

number / integer

6

정수

decimal

7

10진수

link

8

링크

file

9

파일

text100

10

텍스트 (100)

text50

11

텍스트 (50)

text20

12

텍스트 (20)

text5

13

텍스트 (5)

richtext / editor

14

편집기

list / dropdown

15

목록

숫자 TypeId도 직접 허용됩니다. dw_product_field_type_list를 사용하여 DW 인스턴스에서 최신 목록을 가져오세요.

아키텍처

src/
  index.ts          Entry point - reads config from env, registers tools
  client.ts         DwClient - HTTP client for Admin API, Update API, Delivery API
  utils.ts          Shared Zod helpers (jsonParam, numParam) and response helpers (prop, pascal)
  tools/
    itemTypes.ts    Item type CRUD, fields, restrictions, settings, editor discovery, schema health and sync
    pages.ts        Page and area management
    paragraphs.ts   Paragraph management (uses ParagraphNew + ParagraphSave)
    products.ts     Product CRUD, bulk discount, custom/category field value updates
    productSchema.ts Product categories and product field schema management
    files.ts        File and directory browsing
    delivery.ts     Read-only Delivery API
    discovery.ts    Swagger search, endpoint schema, raw API calls

DW API 인터페이스

DynamicWeb Admin API에는 세 가지 호출 방식이 있습니다:

  1. Admin API (GET /admin/api/{Endpoint}) - URL 매개변수로 쿼리합니다.

  2. Command API (POST /admin/api/{Endpoint}) - { Model: {...} } 본문으로 변경 작업을 수행합니다. 삭제 명령은 플랫 본문(Model 래퍼 없음)을 사용합니다.

  3. Update API (POST /Admin/Api/{Endpoint}?Query.Type={Type}) - { QueryData: {...}, model: {...} } 본문으로 기존 레코드를 업데이트합니다.

DwClient에는 각각에 대한 전용 메서드가 있습니다: get(), post(), command(), update(), delivery().

개발

npm run dev      # Run with tsx (hot reload)
npm run build    # Compile TypeScript
npm run start    # Run compiled version

변경 후 npm run build를 실행하고 Claude Code를 다시 시작하여 새 버전을 적용하세요.

A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for TeamDesk databases, enabling CRUD operations, search, and document generation via natural language.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Shopify Admin API. Enables product, order, customer, and inventory management via natural language.
    19
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for AI access to Swagger by SmartBear.

  • An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform

  • GibsonAI MCP server: manage your databases with natural language

View all MCP Connectors

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/Degree-AS/degree-dynamicweb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server