🚀 Vaadin MCP Server

The Vaadin Model Context Protocol (MCP) server provides AI coding assistants with direct access to comprehensive Vaadin documentation, enabling intelligent code assistance for Vaadin Java and React applications.

⚡ Setup Instructions

Click on your AI coding tool to expand setup instructions:

Claude Code

HTTP
Native HTTP support

Add the Vaadin MCP server to your project or global configuration.

Configuration:
{
  "mcpServers": {
    "vaadin": {
      "type": "http",
      "url": "https://mcp.vaadin.com/docs"
    }
  }
}

File locations:

  • Project-scoped: .mcp.json (in project root)
  • Global: ~/.claude.json

Note: Restart Claude Code after making configuration changes.

Cursor

HTTP
Native HTTP support

Add the Vaadin MCP server to your project or global configuration.

Configuration:
{
  "mcpServers": {
    "vaadin": {
      "type": "http",
      "url": "https://mcp.vaadin.com/docs"
    }
  }
}

File locations:

  • Project-scoped: .cursor/mcp.json
  • Global: ~/.cursor/mcp.json

Note: Restart Cursor after making configuration changes.

Windsurf

HTTP
Native HTTP support

Add the Vaadin MCP server through Windsurf Settings (bottom right) or Cmd+Shift+P → "Open Windsurf Settings".

Configuration (~/.codeium/windsurf/mcp_config.json):
{
  "mcpServers": {
    "vaadin": {
      "type": "http",
      "url": "https://mcp.vaadin.com/docs"
    }
  }
}

Note: Click the Hammer icon on the Cascade toolbar to view connected MCP tools.

Junie (JetBrains IDEs)

via proxy
Requires HTTP adapter

Junie only supports stdio-based MCP servers. Use @pyroprompts/mcp-stdio-to-streamable-http-adapter to bridge stdio to the HTTP-based Vaadin MCP server.

  1. Open IDE settings: Ctrl+Alt+S (Windows/Linux) or Cmd+, (macOS)
  2. Navigate to Tools → Junie → MCP Settings
  3. Click the Add button and add the configuration below
Configuration:
{
  "mcpServers": {
    "vaadin": {
      "command": "npx",
      "args": ["@pyroprompts/mcp-stdio-to-streamable-http-adapter"],
      "env": {
        "URI": "https://mcp.vaadin.com/docs",
        "MCP_NAME": "vaadin"
      }
    }
  }
}

Note: The adapter uses environment variables to configure the connection. URI points to the Vaadin MCP server endpoint, and MCP_NAME is an identifier for the server.

File locations:

  • Project-scoped: .junie/mcp/mcp.json
  • Global: ~/.junie/mcp.json

GitHub Copilot (JetBrains IDEs)

HTTP
Agent mode required (Public Preview)

⚠️ Important: MCP servers only work when GitHub Copilot is used in Agent mode. Regular Copilot Chat does not support MCP.

Agent mode with MCP support is now in public preview for JetBrains IDEs (as of May 2025).

  1. Create .copilot/mcp-config.json in your project root (JetBrains IDEs use the same format as VS Code)
  2. Add the configuration below
  3. Switch to Agent mode: Click the GitHub Copilot icon → Change to Agent mode
  4. Configure MCP servers: Click Tools icon → Add More Tools → Edit mcp.json
  5. Alternative: Click GitHub Copilot icon → Edit settings → MCP Servers section
Configuration (.copilot/mcp-config.json):
{
  "servers": {
    "vaadin": {
      "url": "https://mcp.vaadin.com/docs"
    }
  }
}

Known Issue: Some users report that tools may not appear if MCP servers are configured after the IDE has started. For best results, create the mcp-config.json file before starting your IDE.

Enterprise Note: Organizations with Copilot Business or Enterprise must enable the "MCP servers in Copilot" policy (disabled by default).

Learn more:

GitHub Copilot (VS Code)

HTTP
Agent mode required (VS Code 1.99+)

⚠️ Important: MCP servers only work when GitHub Copilot is used in Agent mode. Regular Copilot Chat does not support MCP.

Requires VS Code 1.99 or later.

  1. Create .vscode/mcp.json in your project root
  2. Add the configuration below
  3. Click the Start button that appears at the top of the MCP servers list
  4. Switch to Agent mode: Open Copilot Chat → Click mode selector → Select "Agent"
  5. Click the tools icon in Agent mode to view available MCP servers
Configuration (.vscode/mcp.json):
{
  "servers": {
    "vaadin": {
      "type": "http",
      "url": "https://mcp.vaadin.com/docs"
    }
  }
}

Enterprise Note: Organizations with Copilot Business or Enterprise must enable the "MCP servers in Copilot" policy (disabled by default).

Learn more:

Codex (OpenAI)

HTTP
Native HTTP support

Add the Vaadin MCP server to your Codex configuration. Works with both Codex CLI and IDE extension.

  1. Open or create ~/.codex/config.toml
  2. Add the server configuration below
  3. Restart Codex to load the new MCP server
Configuration (~/.codex/config.toml):
[mcp_servers.vaadin]
url = "https://mcp.vaadin.com/docs"

Version Requirement: HTTP-based MCP servers require Codex CLI version 0.43 or later. If you see "missing field command" errors, upgrade with: npm install -g @openai/codex@latest

Learn more:

Gemini CLI (Google)

HTTP
Native HTTP support

Add the Vaadin MCP server to your Gemini CLI configuration. Gemini will automatically use Vaadin documentation tools when relevant.

  1. Open or create ~/.gemini/settings.json
  2. Add the server configuration below
  3. Restart Gemini CLI to load the new MCP server
Configuration (~/.gemini/settings.json):
{
  "mcpServers": {
    "vaadin": {
      "httpUrl": "https://mcp.vaadin.com/docs"
    }
  }
}

Note: Gemini CLI will automatically invoke Vaadin tools when you ask questions about Vaadin development (e.g., "What is a TestBench UI unit test?").

Learn more:

Other MCP Clients

HTTP or stdio
Check your tool's docs

The Vaadin MCP server can be used with any MCP-compatible client. Choose the appropriate configuration based on your tool's transport support:

If your tool supports HTTP/SSE natively:

Simply point it to our HTTP endpoint:

HTTP Endpoint:
https://mcp.vaadin.com/docs

The exact configuration format depends on your specific tool. Look for settings like "MCP Server URL", "HTTP transport", or "Streamable HTTP" in your tool's documentation.

If your tool only supports stdio:

Use an HTTP adapter to bridge stdio to HTTP. This works with any stdio-based MCP client:

Generic stdio configuration:
{
  "mcpServers": {
    "vaadin": {
      "command": "npx",
      "args": ["@pyroprompts/mcp-stdio-to-streamable-http-adapter"],
      "env": {
        "URI": "https://mcp.vaadin.com/docs",
        "MCP_NAME": "vaadin"
      }
    }
  }
}

Adapt the JSON structure to match your tool's configuration format. The adapter uses environment variables: URI for the server endpoint and MCP_NAME as an identifier.

🔧 Transport Types

Important: The Vaadin MCP server uses HTTP transport (streamable-http). This is natively supported by Claude Code, Cursor, and Windsurf. For stdio-only tools like Junie, you can use @pyroprompts/mcp-stdio-to-streamable-http-adapter as a bridge between the two transport types.

✨ What's Included

🔗 Resources