Skip to Content
MCP Server (Preview)Connect Claude

Connect Claude

The Dialora MCP server is in preview. See Rate Limits before you build on it.

Four ways in — two per app, depending on how you want to authenticate:

ClientHow it connectsAuthNeeds Node.js
Claude CodeOption ANative streamable HTTP, one commandSign inNo
Claude CodeOption BSame command plus a headerAPI keyNo
Claude DesktopOption ACustom connector, added in SettingsSign inNo
Claude DesktopOption Bmcp-remote stdio bridgeAPI keyYes (Node 18+)

You can connect without an API key. Dialora supports OAuth, so you can add the server URL on its own and sign in when prompted, approving permissions on a consent screen instead of pasting a secret. See Getting Started for what that screen asks you.

Claude Code

Two commands, differing only in whether you pass a key. Take Option A unless you specifically need one.

Add the server with no credentials:

claude mcp add --transport http dialora https://api.dialora.ai/mcp

Then run claude, type /mcp, select dialora, and choose Authenticate. Your browser opens Dialora’s sign-in and the consent screen; approve, and the tokens are stored for you. Nothing is written to your shell history or your project files.

Option B: Use an API key

Pass the key as a header instead — the right choice for CI, containers, and any machine where an interactive browser sign-in isn’t possible:

claude mcp add --transport http dialora https://api.dialora.ai/mcp \ --header "Authorization: Bearer dlr_live_xxxxxxxxxxxxxxxx"

This puts a dlr_live_… secret in your shell history and, depending on the scope you add it at, in a file on disk. Prefer Option A on your own machine.

Either way, run claude and ask it to use Dialora. Verify with /mcp to see the connection and its tool list.

Claude Desktop

Two ways in. Take Option A unless you specifically need to authenticate with an API key.

No Node.js, no config file, no secret to copy — you sign in to Dialora and approve permissions on a consent screen.

  1. Open Settings → Connectors → Add custom connector.
  2. Name it Dialora and paste the server URL: https://api.dialora.ai/mcp
  3. Keep what Claude detects, with one change — the OAuth client:
SettingChooseWhy
AuthenticationAlways required (detected)Every Dialora tool needs a signed-in account — nothing is open access
OAuth clientNo client ID — register one automaticallyDialora supports Dynamic Client Registration. It does not support Anthropic’s hosted client metadata, so the option marked “Recommended” fails
TransportStreamable HTTP (set from the URL)Dialora exposes streamable HTTP only — there is no SSE endpoint

Leave OAuth Client ID and OAuth Client Secret blank.

  1. Add the connector. Your browser opens Dialora’s sign-in, then the consent screen — pick the account, choose permissions, and approve.
  2. Start a new chat. Dialora’s tools appear under the connectors (plug) icon.

“Couldn’t register with Dialora’s sign-in service.” You left the OAuth client on Use Anthropic’s hosted client metadata. That option requires the server to read Claude’s client details from a URL Anthropic hosts (CIMD); Dialora registers clients through standard Dynamic Client Registration instead. Go back, pick No client ID — register one automatically, and add the connector again.

No Add custom connector button? Custom connectors are limited to paid Claude plans. Use Option B below, which works on any plan.

Option B: Config file

Use this when you want to authenticate with a dlr_live_… API key — headless setups, shared machines, or anywhere you’d rather not run an interactive sign-in — or when your plan has no custom connector option.

Claude Desktop’s claude_desktop_config.json only starts local stdio servers. A { "type": "http", "url": … } entry — the shape that works in Claude Code and Cursor — is ignored here, so the server silently never appears. And the Connectors UI from Option A has no field for a static Authorization header, which is what an API key needs.

So this path talks to Dialora through mcp-remote, a small stdio→HTTP bridge run by npx.

Two details in the config below are load-bearing. Change either one and the server will fail to connect:

  1. "Authorization:${DIALORA_AUTH}" has no space after the colon, and the Bearer prefix lives in the env block instead. Claude Desktop on Windows (and Cursor) mangle arguments that contain spaces; mcp-remote expands ${DIALORA_AUTH} itself, so the space is preserved.
  2. PATH is set explicitly. Claude Desktop is launched by your desktop environment, not by a login shell, so it never reads .zshrc / .bashrc / nvm. Without an explicit PATH it cannot find npx (or the node that npx needs) and dies with spawn npx ENOENT. This is by far the most common failure on Linux.

1. Check Node.js

mcp-remote needs Node 18 or newer. In a terminal:

node --version which npx # macOS / Linux — note this path, you may need it below where npx # Windows

If node is missing, install the LTS build from nodejs.org .

2. Open the config file

In Claude Desktop: Settings → Developer → Edit Config. Or edit it directly:

OSConfig file
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Claude Desktop is officially released for macOS and Windows. On Linux people run community builds (.deb / AppImage) — those use the same config path and the same JSON, but the PATH problem below bites them hardest because AppImage and Flatpak launchers start with a very small environment.

3. Add Dialora under mcpServers

Pick your OS. Replace dlr_live_xxxxxxxxxxxxxxxx with your key and <you> with your username.

{ "mcpServers": { "dialora": { "command": "npx", "args": [ "-y", "mcp-remote", "https://api.dialora.ai/mcp", "--transport", "http-only", "--header", "Authorization:${DIALORA_AUTH}" ], "env": { "DIALORA_AUTH": "Bearer dlr_live_xxxxxxxxxxxxxxxx", "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" } } } }

The PATH above covers Homebrew on Apple Silicon (/opt/homebrew/bin) and Intel ( /usr/local/bin). If which npx printed something else — an nvm, asdf, mise, or Nix path — put that directory first in PATH, or use the shell-wrapper form below.

If node is managed by nvm, asdf, mise, or Nix

Version managers put node behind a shim whose path changes with the active version, so a hardcoded command goes stale. Run it through a shell instead (macOS and Linux):

{ "mcpServers": { "dialora": { "command": "/bin/sh", "args": [ "-c", "exec \"$HOME/.nvm/versions/node/v22.14.0/bin/npx\" -y mcp-remote https://api.dialora.ai/mcp --transport http-only --header \"Authorization:$DIALORA_AUTH\"" ], "env": { "DIALORA_AUTH": "Bearer dlr_live_xxxxxxxxxxxxxxxx", "HOME": "/home/<you>", "PATH": "/home/<you>/.nvm/versions/node/v22.14.0/bin:/usr/local/bin:/usr/bin:/bin" } } } }

4. Restart Claude Desktop

Fully quit Claude Desktop — closing the window is not enough.

  • macOS: Cmd+Q, or right-click the dock icon → Quit.
  • Windows: right-click the system-tray icon → Quit.
  • Linux: quit from the tray icon, or pkill -f claude.

Reopen it, start a new chat, and the Dialora tools appear under the connectors (plug) icon.

5. Verify

Ask Claude:

“Using Dialora, list my 5 most recent calls.”

If nothing happens, read the MCP log — it names the exact failure:

OSLog file
macOS~/Library/Logs/Claude/mcp-server-dialora.log
Windows%APPDATA%\Claude\logs\mcp-server-dialora.log
Linux~/.config/Claude/logs/mcp-server-dialora.log
# macOS / Linux — follow the log while Claude Desktop restarts tail -n 50 -f ~/Library/Logs/Claude/mcp-server-dialora.log tail -n 50 -f ~/.config/Claude/logs/mcp-server-dialora.log

Config-file errors, and what fixes them

spawn npx ENOENT / “Server disconnected” right after launch

Claude Desktop cannot find npx. This is the same root cause on all three platforms — the app is launched by the GUI, which does not inherit your shell’s PATH.

  • macOS / Linux — set command to the absolute path from which npx, and add a PATH entry to env that contains the node binary directory.
  • Windows — use "command": "cmd" with "/c", "npx" in args. Also run npm install -g npm once if %APPDATA%\npm does not exist.
  • Linux, AppImage/Flatpak — also add HOME to env; the sandboxed launcher may not pass it through.

401 unauthorized even though the key is correct

Almost always the header got split on its space. Confirm your config uses "Authorization:${DIALORA_AUTH}" (no space after the colon) with "DIALORA_AUTH": "Bearer dlr_live_…" in env — not "Authorization: Bearer dlr_live_…" inline in args.

Connects, then hangs or drops

Pin the transport with "--transport", "http-only". Dialora exposes streamable HTTP only, no SSE endpoint; without the flag mcp-remote may probe SSE and stall waiting for a stream that never opens.

Worked before, fails now with an auth or session error

Clear the bridge’s cache and restart Claude Desktop:

rm -rf ~/.mcp-auth

Behind a corporate proxy or VPN

TLS interception makes mcp-remote fail on certificate validation. Point it at your CA bundle by adding to env:

"NODE_EXTRA_CA_CERTS": "/path/to/corporate-ca.pem"

Test the bridge outside Claude Desktop

If the config looks right but Claude still shows nothing, run the exact command yourself — errors that Claude Desktop swallows are printed here:

DIALORA_AUTH="Bearer dlr_live_xxxxxxxxxxxxxxxx" \ npx -y mcp-remote <MCP_URL> --transport http-only \ --header "Authorization:$DIALORA_AUTH" --debug

Replace <MCP_URL> with https://api.dialora.ai/mcp. --debug writes a detailed log to ~/.mcp-auth/{server_hash}_debug.log.

Test it

“Using Dialora, list my 5 most recent calls.”

Remember the preview rate limits: one tool call every 15 seconds, so ask for one thing at a time.