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

degree-dynamicweb-mcp

MCP-Server (Model Context Protocol) für die DynamicWeb 10 Admin API. Gibt Claude Code vollen Zugriff auf die Verwaltung von DynamicWeb-Item-Typen, -Feldern, -Seiten, -Absätzen und API-Discovery – ohne die DW-Admin-Oberfläche zu berühren.

Tools

Item-Typen

Tool

Description

dw_itemtype_list

Alle Item-Typen auflisten

dw_itemtype_get

Details und Einschränkungen eines Item-Typs abrufen

dw_itemtype_create

Item-Typ mit Feldern, Gruppen und Einschränkungen in einem Aufruf erstellen

dw_itemtype_update_settings

Einstellungen aktualisieren (Name, Kategorie, Symbol, Verfügbarkeit usw.)

dw_itemtype_update_restrictions

Einschränkungen aktualisieren (erlaubte Eltern, Kinder, Websites usw.)

dw_itemtype_delete

Einen Item-Typ löschen

Schema-Wartung

Das Bereitstellen von Item-Typ-XML berührt die Datenbank nicht. Bis das Schema synchronisiert ist, speichert ein Feld, dessen Spalte fehlt, ohne Fehler und behält nichts.

Tool

Description

dw_itemtype_health

Felder melden, deren DB-Spalte fehlt, sowie Spalten, die das XML nicht mehr deklariert

dw_itemtype_sync_schema

Item-Typ-XML neu laden und die fehlenden Tabellen und Spalten erstellen

dw_itemtype_usages

Die Seiten und Absätze auflisten, die einen Item-Typ verwenden

dw_itemtype_clean_table

Destruktiv. Verwaiste Zeilen aus der Tabelle eines Item-Typs löschen

Nach dem Bereitstellen neuer XML: dw_itemtype_sync_schema, dann dw_itemtype_health. Der Sync-Endpunkt antwortet auch dann mit „ok“, wenn er mittendrin abgebrochen wurde. Der Health-Check verrät dir also, ob es funktioniert hat – und /Files/System/Log/items/ActivationWorkflow enthält die eigentlichen Fehler. Ein Item-Typ, dessen Tabelle vollständig fehlt, erscheint im Health-Bericht überhaupt nicht.

Felder

Tool

Description

dw_field_list

Felder eines Item-Typs auflisten

dw_field_save

Ein Feld hinzufügen oder aktualisieren

dw_field_delete

Ein Feld löschen

dw_field_types

Alle verfügbaren Editor-Typen aus der DW-Instanz auflisten (nicht fest codiert)

Seiten

Tool

Description

dw_page_list

Seiten auflisten, optional nach Bereich oder übergeordneter Seite gefiltert

dw_page_get

Eine Seite mit allen Item-Feldern abrufen

dw_page_create

Eine Seite unter einer übergeordneten Seite erstellen

dw_page_set_fields

Item-Feldwerte auf einer Seite festlegen

dw_page_delete

Eine Seite löschen

dw_area_list

Alle Bereiche (Websites) auflisten

Absätze

Tool

Description

dw_paragraph_list

Absätze auf einer Seite auflisten

dw_paragraph_get

Einen Absatz mit allen Item-Feldern abrufen

dw_paragraph_create

Einen Absatz auf einer Seite erstellen

dw_paragraph_set_fields

Item-Feldwerte auf einem Absatz festlegen

dw_paragraph_delete

Einen Absatz löschen

dw_page_set_fields und dw_paragraph_set_fields verifizieren ihren eigenen Schreibvorgang. Ein Feldname, den der Item-Typ nicht deklariert, ist ein Fehler, der die vorhandenen Namen auflistet. Nach dem Speichern lesen sie das Item erneut aus und geben zurück, was es jetzt enthält. DW antwortet mit „ok“, unabhängig davon, ob ein Wert gespeichert wurde. Ein Tippfehler in einem SystemName war daher früher nicht von einem erfolgreichen Schreibvorgang zu unterscheiden.

Produkte

Tool

Description

dw_product_list

Produkte auflisten, optional nach Gruppe oder Suche gefiltert

dw_product_get

Ein einzelnes Produkt abrufen (vollständiges Modell inkl. CustomFields/CategoryFields). Gibt für ein fehlendes Produkt {found: false} zurück statt eines API-Fehlers

dw_product_update

Top-Level-Felder, customFields und categoryFields eines Produkts aktualisieren

dw_product_delete

Ein oder mehrere Produkte löschen

dw_product_bulk_discount

Einen prozentualen Rabatt auf DefaultPrice für eine Gruppe oder Produktliste anwenden

dw_product_update akzeptiert drei Eingabe-Maps:

  • fields – Top-Level-Produktfelder (Name, DefaultPrice, Stock usw.)

  • customFields – globale Produkt-Custom-Field-Werte, mit SystemName als Schlüssel

  • categoryFields – Produktkategorie-Feldwerte, mit SystemName als Schlüssel

Produktschema

Verwalte das PIM-Datenmodell: Produktkategorien (Gruppen von Attributen) und Produktfelder (die Attribute selbst).

Tool

Description

dw_product_field_type_list

Die 15 Produktfeldtypen auflisten (TypeId + Aliase)

dw_product_category_list

Produktkategorien auflisten

dw_product_category_save

Eine Produktkategorie erstellen oder aktualisieren

dw_product_category_delete

Kategorien löschen (3-stufiger DW-Workflow wird intern abgewickelt)

dw_product_field_list

Felder auflisten, die zu einer Kategorie gehören

dw_product_field_save

Ein Feld in einer Kategorie erstellen oder aktualisieren (akzeptiert Typ-Aliase)

dw_product_field_delete

Felder aus einer einzelnen Kategorie löschen

Dateien

Tool

Description

dw_files_list

Dateien in einem Verzeichnis auflisten, optional nach Erweiterung gefiltert

dw_files_directories

Unterverzeichnisse auflisten

Delivery API (schreibgeschützt)

Tool

Description

dw_content_areas

Bereiche von der Delivery API abrufen

dw_content_pages

Seiten mit Inhalt abrufen

dw_content_paragraphs

Absätze mit Inhalt abrufen

API-Discovery

Tool

Description

dw_api_search

Die Swagger-Spezifikation nach Endpunkten anhand eines Schlüsselworts durchsuchen

dw_api_endpoint_schema

Anfrage-/Antwortschema für einen Endpunkt abrufen

dw_api_call

Roher Aufruf eines beliebigen Admin-API-Endpunkts

Related MCP server: TeamDesk MCP Server

Einrichtung

1. DW-API-Token abrufen

Gehe im DynamicWeb Admin zu Settings > Developer > API Keys und erstelle einen neuen Schlüssel mit vollem Zugriff.

2. KI-Client konfigurieren

Füge zu .mcp.json in deinem Projekt hinzu:

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

Bearbeite ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %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"
      }
    }
  }
}

Füge zu ~/.cursor/mcp.json (global) oder .cursor/mcp.json (Projekt) hinzu:

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

Füge .vscode/mcp.json zu deinem Projekt hinzu (Hinweis: verwendet servers, nicht mcpServers):

{
  "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"
      }
    }
  }
}

Bearbeite ~/.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"
      }
    }
  }
}

Konfiguriere über die MCP-Einstellungen von Cline oder füge es zu dessen Konfiguration hinzu:

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

Füge zu Zeds settings.json hinzu (Hinweis: verwendet 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"
      }
    }
  }
}

Füge zu ~/.continue/config.yaml hinzu:

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. Client neu starten

Der MCP-Server startet automatisch, wenn dein KI-Client geladen wird.

Lokale Entwicklung

Wenn du statt des veröffentlichten Pakets aus dem Quellcode ausführen möchtest:

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

Verwende dann "command": "node", "args": ["/path/to/degree-dynamicweb-mcp/dist/index.js"] in .mcp.json.

Feldtyp-Aliase

Item-Typ-Felder (dw_field_save, dw_itemtype_create)

Beim Erstellen von Feldern kannst du kurze Aliase anstelle der vollständigen .NET-Klassennamen verwenden:

Alias

Editor

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

Jeder vollständige .NET-Editor-Klassenname wird ebenfalls akzeptiert. Verwende dw_field_types, um alle verfügbaren Editoren aus deiner DW-Instanz zu ermitteln.

Wiederholbare Listen (itemrelation)

itemrelation (ItemRelationListEditor) erstellt eine wiederholbare Liste von Unterelementen – die generische Möglichkeit, FAQ-Einträge, Zeilen, Personen usw. zu modellieren (anstelle fester nummerierter Slots wie Question1..5). Es benötigt zwei zusätzliche Parameter:

Parameter

Erforderlich

Beschreibung

itemRelationType

ja

systemName des untergeordneten Elementtyps, den die Liste enthält. Erstellen Sie ihn zuerst.

itemSource

nein

wo die Elemente gespeichert sind. Standard: CurrentParagraph (Zeilen werden am Besitzer gespeichert).

Erstellen Sie zuerst den untergeordneten Elementtyp, dann den übergeordneten:

// 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" },
]}

Das Tool generiert automatisch die erforderlichen EditorConfiguration- und EditorFields-Werte (Elementtyp / Elementquelle) sowie den zugrunde liegenden Int32-Typ.

Produktfelder (dw_product_field_save)

Produktfelder verwenden ein anderes System - eine ganzzahlige TypeId aus FieldTypeAll, keine Editor-Klassennamen:

Alias

TypeId

Name

text / text255

1

Text (255)

longtext

2

Langtext

checkbox

3

Kontrollkästchen

date

4

Datum

datetime

5

Datum/Uhrzeit

number / integer

6

Ganzzahl

decimal

7

Dezimal

link

8

Link

file

9

Datei

text100

10

Text (100)

text50

11

Text (50)

text20

12

Text (20)

text5

13

Text (5)

richtext / editor

14

Editor

list / dropdown

15

Liste

Eine numerische TypeId wird ebenfalls direkt akzeptiert. Verwenden Sie dw_product_field_type_list, um die aktuelle Liste von Ihrer DW-Instanz abzurufen.

Architektur

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-Schnittstellen

Die DynamicWeb Admin API hat drei Aufrufkonventionen:

  1. Admin API (GET /admin/api/{Endpoint}) - Abfragen mit URL-Parametern

  2. Command API (POST /admin/api/{Endpoint}) - Mutationen mit { Model: {...} }-Body. Löschbefehle verwenden einen flachen Body (ohne Model-Wrapper).

  3. Update API (POST /Admin/Api/{Endpoint}?Query.Type={Type}) - aktualisiert vorhandene Datensätze mit { QueryData: {...}, model: {...} }-Body

DwClient bietet für jede Konvention dedizierte Methoden: get(), post(), command(), update(), delivery().

Entwicklung

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

Führen Sie nach Änderungen npm run build aus und starten Sie Claude Code neu, um die neue Version zu übernehmen.

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