Claude Desktop ships with a "Custom connectors" section under Settings. Pasting Display.dev's MCP URL there is the fastest way to get the publish tool into a conversation — Claude Desktop opens a browser, you sign in to Display.dev with your work email, and the connection is live. The two alternatives below stay supported for engineers who prefer a config file.
Option 1 — Add as custom connector (recommended)
- Open Claude Desktop → Settings → Connectors → Add custom connector.
- Paste
/v1/mcpinto the URL field. - Click Connect. A browser tab opens on Display.dev.
- Sign in with your work email. Display.dev sends a 6-digit OTP; paste it back into the browser tab.
- Pick the organization to authorize (if you belong to more than one), review the consent screen, and click Authorize.
The browser tab closes itself. Back in Claude Desktop, the publish tool now appears in the conversation tools panel.
To revoke the connection later, open app.display.dev/settings/connectors and click Revoke. Claude Desktop's next tool call returns an auth error and the user can re-authorize from Settings.
Option 2 — Static API key (advanced)
If you want a long-lived credential that doesn't go through a browser flow — for headless setups, locked-down workstations, or anything that bans browser auth — wire Claude Desktop up via mcp-remote and an API key.
The config file lives at:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
-
Generate an API key at app.display.dev/keys. Keys start with
sk_live_…. -
Add the
mcpServersblock:{ "mcpServers": { "display": { "command": "npx", "args": [ "-y", "mcp-remote", "/v1/mcp", "--header", "Authorization: Bearer sk_live_..." ] } } } -
Fully quit Claude Desktop (⌘Q on macOS) and reopen it. The first launch downloads
mcp-remote; subsequent launches use the npx cache.
To rotate the key, generate a new one in the dashboard and update the --header argument.
Option 3 — Local CLI
If you already have the Display.dev CLI installed, point Claude Desktop at it directly. Auth comes from the session dsp login writes — no key to paste.
-
Install the CLI:
npm install -g @displaydev/cli, thendsp login. -
Run
which dspto find the absolute path. Claude Desktop does not expand~or use the shellPATH, so a baredspwill not resolve. -
Add the
mcpServersblock (substitute the path from step 2):{ "mcpServers": { "display": { "command": "/usr/local/bin/dsp", "args": ["mcp"] } } } -
Restart Claude Desktop.
Common errors
- "Connection failed" in the custom-connector flow — make sure the URL is exactly
/v1/mcp. Trailing slash matters. - OTP email doesn't arrive — check spam, and confirm the email matches the one your organization signed up with.
- Authorize screen says "no organization" — your account isn't a member of any active organization. Create or join one first.
- Tool calls 401 (Option 1) — the connector grant was revoked from app.display.dev/settings/connectors, or Claude Desktop lost its stored connector credentials. Open Claude Desktop → Settings → Connectors and reconnect.
- Tool calls 401 (Option 2) — the API key was deleted or pasted incorrectly. Generate a new one and update the
--headerargument. - Tool calls 401 (Option 3) — your saved session expired. Run
dsp loginfrom a terminal; restart Claude Desktop. - "command not found" in the MCP log (Option 3) — the
commandpath is wrong ordspisn't installed. Runwhich dspand paste the absolute path. - Tool doesn't appear after restart (Option 2 or 3) —
claude_desktop_config.jsonhas a syntax error. Validate it withjq . < claude_desktop_config.json. - First launch hangs (Option 2) —
npx -y mcp-remoteis downloading the package. Wait 30–60 seconds; future launches reuse the cache.