degree-dynamicweb-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DW_BASE_URL | Yes | Base URL of your DynamicWeb instance (e.g., https://your-dw-instance) | |
| DW_API_TOKEN | Yes | API token for authentication, created in DynamicWeb Admin under Settings > Developer > API Keys |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| dw_itemtype_listA | List all DynamicWeb item types. Returns systemName, name, category, fieldsCount, enabledFor. |
| dw_itemtype_getA | Get a single DynamicWeb item type by systemName, including all restrictions. |
| dw_itemtype_createA | Create a new DynamicWeb item type with fields and restrictions in one operation. |
| dw_itemtype_update_settingsA | Update Settings fields on an existing DynamicWeb item type. Only pass the fields you want to change — omitted ones are preserved from current state. Corresponds to the Settings tab in DW Admin (General, Availability, Title for new items, Advanced sections). |
| dw_itemtype_update_restrictionsA | Update restrictions on an existing DynamicWeb item type. |
| dw_itemtype_deleteC | Delete a DynamicWeb item type by systemName. |
| dw_field_listA | List all fields for a DynamicWeb item type. Returns systemName, type, required for each field. |
| dw_field_saveB | Add or update a field on a DynamicWeb item type. |
| dw_field_deleteC | Delete a field from a DynamicWeb item type. |
| dw_field_typesA | List all available field editor types from this DynamicWeb instance. Fetches the authoritative list from the DW AddIn registry — not hardcoded. Returns full .NET class names and short aliases you can use in dw_field_save and dw_itemtype_create. |
| dw_page_listA | List DynamicWeb pages. Filter by areaId (website ID) or parentPageId. |
| dw_page_getB | Get a single DynamicWeb page by ID, including all item fields. |
| dw_page_createA | Create a new DynamicWeb page under a parent page. |
| dw_page_set_fieldsA | Set item fields on a DynamicWeb page. Fetches the current page, updates field values in its pageItem structure, then saves. fields is a key-value map where keys are field SystemNames and values are the content. |
| dw_page_deleteB | Delete a DynamicWeb page by ID. This is irreversible. |
| dw_area_listB | List all DynamicWeb areas (websites/channels). |
| dw_paragraph_listC | List paragraphs on a DynamicWeb page. |
| dw_paragraph_getA | Get a single DynamicWeb paragraph by ID, including all item fields. |
| dw_paragraph_createA | Create a new paragraph on a DynamicWeb page. |
| dw_paragraph_set_fieldsA | Set item fields on a DynamicWeb paragraph. Fetches the current paragraph, updates field values in its contentItem structure, then saves. fields is a key-value map where keys are field SystemNames and values are the content. For richtext fields, provide HTML string. For file/image fields use the file path string (e.g. "/Files/Images/hero.jpg"). |
| dw_paragraph_deleteB | Delete a DynamicWeb paragraph by ID. |
| dw_content_areasA | Fetch all areas (websites) from DynamicWeb Delivery API. No auth required. |
| dw_content_pagesB | Fetch pages from DynamicWeb Delivery API. Returns pages with their item fields (content). Use pageId to get a specific page, or areaId to list all pages in a website. |
| dw_content_paragraphsA | Fetch paragraphs (content blocks) from DynamicWeb Delivery API. Returns paragraphs with their item fields. Use pageId to get all paragraphs for a specific page. |
| dw_api_searchA | Search the DynamicWeb Admin API Swagger spec for endpoints matching a keyword. Use this when you're unsure which endpoint to call — search by feature name (e.g. "navigation", "media", "user"). Returns matching paths with their HTTP methods and summaries. |
| dw_api_endpoint_schemaA | Get the full request/response schema for a specific DynamicWeb Admin API endpoint. Use this before calling an unknown endpoint to understand its parameters. |
| dw_api_callA | Make a raw call to any DynamicWeb Admin API endpoint. For GET: provide params as query params. For POST: choose bodyMode. - 'model' (default) — wraps your model in {"Model": ...}. Used by most Save endpoints that create new records. - 'raw' — sends your model as the top-level body (no wrapper). Used by delete-style commands (e.g. ProductDelete, ItemTypeDelete). Supports params in the URL. - 'update' — sends {RunUpdateIndex?, QueryData, model} and appends ?Query.Type=queryType. Used to UPDATE existing records via screen commands (e.g. ProductSave). For update mode: pass queryType (e.g. 'ProductById'), queryData (identifies the record: {Id, LanguageId, QueryContext:{screenTypeName:'ProductEdit'}}), and optionally extraFields (e.g. {RunUpdateIndex:true}). |
| dw_files_listB | List files in a DynamicWeb directory. Optionally filter by file extensions. |
| dw_files_directoriesC | List subdirectories in a DynamicWeb directory. |
| dw_product_listA | List DynamicWeb products. Filter by groupId (product catalog group) or search term. Returns id, number, name, defaultPrice, stock, active. Use pagingSize to control result count. |
| dw_product_getB | Get a single DynamicWeb product by ID. Returns the full model including CustomFields. |
| dw_product_updateA | Update fields on an existing DynamicWeb product. Fetches the current product, overlays your field updates, and saves via ProductSave (update mode, Query.Type=ProductById).
Manage the schema of customFields/categoryFields via dw_product_field_save / dw_product_category_save. |
| dw_product_deleteA | Delete one or more DynamicWeb products. Irreversible. IDs must be in modelIdentifier format: 'PROD1|LANG1|'. The tool accepts plain IDs too and auto-formats them. |
| dw_product_bulk_discountA | Apply a percentage discount to DefaultPrice across a set of products (modifies the base price in-place). Target either a groupId (all products in the group) or an explicit productIds array. Returns per-product old/new price. |
| dw_product_field_type_listA | List all DynamicWeb product field types (Text, Integer, Date, etc.) with their TypeId. Use the returned 'id' as TypeId in dw_product_field_save, or use a short alias (text, longtext, checkbox, date, datetime, number, decimal, link, file, richtext, dropdown). |
| dw_product_category_listB | List DynamicWeb product categories (groups of product attribute fields). Returns id, name, fieldsCount per category. |
| dw_product_category_saveA | Create or update a DynamicWeb product category (group of attribute fields). Set isNew: true to create, false to update an existing one. Category fields are added separately via dw_product_field_save with this category's id. |
| dw_product_category_deleteA | Delete one or more DynamicWeb product categories. Irreversible. Fields belonging to the categories must be deleted first via dw_product_field_delete - otherwise the validation step will reject them. Internally runs DW's 3-step delete: ProductCategorySetIds (mark candidates) → ProductCategoryDeleteValidated (get valid/invalid split) → ProductCategoryDelete. |
| dw_product_field_listA | List all product fields belonging to a category. Returns systemName, name, typeId, typeName, required. |
| dw_product_field_saveB | Create or update a product field (attribute) on a product category. Type can be a numeric TypeId or a short alias: text, longtext, checkbox, date, datetime, number, decimal, link, file, richtext, dropdown. Use dw_product_field_type_list for the full mapping. Field SystemName becomes the key the frontend reads via the product CustomFields/CategoryFields structure. |
| dw_product_field_deleteA | Delete one or more product fields from a single category. Irreversible. All ids must belong to the same categoryId. To delete fields across multiple categories, call this tool once per category. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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