Model Context Protocol

Flowing Code Docs MCP Server

Give your AI coding assistant direct, semantic access to the official Flowing Code documentation — guides, references, and integration steps for our open-source Vaadin add-ons and libraries: Backend Core, Commons-demo, JSON Migration Helper, RPC for Vaadin TestBench, and more.

Zero setup

Runs locally via npx. No accounts, no API keys, no servers to host.

Semantic search

Powered by @serverless-dna/mkdocs-mcp, which indexes the full MkDocs site.

Works everywhere

Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Cline, Zed, Codex, Gemini CLI, JetBrains and more.

The configuration

Every client below is a variation of this one stdio server entry. If you already know how to add an MCP server to your tool, you can stop reading and paste this in:

flowingcode-docs
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Requirements: Node.js 18+ on your PATH so that npx can resolve the package.

Install in your IDE / client

Pick your tool. Configs are stdio-based and run locally.

Claude Code

The fastest path is the built-in CLI:

Terminal
claude mcp add flowingcode-docs -- npx -y @serverless-dna/mkdocs-mcp https://docs.flowingcode.com/ "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."

Or edit .mcp.json in your project (or ~/.claude.json for the user scope):

.mcp.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Restart any running Claude Code session, then run /mcp to confirm the server is connected.

Claude Desktop

Open Settings → Developer → Edit Config, or edit the file directly:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Fully quit and reopen Claude Desktop. The new tool appears under the 🔌 menu in the input box.

Cursor

Add it project-wide in .cursor/mcp.json or globally in ~/.cursor/mcp.json:

.cursor/mcp.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Then enable it under Cursor Settings → MCP.

VS Code (GitHub Copilot — Agent mode)

Requires VS Code 1.99+ and Copilot in Agent mode. Create .vscode/mcp.json in your workspace:

.vscode/mcp.json
{
  "servers": {
    "flowingcode-docs": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

VS Code uses servers (not mcpServers) and requires an explicit type.

Windsurf

Open Cascade → settings (top right gear) → MCP, then edit ~/.codeium/windsurf/mcp_config.json:

mcp_config.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Click Refresh in the MCP panel after saving.

Cline (VS Code extension)

Click the MCP icon in the Cline sidebar → Configure MCP Servers, then add:

cline_mcp_settings.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Roo Code (VS Code extension)

Roo Code is a fork of Cline and uses the same MCP config format. Open the MCP panel → Edit Settings:

mcp_settings.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Continue

Edit ~/.continue/config.yaml and add an mcpServers entry:

~/.continue/config.yaml
mcpServers:
  - name: flowingcode-docs
    command: npx
    args:
      - "-y"
      - "@serverless-dna/mkdocs-mcp"
      - "https://docs.flowingcode.com/"
      - "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."

For older Continue versions on config.json, place the server inside experimental.modelContextProtocolServers.

Zed

Open the command palette → zed: open settings, then add a context server:

~/.config/zed/settings.json
{
  "context_servers": {
    "flowingcode-docs": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@serverless-dna/mkdocs-mcp",
          "https://docs.flowingcode.com/",
          "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
        ]
      }
    }
  }
}

Zed calls them context servers rather than MCP servers, but the protocol is the same.

JetBrains AI Assistant

In any JetBrains IDE: Settings → Tools → AI Assistant → Model Context Protocol (MCP)Add. Choose As JSON and paste:

MCP server JSON
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

If npx isn't found, use the absolute path (which npx on macOS/Linux, where npx on Windows).

Junie (JetBrains)

Open Junie → Settings → MCP Servers → Add custom server, switch to JSON view, and paste:

Junie MCP entry
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Codex CLI

Codex uses TOML. Edit ~/.codex/config.toml:

~/.codex/config.toml
[mcp_servers.flowingcode-docs]
command = "npx"
args = [
  "-y",
  "@serverless-dna/mkdocs-mcp",
  "https://docs.flowingcode.com/",
  "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
]

Gemini CLI

Edit ~/.gemini/settings.json:

~/.gemini/settings.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

OpenCode

In your opencode.json:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "flowingcode-docs": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ],
      "enabled": true
    }
  }
}

LM Studio

Open the chat Program sidebar → Install → Edit mcp.json:

mcp.json
{
  "mcpServers": {
    "flowingcode-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@serverless-dna/mkdocs-mcp",
        "https://docs.flowingcode.com/",
        "Official Flowing Code documentation. Use this to search for guides, references, and integration steps for Flowing Code open source Vaadin add-ons and libraries, including Backend Core, Commons-demo, JSON Migration Helper, and RPC for Vaadin TestBench."
      ]
    }
  }
}

Other MCP clients

Any MCP-compatible client that can launch a local stdio process will work. Point it at:

  • Command: npx
  • Args: -y @serverless-dna/mkdocs-mcp https://docs.flowingcode.com/ "Official Flowing Code documentation…"
  • Transport: stdio

The third argument (the description) is passed to the MCP server and surfaces as the tool's description to the model — keep it descriptive.

Verify it works

Ask your assistant something only the Flowing Code docs would know, e.g.:

“Using the flowingcode-docs MCP, how do I install the Toggle Button add-on and which Vaadin versions does it support?”

The assistant should call the MCP search tool and cite pages under docs.flowingcode.com.

Resources