degree-dynamicweb-mcp
degree-dynamicweb-mcp
DynamicWeb 10 Admin API 用の MCP(Model Context Protocol)サーバーです。Claude Code に DynamicWeb のアイテムタイプ、フィールド、ページ、パラグラフ、API ディスカバリの管理機能へのフルアクセスを提供し、DW Admin UI に触れる必要はありません。
ツール
アイテムタイプ
ツール | 説明 |
| すべてのアイテムタイプを一覧表示 |
| アイテムタイプの詳細と制限を取得 |
| フィールド、グループ、制限を一度の呼び出しで指定してアイテムタイプを作成 |
| 設定を更新(名前、カテゴリ、アイコン、利用可否など) |
| 制限を更新(許可される親、子、ウェブサイトなど) |
| アイテムタイプを削除 |
スキーマメンテナンス
アイテムタイプ XML のデプロイはデータベースには触れません。スキーマが同期されるまで、列が存在しないフィールドはエラーなしで保存され、何も保持されません。
ツール | 説明 |
| DB 列が存在しないフィールドと、XML がもはや宣言していない列を報告 |
| アイテムタイプ XML を再読み込みし、欠落しているテーブルと列を作成 |
| アイテムタイプを使用しているページとパラグラフを一覧表示 |
| 破壊的操作。 アイテムタイプのテーブルから孤立した行を削除 |
新しい XML をデプロイした後は、dw_itemtype_sync_schema、次に dw_itemtype_health を実行します。同期エンドポイントは途中で中断された場合でも「ok」と応答するため、実際に機能したかどうかを教えてくれるのはヘルスチェックです。また、/Files/System/Log/items/ActivationWorkflow に実際のエラーが記録されます。テーブルが完全に存在しないアイテムタイプは、ヘルスレポートにまったく表示されません。
フィールド
ツール | 説明 |
| アイテムタイプのフィールドを一覧表示 |
| フィールドを追加または更新 |
| フィールドを削除 |
| DW インスタンスから利用可能なすべてのエディタタイプを一覧表示(ハードコードされていない) |
ページ
ツール | 説明 |
| ページを一覧表示。エリアまたは親でオプションでフィルタリング可能 |
| すべてのアイテムフィールドを含むページを取得 |
| 親の下にページを作成 |
| ページのアイテムフィールド値を設定 |
| ページを削除 |
| すべてのエリア(ウェブサイト)を一覧表示 |
パラグラフ
ツール | 説明 |
| ページ上のパラグラフを一覧表示 |
| すべてのアイテムフィールドを含むパラグラフを取得 |
| ページ上にパラグラフを作成 |
| パラグラフのアイテムフィールド値を設定 |
| パラグラフを削除 |
dw_page_set_fields と dw_paragraph_set_fields は自身の書き込みを検証します。アイテムタイプが宣言していないフィールド名はエラーとなり、そのアイテムタイプが持つ名前の一覧が表示されます。また、保存後にアイテムを読み戻し、現在保持されている値を返します。DW は値が保存されたかどうかに関係なく「ok」と応答するため、SystemName のタイポは以前は成功した書き込みと区別がつきませんでした。
製品
ツール | 説明 |
| 製品を一覧表示。グループまたは検索でオプションでフィルタリング可能 |
| 単一の製品を取得(CustomFields/CategoryFields を含む完全なモデル)。製品が存在しない場合は API エラーではなく |
| 製品のトップレベルフィールド、customFields、categoryFields を更新 |
| 1 つ以上の製品を削除 |
| グループまたは製品リスト全体の DefaultPrice にパーセント割引を適用 |
dw_product_update は 3 つの入力マップを受け付けます:
fields- トップレベルの製品フィールド(Name、DefaultPrice、Stock など)customFields- SystemName をキーとするグローバル製品カスタムフィールド値categoryFields- SystemName をキーとする製品カテゴリフィールド値
製品スキーマ
PIM データモデルを管理します:製品カテゴリ(属性のグループ)と製品フィールド(属性自体)。
ツール | 説明 |
| 15 種類の製品フィールドタイプを一覧表示(TypeId + エイリアス) |
| 製品カテゴリを一覧表示 |
| 製品カテゴリを作成または更新 |
| カテゴリを削除(3 ステップの DW ワークフローは内部で処理) |
| カテゴリに属するフィールドを一覧表示 |
| カテゴリのフィールドを作成または更新(タイプエイリアスを受け付けます) |
| 単一のカテゴリからフィールドを削除 |
ファイル
ツール | 説明 |
| ディレクトリ内のファイルを一覧表示。拡張子でオプションでフィルタリング可能 |
| サブディレクトリを一覧表示 |
デリバリー API(読み取り専用)
ツール | 説明 |
| Delivery API からエリアを取得 |
| コンテンツ付きのページを取得 |
| コンテンツ付きのパラグラフを取得 |
API ディスカバリ
ツール | 説明 |
| キーワードで Swagger 仕様からエンドポイントを検索 |
| エンドポイントのリクエスト/レスポンススキーマを取得 |
| 任意の 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 から設定するか、その設定ファイルに追加します:
{
"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-token3. クライアントを再起動する
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 クラス名の代わりに短いエイリアスを使用できます:
エイリアス | エディタ |
| TextEditor |
| LongTextEditor |
| RichTextEditor |
| RichTextEditorLight |
| FileEditor |
| FolderEditor |
| MediaEditor |
| LinkEditor |
| ItemLinkEditor |
| ItemRelationListEditor |
| IntegerEditor |
| DecimalEditor |
| DateEditor |
| DateTimeEditor |
| CheckboxEditor |
| CheckboxListEditor |
| DropDownListEditor |
| RadioButtonListEditor |
| EditableListEditor |
| ColorEditor |
| ColorSwatchEditor |
| ItemTypeEditor |
| ItemTypeTabEditor |
| UserEditor |
| SingleUserEditor |
| SingleUserGroupEditor |
| GeolocationEditor |
| GoogleFontEditor |
| HiddenFieldEditor |
| PasswordEditor |
完全な .NET エディタクラス名も受け付けられます。dw_field_types を使用して、DW インスタンスから利用可能なすべてのエディタを確認できます。
繰り返し可能なリスト(itemrelation)
itemrelation(ItemRelationListEditor)は子アイテムの繰り返し可能なリストを作成します。これは FAQ アイテム、行、人物などをモデル化するための汎用的な方法です(Question1..5 のような固定番号スロットの代わり)。追加の 2 つのパラメータが必要です:
Param | Required | Description |
| はい | リストが保持する子アイテムタイプの systemName。先に作成してください。 |
| いいえ | アイテムの保存場所。デフォルトは |
子アイテムタイプを先に作成し、次に親を作成します:
// 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(Item type / Item source)と、基になる Int32 型を自動的に生成します。
プロダクトフィールド(dw_product_field_save)
プロダクトフィールドは別のシステムを使用します。エディターのクラス名ではなく、FieldTypeAll の整数 TypeId を使用します:
Alias | TypeId | Name |
| 1 | テキスト (255) |
| 2 | 長いテキスト |
| 3 | チェックボックス |
| 4 | 日付 |
| 5 | 日付/時刻 |
| 6 | 整数 |
| 7 | 小数 |
| 8 | リンク |
| 9 | ファイル |
| 10 | テキスト (100) |
| 11 | テキスト (50) |
| 12 | テキスト (20) |
| 13 | テキスト (5) |
| 14 | エディター |
| 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 callsDW API サーフェス
DynamicWeb Admin API には、3 つの呼び出し規約があります:
Admin API(
GET /admin/api/{Endpoint})- URL パラメーターを使用したクエリCommand API(
POST /admin/api/{Endpoint})-{ Model: {...} }ボディを使用した変更。削除コマンドはフラットなボディ(Model ラッパーなし)を使用します。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 を再起動して新しいバージョンを反映してください。
Maintenance
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
- AlicenseAqualityBmaintenanceMCP server for Drupal sites via JSON:API, enabling CRUD operations on nodes, taxonomy terms, and users using natural language.8MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for TeamDesk databases, enabling CRUD operations, search, and document generation via natural language.3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Shopify Admin API. Enables product, order, customer, and inventory management via natural language.191MIT
- AlicenseAqualityCmaintenanceMCP server for Microsoft Dynamics 365 Business Central that enables AI assistants to query and manage Business Central data via full CRUD operations.630MIT
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
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