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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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