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

degree-dynamicweb-mcp

Servidor MCP (Model Context Protocol) para DynamicWeb 10 Admin API. Da a Claude Code acceso completo para gestionar los tipos de elemento, campos, páginas, párrafos y descubrimiento de API de DynamicWeb, sin tocar la DW Admin UI.

Herramientas

Tipos de elemento

Tool

Description

dw_itemtype_list

Lista todos los tipos de elemento

dw_itemtype_get

Obtiene los detalles y restricciones de un tipo de elemento

dw_itemtype_create

Crea un tipo de elemento con campos, grupos y restricciones en una sola llamada

dw_itemtype_update_settings

Actualiza la configuración (nombre, categoría, icono, disponibilidad, etc.)

dw_itemtype_update_restrictions

Actualiza las restricciones (padres permitidos, hijos, sitios web, etc.)

dw_itemtype_delete

Elimina un tipo de elemento

Mantenimiento del esquema

La implementación del XML de tipo de elemento no toca la base de datos. Hasta que el esquema se sincronice, un campo cuya columna falta se guarda sin error y no conserva nada.

Tool

Description

dw_itemtype_health

Informa de los campos a los que les falta la columna en la base de datos y de las columnas que el XML ya no declara

dw_itemtype_sync_schema

Recarga el XML del tipo de elemento y crea las tablas y columnas que faltan

dw_itemtype_usages

Lista las páginas y los párrafos que usan un tipo de elemento

dw_itemtype_clean_table

Destructivo. Elimina las filas huérfanas de la tabla de un tipo de elemento

Después de implementar el nuevo XML: dw_itemtype_sync_schema y luego dw_itemtype_health. El endpoint de sincronización responde "ok" incluso cuando se aborta a mitad, por lo que la comprobación de salud es lo que te dice si funcionó - y /Files/System/Log/items/ActivationWorkflow contiene los errores reales. Un tipo de elemento cuya tabla falta por completo no aparece en absoluto en el informe de salud.

Campos

Tool

Description

dw_field_list

Lista los campos de un tipo de elemento

dw_field_save

Añade o actualiza un campo

dw_field_delete

Elimina un campo

dw_field_types

Lista todos los tipos de editor disponibles desde la instancia de DW (no codificados de forma fija)

Páginas

Tool

Description

dw_page_list

Lista las páginas, opcionalmente filtradas por área o página principal

dw_page_get

Obtiene una página con todos los campos de elemento

dw_page_create

Crea una página bajo una página principal

dw_page_set_fields

Establece los valores de los campos de elemento en una página

dw_page_delete

Elimina una página

dw_area_list

Lista todas las áreas (sitios web)

Párrafos

Tool

Description

dw_paragraph_list

Lista los párrafos de una página

dw_paragraph_get

Obtiene un párrafo con todos los campos de elemento

dw_paragraph_create

Crea un párrafo en una página

dw_paragraph_set_fields

Establece los valores de los campos de elemento en un párrafo

dw_paragraph_delete

Elimina un párrafo

dw_page_set_fields y dw_paragraph_set_fields verifican su propia escritura. Un nombre de campo que el tipo de elemento no declara es un error que lista los nombres que sí tiene, y después de guardar leen el elemento de nuevo y devuelven lo que ahora contiene. DW responde "ok" tanto si se almacenó un valor como si no, por lo que un error tipográfico en un SystemName solía ser indistinguible de una escritura correcta.

Productos

Tool

Description

dw_product_list

Lista los productos, opcionalmente filtrados por grupo o búsqueda

dw_product_get

Obtiene un solo producto (modelo completo, incl. CustomFields/CategoryFields). Devuelve {found: false} para un producto inexistente en lugar de un error de API

dw_product_update

Actualiza los campos de nivel superior, customFields y categoryFields de un producto

dw_product_delete

Elimina uno o más productos

dw_product_bulk_discount

Aplica un descuento porcentual a DefaultPrice en un grupo o lista de productos

dw_product_update acepta tres mapas de entrada:

  • fields - campos de nivel superior del producto (Name, DefaultPrice, Stock, etc.)

  • customFields - valores de campos personalizados globales del producto, claveados por SystemName

  • categoryFields - valores de campos de categoría del producto, claveados por SystemName

Esquema de producto

Gestiona el modelo de datos de PIM: categorías de producto (grupos de atributos) y campos de producto (los propios atributos).

Tool

Description

dw_product_field_type_list

Lista los 15 tipos de campo de producto (TypeId + alias)

dw_product_category_list

Lista las categorías de producto

dw_product_category_save

Crea o actualiza una categoría de producto

dw_product_category_delete

Elimina categorías (flujo de trabajo de DW de 3 pasos gestionado internamente)

dw_product_field_list

Lista los campos que pertenecen a una categoría

dw_product_field_save

Crea o actualiza un campo en una categoría (acepta alias de tipo)

dw_product_field_delete

Elimina campos de una sola categoría

Archivos

Tool

Description

dw_files_list

Lista los archivos de un directorio, opcionalmente filtrados por extensión

dw_files_directories

Lista los subdirectorios

Delivery API (solo lectura)

Tool

Description

dw_content_areas

Obtiene las áreas desde Delivery API

dw_content_pages

Obtiene las páginas con contenido

dw_content_paragraphs

Obtiene los párrafos con contenido

Descubrimiento de API

Tool

Description

dw_api_search

Busca en la especificación de Swagger endpoints por palabra clave

dw_api_endpoint_schema

Obtiene el esquema de solicitud/respuesta de un endpoint

dw_api_call

Llamada sin procesar a cualquier endpoint de la API de administración

Related MCP server: TeamDesk MCP Server

Configuración

1. Obtén un token de API de DW

En DynamicWeb Admin, ve a Settings > Developer > API Keys y crea una nueva clave con acceso completo.

2. Configura tu cliente de IA

Añade a .mcp.json en tu proyecto:

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

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

Añade a ~/.cursor/mcp.json (global) o .cursor/mcp.json (proyecto):

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

Añade .vscode/mcp.json a tu proyecto (nota: usa servers, no 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"
      }
    }
  }
}

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

Configúralo mediante la interfaz de configuración de MCP de Cline, o añádelo a su configuración:

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

Añade a settings.json de Zed (nota: usa 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"
      }
    }
  }
}

Añade a ~/.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. Reinicia tu cliente

El servidor MCP se inicia automáticamente cuando se carga tu cliente de IA.

Desarrollo local

Si quieres ejecutarlo desde el código fuente en lugar del paquete publicado:

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

Luego usa "command": "node", "args": ["/path/to/degree-dynamicweb-mcp/dist/index.js"] en .mcp.json.

Alias de tipos de campo

Campos de tipo de elemento (dw_field_save, dw_itemtype_create)

Al crear campos, puedes usar alias cortos en lugar de los nombres de clase completos de .NET:

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

También se acepta cualquier nombre de clase de editor .NET completo. Usa dw_field_types para descubrir todos los editores disponibles desde tu instancia de DW.

Listas repetibles (itemrelation)

itemrelation (ItemRelationListEditor) crea una lista repetible de elementos secundarios — la forma genérica de modelar elementos de FAQ, filas, personas, etc. (en lugar de ranuras numeradas fijas como Question1..5). Necesita dos parámetros adicionales:

Parámetro

Obligatorio

Descripción

itemRelationType

systemName del tipo de elemento hijo que contiene la lista. Créelo primero.

itemSource

no

dónde viven los elementos. Por defecto CurrentParagraph (las filas se almacenan en el propietario).

Cree primero el tipo de elemento hijo y luego el padre:

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

La herramienta emite automáticamente los EditorConfiguration + EditorFields requeridos (Tipo de elemento / Origen del elemento) y el tipo subyacente Int32.

Campos de producto (dw_product_field_save)

Los campos de producto usan un sistema diferente: el TypeId entero de FieldTypeAll, no los nombres de clase de editor:

Alias

TypeId

Nombre

text / text255

1

Texto (255)

longtext

2

Texto largo

checkbox

3

Casilla de verificación

date

4

Fecha

datetime

5

Fecha/Hora

number / integer

6

Entero

decimal

7

Decimal

link

8

Enlace

file

9

Archivo

text100

10

Texto (100)

text50

11

Texto (50)

text20

12

Texto (20)

text5

13

Texto (5)

richtext / editor

14

Editor

list / dropdown

15

Lista

El TypeId numérico también se acepta directamente. Use dw_product_field_type_list para obtener la lista actualizada de su instancia de DW.

Arquitectura

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

Superficies de la API de DW

La API de administración de DynamicWeb tiene tres convenciones de llamada:

  1. Admin API (GET /admin/api/{Endpoint}) - consultas con parámetros de URL

  2. Command API (POST /admin/api/{Endpoint}) - mutaciones con cuerpo { Model: {...} }. Los comandos de eliminación usan cuerpo plano (sin envoltorio Model).

  3. Update API (POST /Admin/Api/{Endpoint}?Query.Type={Type}) - actualiza registros existentes con cuerpo { QueryData: {...}, model: {...} }

DwClient tiene métodos dedicados para cada una: get(), post(), command(), update(), delivery().

Desarrollo

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

Después de los cambios, ejecute npm run build y reinicie Claude Code para que se cargue la nueva versión.

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