Setup tutorial for the @devspeak/mcp Model Context Protocol server. Covers generating a DevSpeak API key (any plan), adding the stdio server block to Claude Code settings.json, Claude Desktop claude_desktop_config.json, Cursor .cursor/mcp.json, and Windsurf mcp_config.json, verifying the connection with auth_confirm, reading tier and quota data with get_account_info, and troubleshooting: no DevSpeak tools (invalid config JSON or no restart), Cannot reach the DevSpeak API (proxy or VPN), HTTP 401 (wrong, revoked, or unsubstituted key), and HTTP 403 (tier without API access).

Connect the DevSpeak MCP Server to Your AI IDE

The DevSpeak MCP server exposes the translation engine as tools your AI assistant can call directly. Instead of copying text into a browser, you ask the assistant to turn a rough note into a technical spec and it happens in place.

This tutorial takes you from zero to a verified connection.

What You'll Learn

  • Generate a DevSpeak API key and store it safely
  • Register the MCP server in Claude Code, Claude Desktop, Cursor, or Windsurf
  • Verify the connection with auth_confirm
  • Read your tier and quotas with get_account_info
  • Prerequisites

  • Node.js 18 or newer
  • A DevSpeak account at [devspeak.dev](https://www.devspeak.dev)
  • An MCP-compatible client (Claude Code, Claude Desktop, Cursor, or Windsurf)
  • Time Estimate

    ~9 minutes

    Step 1 — Generate an API Key

    Open Account Settings → Keys & Providers in the DevSpeak dashboard (or click API Keys in the sidebar) and create a key in the API Keys section. It looks like this:

    ``text

    dsk_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6

    `

    The full key is shown exactly once. Copy it now.

    Keys carry a prefix that tells you which environment they belong to:

    | Prefix | Environment |

    | ----------- | ---------------------- |

    | dsk_live_ | Production |

    | dsk_test_ | Local development only |

    Every plan can create an API key. FREE and VIBECODER include one key and 50 API requests per calendar month on DevSpeak's default model, enough to connect the server and try it; DEVELOPER and above have no monthly request limit and can pin any model.

    Step 2 — Register the Server

    Pick the block for your client. Every one of them runs the same server over stdio.

    Claude Code

    Add to ~/.claude/settings.json:

    `json

    {

    "mcpServers": {

    "devspeak": {

    "command": "npx",

    "args": ["-y", "-p", "@devspeak/mcp", "devspeak-mcp"],

    "env": {

    "DEVSPEAK_API_KEY": "dsk_live_YOUR_KEY_HERE"

    }

    }

    }

    }

    `

    Claude Desktop

    Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%\Claude\claude_desktop_config.json on Windows. The block is identical to the Claude Code one above.

    Cursor

    Create .cursor/mcp.json at your project root, or ~/.cursor/mcp.json to enable it everywhere. Same block again.

    Windsurf

    Add the same block to ~/.codeium/windsurf/mcp_config.json.

    Restart your client after editing. MCP server definitions are read at startup, so an unrestarted client will not see the new server.

    Step 3 — Verify the Connection

    Ask your assistant:

    > Use the DevSpeak auth_confirm tool to check my credentials.

    auth_confirm takes no arguments. It calls GET /api/v1/auth/confirm and returns your user ID as plain text:

    `text

    Auth confirmed for user: kR7mQp2xY9...

    `

    A user ID coming back means three things at once: the server launched, your key is valid, and the network path to the DevSpeak API is open.

    Step 4 — Read Your Entitlements

    Before calling a gated tool, ask what your account can actually do:

    > Use get_account_info to show my tier and quotas.

    get_account_info returns the account snapshot from GET /api/v1/me. A DEVELOPER account looks like this (trimmed — the full response also carries email, displayName, and preferences):

    `json

    {

    "tier": "DEVELOPER",

    "features": [

    "documentTranslation",

    "iterativeRefinement",

    "customInstructions",

    "memoryContext",

    "fileAttachments",

    "apiAccess",

    "customProvider",

    "contextProjects"

    ],

    "limits": {

    "maxRefinements": 100,

    "managedTokensPerMonth": 10000000,

    "maxApiKeys": 3,

    "maxContextProjects": 25

    },

    "usage": {

    "refinementCount": 4,

    "managedTokenCount": 182340,

    "currentPeriod": "2026-10"

    },

    "quotas": {

    "managedTokens": 10000000,

    "apiKeys": 3,

    "managedTokensUnlimited": false,

    "apiKeysUnlimited": false

    }

    }

    `

    features is a list of the feature keys your tier includes — a feature that is absent from the list is not available. limits and quotas hold the allowances, and usage holds what you have consumed this period.

    This is worth doing early. patch_translation_note requires the Notes Workspace (notesWorkspace in features), which is ENTERPRISE-only — checking first turns a confusing mid-task failure into a clear answer up front.

    Checkpoint

    At this point you should have:

  • [ ] A dsk_live_ key stored in your client's MCP config
  • [ ] auth_confirm returning a user ID
  • [ ] get_account_info reporting your tier and feature list
  • Troubleshooting

    The assistant says no DevSpeak tools are available

    The server was never started. Confirm your config file is valid JSON — a trailing comma silently invalidates the whole file and most clients fail without a visible error. Then fully restart the client rather than reloading the window.

    Cannot reach the DevSpeak API at https://www.devspeak.dev/api/v1/auth/confirm

    The server started but could not reach the network. Check a corporate proxy or VPN, then confirm the endpoint is up:

    `bash

    curl -s -o /dev/null -w '%{http_code}\n' https://www.devspeak.dev/api/v1/auth/confirm

    `

    A 401 is the healthy answer here — it proves the endpoint is reachable and is rejecting an unauthenticated request.

    HTTP 401: Unauthorized

    The key is wrong, revoked, or was never substituted. Confirm you replaced dsk_live_YOUR_KEY_HERE with the real value, then check the key still appears as active under Account Settings → Keys & Providers → API Keys.

    HTTP 403: Forbidden

    The key is valid but the request is outside your plan. On FREE or VIBECODER, error says which: the 50 monthly API requests are spent (it names the reset date), or a managedModel was pinned (the allowance runs on the default model). Upgrade to DEVELOPER or higher for unlimited use.

    Summary

    You've learned how to:

  • Generate and store a DevSpeak API key
  • Register the MCP server across four different clients
  • Verify credentials with auth_confirm
  • Inspect tier and quotas with get_account_info`
  • Next Steps

  • [Translate Requirements Into an API Design Without Leaving Your Editor](/tutorials/mcp/translate-requirements-in-your-editor)
  • [Ground MCP Translations on a Context Project](/tutorials/mcp/ground-translations-on-a-context-project)
  • [The DevSpeak Public API reference](/docs)