# Connect your AI to Bürgerpilot Austria

> In your own AI client, the AI vendor processes the conversation under its own terms. This service receives only the tool arguments (search terms, postal code or town) and keeps no conversation history.

- MCP URL: `https://app.buergerpilot.at/mcp`
- Transport: Streamable HTTP (protocol 2026-07-28 and initialize-based 2024-11-05 to 2025-11-25)
- Authentication: none · sessions: none · cookies: none
- Server card: https://app.buergerpilot.at/mcp/server-card · OpenAPI: https://app.buergerpilot.at/openapi/AT.json · llms.txt: https://app.buergerpilot.at/llms.txt
- Tools for AI clients: 17; web-app only (personal data): 4

## Clients

### ChatGPT

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet).
1. Open chatgpt.com/plugins and select +.
2. Select 'Create custom MCP server'. Enter a name and paste the MCP URL.
3. Authentication: 'No authentication'. Confirm the notice and select 'Create as a plugin'.
4. Install it, then type @ and the plugin name in a chat.
- [ChatGPT plugins](https://chatgpt.com/plugins)
- Note: ChatGPT can render the results as cards (MCP Apps); not tested in ChatGPT yet. Custom MCP servers depend on plan and workspace settings.

### Claude (web, desktop, mobile)

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet).
1. Select 'Add to Claude' (or Customize → Connectors → + Add → Add custom connector).
2. Check name and URL, then 'Continue'. Authentication: 'No sign in'. Select 'Add'.
3. Enable the connector in a chat (+ menu → Connectors).
- [Add to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=B%C3%BCrgerpilot%20Austria&connectorUrl=https%3A%2F%2Fapp.buergerpilot.at%2Fmcp)
- [Add for your organisation (owners)](https://claude.ai/admin-settings/connectors?modal=add-custom-connector&connectorName=B%C3%BCrgerpilot%20Austria&connectorUrl=https%3A%2F%2Fapp.buergerpilot.at%2Fmcp)
- Note: Claude connects from Anthropic's cloud, so the URL must be public. Free plans allow one custom connector.

### Claude Desktop (local bridge)

Test: partly tested. The mcp-remote bridge in this config passed; the Claude Desktop app itself was not run.
- Config (claude_desktop_config.json (Settings → Developer → Edit Config)):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@0.14.3",
        "https://app.buergerpilot.at/mcp",
        "--transport",
        "http-only"
      ]
    }
  }
}
```
- Note: Fallback without custom connectors. Needs Node.js.

### Mistral Vibe (Le Chat)

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet).
1. Open Mistral Vibe (formerly Le Chat) → Connectors → + Add Connector.
2. Tab 'Custom MCP Connector': connector name without spaces, server URL = the MCP URL.
3. Authentication: none. Enable the connector in a chat.
- Note: Adding connectors is an admin feature; on personal plans the account owner is the admin.

### Microsoft Copilot Studio

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet).
1. Open your agent → Tools → Add a tool → New tool → Model Context Protocol.
2. Enter name, description and the MCP URL. Authentication: None. Create.

### Microsoft 365 Copilot (agent)

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet).
1. Microsoft 365 Agents Toolkit 6.12+ → Create a New Agent → Declarative Agent → Start with an MCP Server.
2. Enter the MCP URL, choose the tools, authentication: None.
- Note: Business tenants only. Renders MCP Apps.

### Cursor

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Add to Cursor: `cursor://anysphere.cursor-deeplink/mcp/install?name=buergerpilot-at&config=eyJ1cmwiOiJodHRwczovL2FwcC5idWVyZ2VycGlsb3QuYXQvbWNwIn0%3D`
- [Add to Cursor (web)](https://cursor.com/install-mcp?name=buergerpilot-at&config=eyJ1cmwiOiJodHRwczovL2FwcC5idWVyZ2VycGlsb3QuYXQvbWNwIn0%3D)
- Config (~/.cursor/mcp.json):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "url": "https://app.buergerpilot.at/mcp"
    }
  }
}
```

### VS Code / GitHub Copilot

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- [Install in VS Code](https://vscode.dev/redirect/mcp/install?name=buergerpilot-at&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapp.buergerpilot.at%2Fmcp%22%7D)
- Open VS Code: `vscode:mcp/install?%7B%22name%22%3A%22buergerpilot-at%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapp.buergerpilot.at%2Fmcp%22%7D`
- Open VS Code Insiders: `vscode-insiders:mcp/install?%7B%22name%22%3A%22buergerpilot-at%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapp.buergerpilot.at%2Fmcp%22%7D`
- [Install via insiders.vscode.dev](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522buergerpilot-at%2522%252C%2522type%2522%253A%2522http%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fapp.buergerpilot.at%252Fmcp%2522%257D)
- Command: `code --add-mcp '{"name":"buergerpilot-at","type":"http","url":"https://app.buergerpilot.at/mcp"}'`
- Config (.vscode/mcp.json):

```json
{
  "servers": {
    "buergerpilot-at": {
      "type": "http",
      "url": "https://app.buergerpilot.at/mcp"
    }
  }
}
```
- Note: VS Code renders MCP Apps (inline cards).

### Devin Desktop / Windsurf

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Config (~/.config/devin/mcp_config.json (older Windsurf: ~/.codeium/windsurf/mcp_config.json)):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "serverUrl": "https://app.buergerpilot.at/mcp"
    }
  }
}
```
- Note: The key is serverUrl, not url.

### Zed

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Config (Zed settings.json):

```json
{
  "context_servers": {
    "buergerpilot-at": {
      "url": "https://app.buergerpilot.at/mcp"
    }
  }
}
```

### JetBrains AI Assistant

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Config (Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add → As JSON):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "url": "https://app.buergerpilot.at/mcp"
    }
  }
}
```

### Claude Code

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Command: `claude mcp add --transport http buergerpilot-at https://app.buergerpilot.at/mcp`
- Config (.mcp.json):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "type": "http",
      "url": "https://app.buergerpilot.at/mcp"
    }
  }
}
```

### OpenAI Codex

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Command: `codex mcp add buergerpilot-at --url https://app.buergerpilot.at/mcp`
- Config (~/.codex/config.toml):

```toml
[mcp_servers.buergerpilot-at]
url = "https://app.buergerpilot.at/mcp"

```

### Gemini CLI

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Command: `gemini mcp add --transport http buergerpilot-at https://app.buergerpilot.at/mcp`
- Config (~/.gemini/settings.json):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "httpUrl": "https://app.buergerpilot.at/mcp"
    }
  }
}
```

### GitHub Copilot CLI

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Command: `copilot mcp add --transport http buergerpilot-at https://app.buergerpilot.at/mcp`
- Config (~/.copilot/mcp-config.json):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "type": "http",
      "url": "https://app.buergerpilot.at/mcp",
      "tools": [
        "*"
      ]
    }
  }
}
```

### Goose

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Add to Goose: `goose://extension?url=https%3A%2F%2Fapp.buergerpilot.at%2Fmcp&type=streamable_http&id=buergerpilot-at&name=B%C3%BCrgerpilot%20Austria&description=Public%20services%20assistant`
- Command: `goose session --with-streamable-http-extension "https://app.buergerpilot.at/mcp"`

### LM Studio

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
- Add to LM Studio: `lmstudio://add_mcp?name=buergerpilot-at&config=eyJ1cmwiOiJodHRwczovL2FwcC5idWVyZ2VycGlsb3QuYXQvbWNwIn0%3D`
- Config (LM Studio → Program → Install → Edit mcp.json):

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "url": "https://app.buergerpilot.at/mcp"
    }
  }
}
```

### Raycast

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
1. Run the command 'Install MCP Server', choose HTTP, paste the MCP URL.

### n8n

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
1. Add an AI Agent node and attach the 'MCP Client Tool' sub-node.
2. Endpoint: the MCP URL. Server Transport: 'HTTP Streamable'. Authentication: None.
3. Tools to include: All (or select the tools you need).
- Note: Needs an n8n version whose MCP Client Tool offers the 'HTTP Streamable' transport.

### Open WebUI (Ollama)

Test: pending public URL. Needs the public HTTPS URL (HAProxy route not live yet). Runs on the user's machine, so a run against the port-forward is possible earlier.
1. Admin settings → Tool servers → add a server of type MCP (Streamable HTTP) with the MCP URL, no auth.
- Note: Native MCP support since Open WebUI 0.6.31.

### Any other MCP client

Test: passed. mcp-remote stdio bridge, MCP Inspector CLI and the MCP Python SDK passed in both protocol eras.
- Command: `npx -y mcp-remote@0.14.3 https://app.buergerpilot.at/mcp --transport http-only`
- Config:

```json
{
  "mcpServers": {
    "buergerpilot-at": {
      "type": "http",
      "url": "https://app.buergerpilot.at/mcp"
    }
  }
}
```
- Note: Transport: Streamable HTTP, no authentication. Stdio-only clients use the mcp-remote bridge.

### Siri (Apple Shortcuts) (coming soon)

Test: not applicable. Coming soon: voice endpoint, not an MCP client.
1. Open the Shortcuts app and create a new shortcut.
2. Add 'Ask for Input' (type Text) with the prompt 'What do you want to know?'.
3. Add 'Get Contents of URL': ask URL, method POST, request body JSON with q = Provided Input, country, lang and format = text.
4. Add 'Replace Text' with the regular expression \\n\\nSources:\\n\[\\s\\S\]* and an empty replacement, so Siri does not read out the source links.
5. Add 'Speak Text' with the Updated Text.
6. Name the shortcut, for example 'Ask Bürgerpilot', and start it with Siri.
- [Voice answer endpoint (POST)](https://app.buergerpilot.at/api/v1/ask)
- Note: Works today as a personal shortcut; a shared iCloud shortcut follows.

### Alexa (coming soon)

Test: not applicable. Coming soon: voice endpoint, not an MCP client.
- [Voice answer endpoint (POST)](https://app.buergerpilot.at/api/v1/ask)
- Note: An Alexa skill (Germany and the UK first) is in preparation; Alexa+ MCP add-ons are US-only for now.

## Test matrix

Date: 2026-10-06. Target: prototype on iv-kc02 (image dd3bc3f) through a port-forward.

| Client | Transport | Protocol | Result |
|---|---|---|---|
| MCP Python SDK 2.3.0, Client(mode='legacy') | streamable-http | 2025-11-25 (initialize) | passed |
| MCP Python SDK 2.3.0, Client(mode='auto') | streamable-http | 2026-07-28 (server/discover) | passed |
| Raw HTTP, initialize-era clients | streamable-http | 2025-06-18, 2025-03-26, 2024-11-05 | passed |
| Raw HTTP, header checks (Mcp-Method, Mcp-Name, -32020, 404 -32601, ttlMs/cacheScope) | streamable-http | 2026-07-28 | passed |
| MCP Inspector CLI 2.9.0 (npx @modelcontextprotocol/inspector --cli) | streamable-http | 2025-11-25 | passed |
| mcp-remote 0.14.3 (npx mcp-remote, stdio bridge) | stdio → streamable-http | 2025-11-25 | passed |
| MCPB wrapper (distribution/mcpb/server/index.js) with mcp-remote 0.14.3 | stdio → streamable-http | 2025-11-25 | passed |

Real AI clients (ChatGPT, Claude, Cursor, VS Code …) wait for the public HTTPS URL.

Home: [https://app.buergerpilot.at/](https://app.buergerpilot.at/) · Connect page: [https://app.buergerpilot.at/#/connect](https://app.buergerpilot.at/#/connect)
