# Connect DealScore to Claude Desktop

You connect DealScore to Claude Desktop by adding a custom connector under Customize > Connectors with the URL https://cardealscore.com/api/mcp and leaving the OAuth client ID and secret empty. DealScore is a remote MCP server at `https://cardealscore.com/api/mcp`. Claude Desktop can reach it as a custom connector you add in the app, or through the mcp-remote bridge in `claude_desktop_config.json`. Either way Claude gets the `score_deal` tool, which grades a used car's asking price against live US dealer listings.

Page: https://cardealscore.com/integrations/claude-desktop

## Option 1: add a custom connector

1. Open Customize > Connectors in Claude Desktop (some versions label it Settings > Connectors).
2. Click Add custom connector.
3. Name it DealScore and paste `https://cardealscore.com/api/mcp` as the server URL.
4. Leave the OAuth client ID and secret empty. DealScore accepts Claude's published client identity and dynamic client registration, so there is nothing to register first. If your dialog asks how people sign in, choose Sign in when needed or Sign in now. No sign-in leaves `score_deal` at 401, and Claude will not open a Connect card. If it asks about the OAuth client, choose Use Claude's published identity.
5. Click Add.

Custom connector URL:

```
https://cardealscore.com/api/mcp
```

With Sign in when needed, the first time Claude calls `score_deal` a Connect card appears in the chat. Sign in with the email link DealScore sends, approve access, and Claude retries the call. The Claude Free plan allows one custom connector. On Team and Enterprise plans an Owner adds the connector under Organization settings > Connectors, and each member connects with their own DealScore account.

Claude reaches custom connectors from Anthropic's servers, so the connector works the same on any network.

## Option 2: claude_desktop_config.json with mcp-remote

`claude_desktop_config.json` starts local servers by command and has no entry for a remote URL. mcp-remote is a small Node bridge that runs with npx and forwards to the remote server, so you need Node.js installed. Open the file from Settings > Developer > Edit Config. On macOS it is `~/Library/Application Support/Claude/claude_desktop_config.json`, and on Windows it is `%APPDATA%\Claude\claude_desktop_config.json`.

### With OAuth

claude_desktop_config.json, OAuth:

```json
{
  "mcpServers": {
    "dealscore": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://cardealscore.com/api/mcp"]
    }
  }
}
```

Quit Claude Desktop fully and reopen it. The first `score_deal` call opens your browser for the DealScore email sign-in.

### With an API key

claude_desktop_config.json, API key:

```json
{
  "mcpServers": {
    "dealscore": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://cardealscore.com/api/mcp",
        "--header",
        "x-api-key:${DEALSCORE_API_KEY}"
      ],
      "env": {
        "DEALSCORE_API_KEY": "YOUR_DEALSCORE_API_KEY"
      }
    }
  }
}
```

Create a key on https://cardealscore.com/keys and put it in env. Write the header with no space after the colon, because Claude Desktop on Windows does not escape spaces inside args. Keys are for setups that can't open a browser. OAuth is the default.

## Quick answers

### Can I add DealScore in claude_desktop_config.json?

Yes, through the mcp-remote bridge, which runs with npx and needs Node.js. The config file starts local servers by command and has no entry for a remote URL.

### When does Claude Desktop ask me to sign in?

With Sign in when needed, a Connect card appears the first time Claude calls score_deal. Sign in with the email link DealScore sends, approve access, and Claude retries the call.

### Does the Claude Free plan work with DealScore?

Yes. The Claude Free plan allows one custom connector. On Team and Enterprise plans an Owner adds the connector, and each member connects with their own DealScore account.

### Which tools does Claude Desktop get, and what do they cost?

score_deal, explain_grade, and health. Free includes 5 scored calls a month. Only results with coverage: scored count, and explain_grade and health are never metered.

## Example output

Example output, illustrative numbers. [Score a real listing](https://cardealscore.com/try). A generic 2019 Example Sedan listed at $20,000 with 40,000 miles. The ask is 9% under the expected $22,000 (band $20,000 to $24,000). score_v2 grades that delta_pct Good. The score is 87. comps_count is 20. data_source is example. A live score returns live, mock, or error. These numbers are made up. This is not a call from Claude Desktop, and it does not count against the meter. How grades work: https://cardealscore.com/guides/how-deal-grades-work

score_deal arguments:

```json
{
  "year": 2019,
  "make": "Example",
  "model": "Sedan",
  "asking_price": 20000,
  "mileage": 40000
}
```

score_deal response:

```json
{
  "grade": "Good",
  "score": 87,
  "expected_price": 22000,
  "expected_price_low": 20000,
  "expected_price_high": 24000,
  "delta_pct": -0.09,
  "confidence": 0.8,
  "coverage": "scored",
  "rubric_version": "score_v2",
  "data_source": "example",
  "vehicle": {
    "year": 2019,
    "make": "Example",
    "model": "Sedan"
  },
  "comps_count": 20
}
```

## What Claude can call

`score_deal` grades a deal. Send `asking_price` and `mileage`, plus a VIN or year, make, and model. `trim` and `zip` are optional. `explain_grade` maps a `delta_pct` to a grade without fetching comps. `health` reports coverage and limits. Free includes 5 scored calls a month and Builder is $19/mo (founding price) for 1,000 scored calls a month. Only `coverage: scored` counts, and `explain_grade` and `health` are never metered. Plans: https://cardealscore.com/pricing. Argument details: https://cardealscore.com/docs/api. Test arguments in the browser first: https://cardealscore.com/try.

## If DealScore doesn't show up

- After editing `claude_desktop_config.json`, quit Claude Desktop fully. Closing the window leaves the app running.
- Check the file is valid JSON. A trailing comma is the usual mistake.
- npx has to be on the PATH Claude Desktop sees. Run `npx -v` in a terminal to check.
- A result with `coverage: cannot_score` and grade null means the comps were too thin to grade. The connection worked.

Other clients: [Cursor](https://cardealscore.com/integrations/cursor), [VS Code](https://cardealscore.com/integrations/vs-code), [Claude Code](https://cardealscore.com/integrations/claude-code), [Codex](https://cardealscore.com/integrations/codex), [ChatGPT](https://cardealscore.com/integrations/chatgpt), [n8n](https://cardealscore.com/integrations/n8n). The hub is https://cardealscore.com/agents. REST: https://cardealscore.com/used-car-price-api.

Sources: [Custom connectors](https://claude.com/docs/connectors/custom/add-unlisted), [Connector authentication](https://claude.com/docs/connectors/building/authentication), [Remote MCP servers](https://modelcontextprotocol.io/docs/develop/connect-remote-servers), [mcp-remote](https://www.npmjs.com/package/mcp-remote).
