MCP clients

Set up the Dekka MCP server in Claude Code, Claude Desktop, Cursor, VS Code, Codex, Windsurf and other MCP clients.

Updated 4 November 2026

Every client needs the same two things, which are the server address https://mcp.dekka.cloud/mcp and an Authorization header carrying a Dekka API key. The Agents tab in your organisation's settings creates a key and shows each of these snippets with it filled in. The examples here read the key from DEKKA_API_KEY so it stays out of files you might commit.

Claude Code

Add the server from a terminal. Use --scope user to make it available in every project, or leave it out to add it to the current one only.

claude mcp add --transport http dekka https://mcp.dekka.cloud/mcp \
  --header "Authorization: Bearer $DEKKA_API_KEY"

Run /mcp inside Claude Code to see the server's status and its tools.

Claude Desktop

Claude Desktop starts local servers from its config file, so it reaches a remote server through mcp-remote, which needs Node.js. Open Settings → Developer → Edit Config and add the server to claude_desktop_config.json, then restart Claude Desktop.

claude_desktop_config.json
{
  "mcpServers": {
    "dekka": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.dekka.cloud/mcp", "--header", "Authorization:${DEKKA_AUTH}"],
      "env": { "DEKKA_AUTH": "Bearer dk_your_key" }
    }
  }
}

The header is written without a space after the colon and filled from env, which avoids a quoting problem with arguments on Windows.

Cursor

Add the server to ~/.cursor/mcp.json for every project, or to .cursor/mcp.json in one repository.

~/.cursor/mcp.json
{
  "mcpServers": {
    "dekka": {
      "url": "https://mcp.dekka.cloud/mcp",
      "headers": { "Authorization": "Bearer ${env:DEKKA_API_KEY}" }
    }
  }
}

VS Code

Add the server to .vscode/mcp.json. VS Code asks for the key the first time the server starts and keeps it in its secret storage, so the file is safe to commit.

.vscode/mcp.json
{
  "inputs": [{ "type": "promptString", "id": "dekka-key", "description": "Dekka API key", "password": true }],
  "servers": {
    "dekka": {
      "type": "http",
      "url": "https://mcp.dekka.cloud/mcp",
      "headers": { "Authorization": "Bearer ${input:dekka-key}" }
    }
  }
}

The tools appear in Copilot Chat's agent mode.

Codex

Add the server to ~/.codex/config.toml and export the key in your shell. Codex sends it as a bearer token.

~/.codex/config.toml
[mcp_servers.dekka]
url = "https://mcp.dekka.cloud/mcp"
bearer_token_env_var = "DEKKA_API_KEY"

Windsurf

Add the server to ~/.codeium/windsurf/mcp_config.json.

mcp_config.json
{
  "mcpServers": {
    "dekka": {
      "serverUrl": "https://mcp.dekka.cloud/mcp",
      "headers": { "Authorization": "Bearer ${env:DEKKA_API_KEY}" }
    }
  }
}

Other clients

Any client that supports remote servers over Streamable HTTP and lets you set a header will work. Where a client only starts local servers, run it through mcp-remote as in the Claude Desktop example.

To see the tools and try them by hand, use the MCP Inspector.

npx @modelcontextprotocol/inspector

Choose Streamable HTTP, enter the server address, and add the Authorization header with your key.

Read-only sessions

Add ?read_only=true to the address to hide every tool that changes something, whatever the key allows. It's a quick way to let an agent investigate a problem without the chance of it fixing the wrong thing.

https://mcp.dekka.cloud/mcp?read_only=true

When it doesn't connect

A 401 means the key is missing, mistyped, revoked or expired, or it's an AI Gateway key, which reaches only the gateway. Create a new one in the Agents tab and check the header reads Authorization: Bearer dk_... with a single space after Bearer.

If the server connects but a tool you expected is missing, the key's scopes don't include it. A read key sees only the tools that look at things, a write key adds the ones that change things, and deleting needs full access. MCP security has the full list.