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
auth_confirmget_account_infoPrerequisites
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:
`` dsk_live_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6text
`
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:
key stored in your client's MCP config returning a user ID reporting your tier and feature listTroubleshooting
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:
` curl -s -o /dev/null -w '%{http_code}\n' https://www.devspeak.dev/api/v1/auth/confirmbash
`
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: