From 8f0ed106c75e29464aa4e7ddf3c06a1444bcb777 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Thu, 16 Jul 2026 18:36:36 +0300 Subject: [PATCH 01/13] [add] MCP server guide for Kanban docs - new guide explaining the DHTMLX MCP server and how it serves live Kanban documentation to AI coding assistants - setup instructions for Claude Code, Cursor, Google Antigravity, ChatGPT, and other MCP-aware tools - example prompts for cards/columns, editor fields, toolbar, and REST/multiuser sync scenarios - registered the new page in sidebars.js - yarn.lock updated for transitive dependency bumps (chokidar, readdirp, sass, immutable, docusaurus-plugin-sass) --- docs/guides/mcp-server.md | 245 ++++++++++++++++++++++++++++++++++++++ sidebars.js | 3 +- yarn.lock | 40 +++---- 3 files changed, 267 insertions(+), 21 deletions(-) create mode 100644 docs/guides/mcp-server.md diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md new file mode 100644 index 00000000..478b4666 --- /dev/null +++ b/docs/guides/mcp-server.md @@ -0,0 +1,245 @@ +--- +sidebar_label: DHTMLX MCP server +title: DHTMLX Kanban and the MCP server for AI tools +description: The MCP server gives AI tools access to current DHTMLX Kanban documentation, covering cards, columns, swimlanes, editor fields, and REST data sync. +--- + +# DHTMLX Kanban and the MCP server: live docs for AI + +A working [DHTMLX Kanban](/) board depends on several pieces fitting together correctly: card fields defined through `cardShape` must share a key with the matching `editorShape` entry, the Toolbar runs as its own widget bound to the board through the `api` parameter, and server sync relies on the exact action handlers exposed by `RestDataProvider`. An outdated training snapshot leaves an AI assistant merging card and editor fields into one config object, folding the Toolbar into the board's own constructor, or reaching for `RestDataProvider` methods that were renamed or removed since. + +The DHTMLX MCP server closes that gap by handing the assistant a live line into the Kanban documentation itself. Ask about [binding editor fields to card fields](guides/configuration.md#bind-editor-fields-to-card-fields), [customizing the Toolbar](guides/customization.md#custom-toolbar), or [connecting a RestDataProvider backend](guides/working_with_server.md), and the assistant pulls the current reference before writing any code. + +#### MCP endpoint + +~~~jsx +https://docs.dhtmlx.com/mcp +~~~ + +:::note +The DHTMLX MCP server covers all major DHTMLX products, not only DHTMLX Kanban. The same endpoint and configuration instructions work regardless of which DHTMLX component you are building with. +::: + +## What the MCP server unlocks for Kanban + +Under the hood, the server keeps a full index of the DHTMLX Kanban documentation, ready to serve requests like these: + +- Looking up the current API for Kanban [methods](api/overview/methods_overview.md), [events](api/overview/events_overview.md), and [properties](api/overview/properties_overview.md), including signatures and default values. +- Generating ready-to-run [initialization](guides/initialization.md) code for both the Kanban board and the separate Toolbar constructor. +- Configuring [card and editor fields](guides/configuration.md#cards) (`cardShape`, `editorShape`) and binding them by key, including combo, multiselect, color, date, and file field types. +- [Customizing](guides/customization.md) card templates, context menus, and column headers with the documented template callbacks. +- [Styling](guides/stylization.md) columns, rows, and cards with CSS variables and conditional CSS classes. +- [Localizing](guides/localization.md) the Kanban and Toolbar interfaces with built-in or custom locale objects. +- [Loading, exporting, and mutating](guides/working_with_data.md) cards, columns, rows, links, and comments through the data API. +- Connecting a [REST backend](guides/working_with_server.md) through `RestDataProvider`, or setting up a multiuser board that syncs changes over WebSocket. +- [Integrating](guides/integration.md) Kanban with other DHTMLX widgets such as Gantt and Scheduler, or with [React](guides/integration_with_react.md), [Vue](guides/integration_with_vue.md), [Angular](guides/integration_with_angular.md), and [Svelte](guides/integration_with_svelte.md). + +## Under the hood: how the MCP server responds + +Behind the endpoint, the DHTMLX MCP server pairs a Retrieval-Augmented Generation (RAG) index with the Model Context Protocol (MCP), so an assistant can pull live Kanban documentation into a request instead of leaning on whatever it learned during training. Two workflows sit behind that index, Search and Inference, and the calling agent picks whichever one fits the request. + +For example, when you ask *"How do I bind a custom `editorShape` field to a `cardShape` field so the value shows up both on the card and in the editor in DHTMLX Kanban?"*, the assistant sends the prompt through the MCP endpoint. For a code-generation request like this one, it typically calls Search: the workflow finds the matching field-binding documentation, returns the relevant reference pages as context, and the assistant turns them into code based on the current API rather than a training snapshot. For a question with a single correct answer, the assistant can call Inference instead: the workflow reads the reference pages itself and returns a ready-made answer directly, so the assistant relays that answer rather than composing one from raw pages. + +## Adding the MCP endpoint to your AI tool + +Teams building Kanban boards often keep an AI assistant open alongside the editor to wire up cards, columns, and server sync. Most AI development tools let you add MCP endpoints through a CLI command or a JSON configuration file, in either case by registering the server URL. + +~~~jsx +https://docs.dhtmlx.com/mcp +~~~ + +Below are setup instructions for commonly used tools. + +### Claude Code + +:::info +The [official documentation](https://code.claude.com/docs/en/mcp) covers all options for connecting Claude Code with MCP servers. +::: + +To register the server from the command line, run: + +~~~jsx +claude mcp add --transport http dhtmlx-mcp https://docs.dhtmlx.com/mcp +~~~ + +For manual setup, add the following to your `mcp.json`: + +~~~jsx +{ + "mcpServers": { + "dhtmlx-mcp": { + "type": "http", + "url": "https://docs.dhtmlx.com/mcp" + } + } +} +~~~ + +### Cursor + +:::info +The [official documentation](https://cursor.com/en-US/docs/mcp) covers all MCP configuration options for Cursor. +::: + +Steps to add the server: + +1. Open Settings (`Cmd+Shift+J` on Mac, `Ctrl+Shift+J` on Windows/Linux) +2. Go to **Tools & MCP** +3. Click **Add Custom MCP** +4. Paste the following config: + +~~~jsx +{ + "mcpServers": { + "dhtmlx-mcp": { + "url": "https://docs.dhtmlx.com/mcp" + } + } +} +~~~ + +### Google Antigravity + +#### Antigravity 2.0 + +:::info +Refer to the [official documentation](https://antigravity.google/docs/mcp) for full details on MCP server integration in Antigravity. +::: + +These are the steps to complete for connecting DHTMLX MCP server with Google Antigravity: + +1. Open the command palette +2. Type "mcp add" +3. Select "HTTP" +4. Provide the following values: +- Name: +~~~jsx +dhtmlx-mcp +~~~ +- URL: +~~~jsx +https://docs.dhtmlx.com/mcp +~~~ + +#### Antigravity CLI + +:::info +Check the [related guide](https://antigravity.google/docs/gcli-migration#mcp-config-formatting-changes) to learn about migration from Gemini CLI to Antigravity CLI. +::: + +To connect the DHTMLX MCP server to Antigravity CLI, create `mcp_config.json` in one of these locations: + +- Global: `~/.gemini/config/mcp_config.json` +- Workspace: `.agents/mcp_config.json` + +Add the following configuration: + +~~~jsx +{ + "mcpServers": { + "dhtmlx-mcp": { + "serverUrl": "https://docs.dhtmlx.com/mcp" + } + } +} +~~~ + +Then run `agy` in the terminal. + +### ChatGPT + +:::info +The [official documentation](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt) covers MCP connector setup for ChatGPT. +::: + +Steps to configure the connector: + +1. Go to **Settings** → **Apps & Connectors** +2. Click **Advanced settings** +3. Enable **Developer mode** +4. Return to **Apps & Connectors** and click "Create" +5. Fill in the connector details: +- Name: +~~~jsx +dhtmlx-mcp +~~~ +- URL: +~~~jsx +https://docs.dhtmlx.com/mcp +~~~ +- Authentication: `No authentication` +6. Click **Create** + +After you create the connector, ChatGPT pulls documentation from the MCP server during conversations. + +:::info +For intensive coding workflows, other MCP-aware tools may be a better fit. +::: + +### Other tools + +Many modern AI coding tools expose MCP support under labels such as "Model Context Protocol", "Context Sources", or similar. Add `https://docs.dhtmlx.com/mcp` as a custom source in the relevant settings panel. + +## What the MCP server does with your data + +The MCP server is a hosted service: nothing runs on your machine, no files from your project are read, and no personal data is stored. + +Debugging and service-improvement work may involve logging queries. + +For stricter privacy requirements, organizations can request a commercial deployment with query logging turned off. Reach out to `info@dhtmlx.com` for details. + +## Prompts to try for Kanban boards + +A prompt that names a concrete Kanban goal gives the assistant enough to know which part of the API to pull up, so aim for that level of detail rather than a vague description. The list below groups prompts by task; copy one and swap in your own details. + +**Cards, columns, and swimlanes** + +~~~ +How do I let users drag cards between columns and rows in DHTMLX Kanban? Use the docs. +~~~ +~~~ +How do I limit the number of cards allowed in a specific column or swimlane? +~~~ +~~~ +How do I duplicate a card and move the copy to a different row using the Kanban API? +~~~ + +**Editor and field types** + +~~~ +How do I bind a custom editorShape field to a cardShape field so it appears on the card and in the editor? +~~~ +~~~ +How do I configure a multiselect field with user avatars in the DHTMLX Kanban editor? +~~~ +~~~ +How do I enable autosave with a debounce delay in the DHTMLX Kanban editor? +~~~ + +**Toolbar and board controls** + +~~~ +How do I add a custom search control to the Kanban Toolbar and bind it to the board? +~~~ +~~~ +How do I remove the undo and redo controls from the DHTMLX Kanban Toolbar? +~~~ + +**REST and multiuser sync** + +~~~ +How do I connect RestDataProvider to a Go backend and load the initial Kanban data? +~~~ +~~~ +How do I override getHandlers() in RestDataProvider to add a custom action handler? +~~~ +~~~ +How do I set up a multiuser DHTMLX Kanban board that syncs changes in real time over WebSocket? +~~~ + +## Getting sharper results from Kanban prompts + +- **Name the target element.** Distinguish between the board, a column, a row (swimlane), and a card (for example, "on the Kanban board" vs. "for a specific row" vs. "on a card in the Testing column"). A precise target helps the server retrieve the right reference pages. +- **Specify the field type.** `cardShape` and `editorShape` support many field types (combo, multiselect, color, date, files). Name the type explicitly (for example, "a multiselect field with avatars") instead of "a field" so the assistant pulls the matching configuration reference. +- **Add "Use the docs"** to your prompt. This phrase signals to the assistant that it should trigger an MCP lookup instead of answering from training data alone. It matters most for `RestDataProvider` handlers and field configuration, where the API is most likely to have changed. +- **State whether the operation is client-side or server-side.** Kanban works with local data as well as a `RestDataProvider`-backed REST API. Mention which one applies (for example, "using RestDataProvider" or "without a backend") so the assistant does not mix REST-specific calls into a client-only example. diff --git a/sidebars.js b/sidebars.js index 467c0491..b286b15d 100644 --- a/sidebars.js +++ b/sidebars.js @@ -477,7 +477,8 @@ module.exports = { //"guides/integration", "guides/working_with_data", //"guides/working_with_server", - "guides/typescript_support" + "guides/typescript_support", + "guides/mcp-server" ] }, { diff --git a/yarn.lock b/yarn.lock index 0015ecb5..06385f9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3858,12 +3858,12 @@ chokidar@^3.5.3, chokidar@^3.6.0: optionalDependencies: fsevents "~2.3.2" -chokidar@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== +chokidar@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-5.0.0.tgz#949c126a9238a80792be9a0265934f098af369a5" + integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== dependencies: - readdirp "^4.0.1" + readdirp "^5.0.0" chrome-trace-event@^1.0.2: version "1.0.4" @@ -4568,7 +4568,7 @@ dns-packet@^5.2.2: dependencies: "@leichtgewicht/ip-codec" "^2.0.1" -docusaurus-plugin-sass@^0.2.5: +docusaurus-plugin-sass@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.6.tgz#b4930a1fe1cc7bcead639bb1bee38bce0ffd073d" integrity sha512-2hKQQDkrufMong9upKoG/kSHJhuwd+FA3iAe/qzS/BmWpbIpe7XKmq5wlz4J5CJaOPu4x+iDJbgAxZqcoQf0kg== @@ -5833,10 +5833,10 @@ image-size@^2.0.2: resolved "https://registry.yarnpkg.com/image-size/-/image-size-2.0.2.tgz#84a7b43704db5736f364bf0d1b029821299b4bdc" integrity sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w== -immutable@^5.0.2: - version "5.1.4" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f" - integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== +immutable@^5.1.5: + version "5.1.9" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.9.tgz#ac23c3a01992ab665e14ac9ffff298f28cd74a0c" + integrity sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.1" @@ -8591,10 +8591,10 @@ readable-stream@^3.0.6: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== +readdirp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-5.0.0.tgz#fbf1f71a727891d685bb1786f9ba74084f6e2f91" + integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ== readdirp@~3.6.0: version "3.6.0" @@ -8972,13 +8972,13 @@ sass-loader@^16.0.2: dependencies: neo-async "^2.6.2" -sass@^1.70.0: - version "1.97.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.3.tgz#9cb59339514fa7e2aec592b9700953ac6e331ab2" - integrity sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg== +sass@^1.98.0: + version "1.101.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.101.0.tgz#c2db5bbf2f956be7277f6223b899d0d4be3c899b" + integrity sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw== dependencies: - chokidar "^4.0.0" - immutable "^5.0.2" + chokidar "^5.0.0" + immutable "^5.1.5" source-map-js ">=0.6.2 <2.0.0" optionalDependencies: "@parcel/watcher" "^2.4.1" From 9f33809349627b1c882ae345cdc9c129c8401614 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Mon, 20 Jul 2026 09:56:08 +0300 Subject: [PATCH 02/13] [update] italicize Search/Inference terms in MCP guide - emphasized workflow names for consistency with rest of doc --- docs/guides/mcp-server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 478b4666..e893f192 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -36,9 +36,9 @@ Under the hood, the server keeps a full index of the DHTMLX Kanban documentation ## Under the hood: how the MCP server responds -Behind the endpoint, the DHTMLX MCP server pairs a Retrieval-Augmented Generation (RAG) index with the Model Context Protocol (MCP), so an assistant can pull live Kanban documentation into a request instead of leaning on whatever it learned during training. Two workflows sit behind that index, Search and Inference, and the calling agent picks whichever one fits the request. +Behind the endpoint, the DHTMLX MCP server pairs a Retrieval-Augmented Generation (RAG) index with the Model Context Protocol (MCP), so an assistant can pull live Kanban documentation into a request instead of leaning on whatever it learned during training. Two workflows sit behind that index, *Search* and *Inference*, and the calling agent picks whichever one fits the request. -For example, when you ask *"How do I bind a custom `editorShape` field to a `cardShape` field so the value shows up both on the card and in the editor in DHTMLX Kanban?"*, the assistant sends the prompt through the MCP endpoint. For a code-generation request like this one, it typically calls Search: the workflow finds the matching field-binding documentation, returns the relevant reference pages as context, and the assistant turns them into code based on the current API rather than a training snapshot. For a question with a single correct answer, the assistant can call Inference instead: the workflow reads the reference pages itself and returns a ready-made answer directly, so the assistant relays that answer rather than composing one from raw pages. +For example, when you ask *"How do I bind a custom `editorShape` field to a `cardShape` field so the value shows up both on the card and in the editor in DHTMLX Kanban?"*, the assistant sends the prompt through the MCP endpoint. For a code-generation request like this one, it typically calls *Search*: the workflow finds the matching field-binding documentation, returns the relevant reference pages as context, and the assistant turns them into code based on the current API rather than a training snapshot. For a question with a single correct answer, the assistant can call *Inference* instead: the workflow reads the reference pages itself and returns a ready-made answer directly, so the assistant relays that answer rather than composing one from raw pages. ## Adding the MCP endpoint to your AI tool From c8af9e4f23d76b0723e3c1baab0776ffb9be66b6 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Mon, 20 Jul 2026 13:28:08 +0300 Subject: [PATCH 03/13] [update] fix Kanban MCP guide title/H1 tail collision - reworded the title and H1 tail so they no longer match Spreadsheet and Todolist's near-identical "MCP server for AI tools/assistants" ending, which all three converged on after being reworded to lead with the keyword phrase for SEO --- docs/guides/mcp-server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index e893f192..0a9172eb 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -1,10 +1,10 @@ --- sidebar_label: DHTMLX MCP server -title: DHTMLX Kanban and the MCP server for AI tools +title: DHTMLX Kanban and the MCP server for building with AI description: The MCP server gives AI tools access to current DHTMLX Kanban documentation, covering cards, columns, swimlanes, editor fields, and REST data sync. --- -# DHTMLX Kanban and the MCP server: live docs for AI +# DHTMLX Kanban and the MCP server: build with live docs A working [DHTMLX Kanban](/) board depends on several pieces fitting together correctly: card fields defined through `cardShape` must share a key with the matching `editorShape` entry, the Toolbar runs as its own widget bound to the board through the `api` parameter, and server sync relies on the exact action handlers exposed by `RestDataProvider`. An outdated training snapshot leaves an AI assistant merging card and editor fields into one config object, folding the Toolbar into the board's own constructor, or reaching for `RestDataProvider` methods that were renamed or removed since. From be38a0d565a52fcc7d5080c087c78ec6fb6ee765 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Mon, 20 Jul 2026 15:21:45 +0300 Subject: [PATCH 04/13] [update] fix heading skip and add inbound links to MCP guide - changed the MCP endpoint block from a heading to bold text to avoid skipping a heading level (H1 straight to H4) - added inbound links to the guide from index.md, how_to_start.md, and howtos.md, since it previously had no discovery path outside the sidebar --- docs/guides/mcp-server.md | 2 +- docs/how_to_start.md | 2 +- docs/howtos.md | 1 + docs/index.md | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 0a9172eb..4d005dd1 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -10,7 +10,7 @@ A working [DHTMLX Kanban](/) board depends on several pieces fitting together co The DHTMLX MCP server closes that gap by handing the assistant a live line into the Kanban documentation itself. Ask about [binding editor fields to card fields](guides/configuration.md#bind-editor-fields-to-card-fields), [customizing the Toolbar](guides/customization.md#custom-toolbar), or [connecting a RestDataProvider backend](guides/working_with_server.md), and the assistant pulls the current reference before writing any code. -#### MCP endpoint +**MCP endpoint** ~~~jsx https://docs.dhtmlx.com/mcp diff --git a/docs/how_to_start.md b/docs/how_to_start.md index c57789b0..02220a1f 100644 --- a/docs/how_to_start.md +++ b/docs/how_to_start.md @@ -126,4 +126,4 @@ new kanban.Toolbar("#toolbar", { ## What's next -That's all. Just three simple steps and you have a handy tool for visualizing and managing the workflow. Now you can start working with your tasks or keep exploring the inner world of JavaScript Kanban. +That's all. Just three simple steps and you have a handy tool for visualizing and managing the workflow. Now you can start working with your tasks or keep exploring the inner world of JavaScript Kanban. Building with an AI coding assistant? Point it at the live docs through the [DHTMLX MCP server](guides/mcp-server.md). diff --git a/docs/howtos.md b/docs/howtos.md index 224bff8f..ad1f0dba 100644 --- a/docs/howtos.md +++ b/docs/howtos.md @@ -19,6 +19,7 @@ In this section you can find out basic principles of work with Kanban | [Customization](guides/customization.md) | Learn how to customize Kanban | | [Stylization](guides/stylization.md) | Learn how to stylize Kanban | | [Localization](guides/localization.md) | Learn how to localize Kanban ([Example](https://snippet.dhtmlx.com/hrblf1mm?tag=kanban))| +| [DHTMLX MCP server](guides/mcp-server.md) | Connect an AI coding assistant to live Kanban documentation | ## API reference diff --git a/docs/index.md b/docs/index.md index 03d9fb33..d8937530 100644 --- a/docs/index.md +++ b/docs/index.md @@ -70,4 +70,4 @@ import editor from '@site/static/img/js_kanban_editor.png'; ## What's next -Now you can get down to using Kanban in your application. Follow the directions of the [How to start](how_to_start.md) tutorial for guidance. +Now you can get down to using Kanban in your application. Follow the directions of the [How to start](how_to_start.md) tutorial for guidance. If you build with an AI coding assistant, connect it to the live documentation through the [DHTMLX MCP server](guides/mcp-server.md). From e5825115d32ff960452904f74fba46ad9fa55a8b Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Mon, 20 Jul 2026 17:25:54 +0300 Subject: [PATCH 05/13] [dev] clarify mcp-server guide wording - reworded RAG/MCP explanation for clarity - adjusted example and prompt-writing guidance wording --- docs/guides/mcp-server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 4d005dd1..b4fde16e 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -36,9 +36,9 @@ Under the hood, the server keeps a full index of the DHTMLX Kanban documentation ## Under the hood: how the MCP server responds -Behind the endpoint, the DHTMLX MCP server pairs a Retrieval-Augmented Generation (RAG) index with the Model Context Protocol (MCP), so an assistant can pull live Kanban documentation into a request instead of leaning on whatever it learned during training. Two workflows sit behind that index, *Search* and *Inference*, and the calling agent picks whichever one fits the request. +Ask the MCP server the same question twice and you can get two different kinds of response, because the calling agent picks between two workflows depending on the request. *Search* pulls the matching Kanban reference pages and hands them to the assistant, which writes the answer itself; *Inference* reads those same pages and writes the answer for the assistant instead. Both draw on a Retrieval-Augmented Generation (RAG) index built from the current documentation, reached through the Model Context Protocol (MCP) endpoint. -For example, when you ask *"How do I bind a custom `editorShape` field to a `cardShape` field so the value shows up both on the card and in the editor in DHTMLX Kanban?"*, the assistant sends the prompt through the MCP endpoint. For a code-generation request like this one, it typically calls *Search*: the workflow finds the matching field-binding documentation, returns the relevant reference pages as context, and the assistant turns them into code based on the current API rather than a training snapshot. For a question with a single correct answer, the assistant can call *Inference* instead: the workflow reads the reference pages itself and returns a ready-made answer directly, so the assistant relays that answer rather than composing one from raw pages. +For example, when you ask *"How do I bind a custom `editorShape` field to a `cardShape` field so the value shows up both on the card and in the editor in DHTMLX Kanban?"*, the assistant sends the prompt through the MCP endpoint. For a code-generation request like this one, it typically calls *Search*: the workflow finds the matching field-binding documentation, returns the relevant reference pages as context, and the assistant turns them into code using whatever the current API actually looks like, not what it looked like at training time. For a question with a single correct answer, the assistant can call *Inference* instead: the workflow reads the reference pages itself and returns a ready-made answer directly, so the assistant relays that answer rather than composing one from raw pages. ## Adding the MCP endpoint to your AI tool @@ -190,7 +190,7 @@ For stricter privacy requirements, organizations can request a commercial deploy ## Prompts to try for Kanban boards -A prompt that names a concrete Kanban goal gives the assistant enough to know which part of the API to pull up, so aim for that level of detail rather than a vague description. The list below groups prompts by task; copy one and swap in your own details. +The API surface DHTMLX Kanban exposes is large, so tell the assistant exactly which piece you mean: a card, a column, the Toolbar, or the REST layer. The prompts below are grouped that way; borrow one and adjust the specifics. **Cards, columns, and swimlanes** From 82ab5ab1e0c8f46dc79001f136da3ca512cdefe8 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Tue, 28 Jul 2026 14:44:17 +0300 Subject: [PATCH 06/13] [update] vary Setup-section wording in MCP guide - reworded the Setup section's intro sentence, five tool-specific info boxes (Claude Code, Cursor, Antigravity 2.0, Antigravity CLI, ChatGPT), and the "Other tools" paragraph so they no longer read as verbatim-identical to the same content in the Spreadsheet, Todolist, Diagram, Booking, Pivot, and Vault MCP guides - same links and facts, different sentence construction throughout --- docs/guides/mcp-server.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index b4fde16e..5e1ec549 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -42,7 +42,7 @@ For example, when you ask *"How do I bind a custom `editorShape` field to a `car ## Adding the MCP endpoint to your AI tool -Teams building Kanban boards often keep an AI assistant open alongside the editor to wire up cards, columns, and server sync. Most AI development tools let you add MCP endpoints through a CLI command or a JSON configuration file, in either case by registering the server URL. +Prefer the terminal or a config file? Either path registers the same MCP endpoint, and once it's set for a tool, every Kanban board you build in that tool can reach it. ~~~jsx https://docs.dhtmlx.com/mcp @@ -53,7 +53,7 @@ Below are setup instructions for commonly used tools. ### Claude Code :::info -The [official documentation](https://code.claude.com/docs/en/mcp) covers all options for connecting Claude Code with MCP servers. +See Claude Code's own [documentation](https://code.claude.com/docs/en/mcp) for every supported way to register an MCP server. ::: To register the server from the command line, run: @@ -78,7 +78,7 @@ For manual setup, add the following to your `mcp.json`: ### Cursor :::info -The [official documentation](https://cursor.com/en-US/docs/mcp) covers all MCP configuration options for Cursor. +For every MCP configuration path Cursor supports, see its [official documentation](https://cursor.com/en-US/docs/mcp). ::: Steps to add the server: @@ -103,7 +103,7 @@ Steps to add the server: #### Antigravity 2.0 :::info -Refer to the [official documentation](https://antigravity.google/docs/mcp) for full details on MCP server integration in Antigravity. +Full MCP integration details for Antigravity live in the [official documentation](https://antigravity.google/docs/mcp). ::: These are the steps to complete for connecting DHTMLX MCP server with Google Antigravity: @@ -124,7 +124,7 @@ https://docs.dhtmlx.com/mcp #### Antigravity CLI :::info -Check the [related guide](https://antigravity.google/docs/gcli-migration#mcp-config-formatting-changes) to learn about migration from Gemini CLI to Antigravity CLI. +The [related guide](https://antigravity.google/docs/gcli-migration#mcp-config-formatting-changes) covers migrating from Gemini CLI to Antigravity CLI. ::: To connect the DHTMLX MCP server to Antigravity CLI, create `mcp_config.json` in one of these locations: @@ -149,7 +149,7 @@ Then run `agy` in the terminal. ### ChatGPT :::info -The [official documentation](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt) covers MCP connector setup for ChatGPT. +ChatGPT's [official documentation](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt) walks through the full MCP connector setup. ::: Steps to configure the connector: @@ -178,7 +178,7 @@ For intensive coding workflows, other MCP-aware tools may be a better fit. ### Other tools -Many modern AI coding tools expose MCP support under labels such as "Model Context Protocol", "Context Sources", or similar. Add `https://docs.dhtmlx.com/mcp` as a custom source in the relevant settings panel. +Tools without a dedicated section here usually still support MCP, often labeled "Model Context Protocol" or "Context Sources" in settings. Add `https://docs.dhtmlx.com/mcp` there as a custom source. ## What the MCP server does with your data From f1c7fec1d2f41762ad4c2765d0b723248bc8810e Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Wed, 29 Jul 2026 13:48:05 +0300 Subject: [PATCH 07/13] [update] vary tool-list lead-in sentence in MCP guide - reworded "Below are setup instructions for commonly used tools." which was copied verbatim across seven guides (Kanban, Spreadsheet, Todolist, Booking, Pivot, Vault, RichText) --- docs/guides/mcp-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 5e1ec549..814f5f74 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -48,7 +48,7 @@ Prefer the terminal or a config file? Either path registers the same MCP endpoin https://docs.dhtmlx.com/mcp ~~~ -Below are setup instructions for commonly used tools. +Setup steps for the most common tools follow below. ### Claude Code From f8fe5ff70725c0b0df9801bb9f565d3ca68baae4 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Wed, 29 Jul 2026 15:54:14 +0300 Subject: [PATCH 08/13] [fix] add stable anchor to bind-editor-fields heading - the "Bind editor fields to card fields" heading had no explicit anchor ID, so translated locales (de, ru, zh, ko) auto-generated their own slug from the translated heading text instead of the English one - this broke the MCP server guide's link to this section in every translated locale (confirmed via build) - added {#bind-editor-fields-to-card-fields} to the heading in the English source and all four translations, matching the existing pattern already used on the neighboring "Configure editor behavior" heading --- docs/guides/configuration.md | 2 +- .../current/guides/configuration.md | 2 +- .../current/guides/configuration.md | 2 +- .../current/guides/configuration.md | 2 +- .../current/guides/configuration.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/guides/configuration.md b/docs/guides/configuration.md index 186d61a1..2aa58c67 100644 --- a/docs/guides/configuration.md +++ b/docs/guides/configuration.md @@ -377,7 +377,7 @@ new kanban.Kanban("#root", { }); ~~~ -### Bind editor fields to card fields +### Bind editor fields to card fields {#bind-editor-fields-to-card-fields} Each editor field links to a card field through a shared `key`. Set the same `key` value in the [`editorShape`](api/config/js_kanban_editorshape_config.md) entry and in the [`cardShape`](api/config/js_kanban_cardshape_config.md) property. For built-in card fields, set the key to `true`. For custom fields, list the key in the `headerFields` array. The same key supplies initial card data. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/guides/configuration.md b/i18n/de/docusaurus-plugin-content-docs/current/guides/configuration.md index 431f84fc..9c6e3bfc 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/guides/configuration.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/guides/configuration.md @@ -377,7 +377,7 @@ new kanban.Kanban("#root", { }); ~~~ -### Editor-Felder an Kartenfelder binden +### Editor-Felder an Kartenfelder binden {#bind-editor-fields-to-card-fields} Jedes Editor-Feld ist über einen gemeinsamen `key` mit einem Kartenfeld verknüpft. Setzen Sie denselben `key`-Wert im [`editorShape`](api/config/js_kanban_editorshape_config.md)-Eintrag und in der [`cardShape`](api/config/js_kanban_cardshape_config.md) Eigenschaft. Bei integrierten Kartenfeldern setzen Sie den Schlüssel auf `true`. Bei benutzerdefinierten Feldern tragen Sie den Schlüssel im `headerFields`-Array ein. Derselbe Schlüssel liefert auch die Anfangsdaten der Karte. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md index 0bb33a85..6391bc2e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md @@ -377,7 +377,7 @@ new kanban.Kanban("#root", { }); ~~~ -### 에디터 필드와 카드 필드 바인딩 +### 에디터 필드와 카드 필드 바인딩 {#bind-editor-fields-to-card-fields} 각 에디터 필드는 공유 `key`를 통해 카드 필드에 연결됩니다. [`editorShape`](api/config/js_kanban_editorshape_config.md) 항목과 [`cardShape`](api/config/js_kanban_cardshape_config.md) 속성에 동일한 `key` 값을 설정하세요. 내장 카드 필드의 경우 키를 `true`로 설정하고, 커스텀 필드의 경우 `headerFields` 배열에 키를 나열하세요. 동일한 키로 카드의 초기 데이터도 제공할 수 있습니다. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md index 59b38dcf..d4e72e1a 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md @@ -377,7 +377,7 @@ new kanban.Kanban("#root", { }); ~~~ -### Привязка полей редактора к полям карточки +### Привязка полей редактора к полям карточки {#bind-editor-fields-to-card-fields} Каждое поле редактора связывается с полем карточки через общий `key`. Укажите одинаковое значение `key` в записи [`editorShape`](api/config/js_kanban_editorshape_config.md) и в свойстве [`cardShape`](api/config/js_kanban_cardshape_config.md). Для встроенных полей карточки установите ключ в `true`. Для кастомных полей перечислите ключ в массиве `headerFields`. Этот же ключ предоставляет начальные данные карточки. diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md index 7984ab55..48c7d8f6 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md @@ -377,7 +377,7 @@ new kanban.Kanban("#root", { }); ~~~ -### 绑定编辑器字段与卡片字段 +### 绑定编辑器字段与卡片字段 {#bind-editor-fields-to-card-fields} 每个编辑器字段通过共享的 `key` 与卡片字段关联。在 [`editorShape`](api/config/js_kanban_editorshape_config.md) 条目和 [`cardShape`](api/config/js_kanban_cardshape_config.md) 属性中设置相同的 `key` 值。对于内置卡片字段,将 key 设为 `true`;对于自定义字段,在 `headerFields` 数组中列出该 key。同一 key 也用于提供卡片的初始数据。 From b27a329c9b0213a77a5282015795b3ebfee3904b Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Thu, 30 Jul 2026 10:52:16 +0300 Subject: [PATCH 09/13] [update] de-jargon intro paragraph in MCP guide - reworded the intro's first paragraph to describe cardShape, editorShape, the api parameter, and RestDataProvider in plain prose instead of raw identifiers, while keeping links to the same guide sections --- docs/guides/mcp-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 814f5f74..e4d4f9ca 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -6,7 +6,7 @@ description: The MCP server gives AI tools access to current DHTMLX Kanban docum # DHTMLX Kanban and the MCP server: build with live docs -A working [DHTMLX Kanban](/) board depends on several pieces fitting together correctly: card fields defined through `cardShape` must share a key with the matching `editorShape` entry, the Toolbar runs as its own widget bound to the board through the `api` parameter, and server sync relies on the exact action handlers exposed by `RestDataProvider`. An outdated training snapshot leaves an AI assistant merging card and editor fields into one config object, folding the Toolbar into the board's own constructor, or reaching for `RestDataProvider` methods that were renamed or removed since. +A working [DHTMLX Kanban](/) board depends on several pieces fitting together correctly: card and editor fields need to [share a matching key](guides/configuration.md#bind-editor-fields-to-card-fields), the [Toolbar](guides/customization.md#custom-toolbar) runs as its own widget bound to the board, and [server sync](guides/working_with_server.md) relies on a specific set of action handlers. An outdated training snapshot leaves an AI assistant merging card and editor fields into one config object, folding the Toolbar into the board's own constructor, or reaching for server methods that were renamed or removed since. The DHTMLX MCP server closes that gap by handing the assistant a live line into the Kanban documentation itself. Ask about [binding editor fields to card fields](guides/configuration.md#bind-editor-fields-to-card-fields), [customizing the Toolbar](guides/customization.md#custom-toolbar), or [connecting a RestDataProvider backend](guides/working_with_server.md), and the assistant pulls the current reference before writing any code. From 82b15593ef38c65537413ecf88865bf9511f0a71 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Thu, 30 Jul 2026 12:26:28 +0300 Subject: [PATCH 10/13] [update] simplify intro paragraph closing sentence - reworded the intro's second sentence from a failure-list framing (an outdated snapshot "leaves an AI assistant merging...folding... reaching for") to a plain "code holds up when it uses X, Y, Z" statement - this replaces an interim cleft-sentence version that made readers hold three list items in mind before reaching the payoff clause --- docs/guides/mcp-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index e4d4f9ca..7d1a51a9 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -6,7 +6,7 @@ description: The MCP server gives AI tools access to current DHTMLX Kanban docum # DHTMLX Kanban and the MCP server: build with live docs -A working [DHTMLX Kanban](/) board depends on several pieces fitting together correctly: card and editor fields need to [share a matching key](guides/configuration.md#bind-editor-fields-to-card-fields), the [Toolbar](guides/customization.md#custom-toolbar) runs as its own widget bound to the board, and [server sync](guides/working_with_server.md) relies on a specific set of action handlers. An outdated training snapshot leaves an AI assistant merging card and editor fields into one config object, folding the Toolbar into the board's own constructor, or reaching for server methods that were renamed or removed since. +A working [DHTMLX Kanban](/) board depends on several pieces fitting together correctly: card and editor fields need to [share a matching key](guides/configuration.md#bind-editor-fields-to-card-fields), the [Toolbar](guides/customization.md#custom-toolbar) runs as its own widget bound to the board, and [server sync](guides/working_with_server.md) relies on a specific set of action handlers. Generated code holds up when it uses a matching key between card and editor fields, the Toolbar wired up on its own, and server sync built on today's action handlers, not a snapshot from training time. The DHTMLX MCP server closes that gap by handing the assistant a live line into the Kanban documentation itself. Ask about [binding editor fields to card fields](guides/configuration.md#bind-editor-fields-to-card-fields), [customizing the Toolbar](guides/customization.md#custom-toolbar), or [connecting a RestDataProvider backend](guides/working_with_server.md), and the assistant pulls the current reference before writing any code. From 24ece79adf4a8c64ba9d2e9c3ad5786253ec857c Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Thu, 30 Jul 2026 18:59:04 +0300 Subject: [PATCH 11/13] [update] simplify wording in MCP guide - replaced "mutating" with "modifying" in the data API bullet for clearer, plainer wording - replaced "whatever the current API actually looks like" with "code that reflects the current API" for a less informal tone - reworded the Setup intro to explicitly point at "the URL below" instead of the vaguer "registers the same MCP endpoint" --- docs/guides/mcp-server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 7d1a51a9..3ad22626 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -30,7 +30,7 @@ Under the hood, the server keeps a full index of the DHTMLX Kanban documentation - [Customizing](guides/customization.md) card templates, context menus, and column headers with the documented template callbacks. - [Styling](guides/stylization.md) columns, rows, and cards with CSS variables and conditional CSS classes. - [Localizing](guides/localization.md) the Kanban and Toolbar interfaces with built-in or custom locale objects. -- [Loading, exporting, and mutating](guides/working_with_data.md) cards, columns, rows, links, and comments through the data API. +- [Loading, exporting, and modifying](guides/working_with_data.md) cards, columns, rows, links, and comments through the data API. - Connecting a [REST backend](guides/working_with_server.md) through `RestDataProvider`, or setting up a multiuser board that syncs changes over WebSocket. - [Integrating](guides/integration.md) Kanban with other DHTMLX widgets such as Gantt and Scheduler, or with [React](guides/integration_with_react.md), [Vue](guides/integration_with_vue.md), [Angular](guides/integration_with_angular.md), and [Svelte](guides/integration_with_svelte.md). @@ -38,11 +38,11 @@ Under the hood, the server keeps a full index of the DHTMLX Kanban documentation Ask the MCP server the same question twice and you can get two different kinds of response, because the calling agent picks between two workflows depending on the request. *Search* pulls the matching Kanban reference pages and hands them to the assistant, which writes the answer itself; *Inference* reads those same pages and writes the answer for the assistant instead. Both draw on a Retrieval-Augmented Generation (RAG) index built from the current documentation, reached through the Model Context Protocol (MCP) endpoint. -For example, when you ask *"How do I bind a custom `editorShape` field to a `cardShape` field so the value shows up both on the card and in the editor in DHTMLX Kanban?"*, the assistant sends the prompt through the MCP endpoint. For a code-generation request like this one, it typically calls *Search*: the workflow finds the matching field-binding documentation, returns the relevant reference pages as context, and the assistant turns them into code using whatever the current API actually looks like, not what it looked like at training time. For a question with a single correct answer, the assistant can call *Inference* instead: the workflow reads the reference pages itself and returns a ready-made answer directly, so the assistant relays that answer rather than composing one from raw pages. +For example, when you ask *"How do I bind a custom `editorShape` field to a `cardShape` field so the value shows up both on the card and in the editor in DHTMLX Kanban?"*, the assistant sends the prompt through the MCP endpoint. For a code-generation request like this one, it typically calls *Search*: the workflow finds the matching field-binding documentation, returns the relevant reference pages as context, and the assistant turns them into code that reflects the current API, not what it looked like at training time. For a question with a single correct answer, the assistant can call *Inference* instead: the workflow reads the reference pages itself and returns a ready-made answer directly, so the assistant relays that answer rather than composing one from raw pages. ## Adding the MCP endpoint to your AI tool -Prefer the terminal or a config file? Either path registers the same MCP endpoint, and once it's set for a tool, every Kanban board you build in that tool can reach it. +Prefer the terminal or a config file? Either path points your tool at the URL below, and once it's registered, every Kanban board you build in that tool can reach it. ~~~jsx https://docs.dhtmlx.com/mcp From 08bdcc32ace3cc552b6976ab591d75c1db789f0a Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Fri, 31 Jul 2026 11:53:42 +0300 Subject: [PATCH 12/13] [update] vary manual-setup wording in MCP guide Co-Authored-By: Claude Sonnet 5 --- docs/guides/mcp-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 3ad22626..1c39f93c 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -62,7 +62,7 @@ To register the server from the command line, run: claude mcp add --transport http dhtmlx-mcp https://docs.dhtmlx.com/mcp ~~~ -For manual setup, add the following to your `mcp.json`: +Setting it up by hand? Add this entry to your `mcp.json`: ~~~jsx { From 45d494adefa16e73d60913cb018e64486c8021d5 Mon Sep 17 00:00:00 2001 From: Masha_Rudenko Date: Mon, 3 Aug 2026 16:16:11 +0300 Subject: [PATCH 13/13] [fix] correct Claude Code config filename to .mcp.json - the manual-setup step referenced "mcp.json" without the leading dot; Claude Code's actual project-scoped config file is .mcp.json --- docs/guides/mcp-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/mcp-server.md b/docs/guides/mcp-server.md index 1c39f93c..6bab623b 100644 --- a/docs/guides/mcp-server.md +++ b/docs/guides/mcp-server.md @@ -62,7 +62,7 @@ To register the server from the command line, run: claude mcp add --transport http dhtmlx-mcp https://docs.dhtmlx.com/mcp ~~~ -Setting it up by hand? Add this entry to your `mcp.json`: +Setting it up by hand? Add this entry to your `.mcp.json`: ~~~jsx {