claude_desktop_config.json. Bilt is remote and uses an API key, so mcp-remote provides the local stdio bridge and attaches the Authorization header.
Claude’s custom connector UI is not a substitute for this setup. It accepts OAuth client settings but does not provide a field for Bilt’s static Authorization header, so it may attempt an OAuth flow that Bilt does not support.
Prerequisites
- Claude Desktop
- Node.js 18 or newer, with
npxavailable - A key from Bilt API Keys
Configure Claude Desktop
Open the configuration file:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
mcpServers, preserving any other servers already present:
bilt_live_YOUR_TOKEN. Keep Authorization:${BILT_AUTH_HEADER} without a space after the colon; this avoids a known Windows argument-splitting problem. The disabled body timeout allows builds that run longer than five minutes to finish.
Fully quit Claude Desktop and reopen it. Bilt should appear in Claude’s MCP tools.
Windows npx startup failure
If the MCP log contains 'C:\Program' is not recognized, Claude is splitting the Node.js path at Program Files.
- In Command Prompt, run
where npxto confirm Node.js is installed. - Replace
"command": "npx"with the short-path command:
args and env unchanged. If Node.js is installed elsewhere, use the matching 8.3 short path for that installation.
Verify the connection
Ask Claude: “Use Bilt to list my projects.” A successful connection exposes seven tools beginning withbilt_.
Troubleshooting
Configuration rejected at startup
Configuration rejected at startup
Remove any nested
"transport": { "type": "sse", ... } entry. Claude Desktop’s local configuration expects command, args, and optional env fields.OAuth registration failed
OAuth registration failed
Remove the Bilt custom connector from Claude’s connector UI and use the local
mcp-remote configuration. Bilt authenticates with an API key, not OAuth dynamic client registration.Connection or tool call times out
Connection or tool call times out
Confirm the URL ends in
/mcp, --transport is http-only, and --body-timeout 0 is present. Restart Claude after every configuration change.Migrating from legacy SSE
The former/mcp/sse endpoint is gone. Use /mcp and force mcp-remote to http-only; there is no SSE fallback.