Connect

Connect DealScore to VS Code

DealScore is a remote MCP server at https://cardealscore.com/api/mcp. VS Code reads .vscode/mcp.json. The entry uses servers, "type": "http", and that URL. Leave headers out. VS Code discovers OAuth from the URL and opens a browser for the email sign-in. After you approve access, Copilot in agent mode can call score_deal.

Add the server

  1. In the project, create or open .vscode/mcp.json. The same block works in your user profile. Run MCP: Open User Configuration to open that file.
  2. Paste the config below. Leave headers out. The URL alone is what VS Code uses to start OAuth.
  3. Save the file. Trust the workspace if VS Code asks. VS Code then opens a browser for the email sign-in.
  4. Open the email link DealScore sends and approve access. VS Code then calls the server with the access token.
  5. In Copilot chat, use agent mode and ask it to call score_deal with a year, make, model, asking price, and mileage. ZIP is optional.

.vscode/mcp.json

{
  "servers": {
    "dealscore": {
      "type": "http",
      "url": "https://cardealscore.com/api/mcp"
    }
  }
}

No headers. VS Code discovers OAuth and opens a browser for the email sign-in. Full setup: /integrations/vs-code.

You can also run MCP: Add Server from the Command Palette. For a new server, that command prefers .mcp.json at the project root. That file uses mcpServers instead of servers. It still offers .vscode/mcp.json. Both files are read. Keep headers off the OAuth entry.

API key, when the browser sign-in is unavailable

VS Code's OAuth path above is the one to use. A client that cannot open a browser can send x-api-key instead. Create the key on /keys. Authorization: Bearer YOUR_KEY works in that header slot too. A header on this block skips the browser sign-in.

MCP config with an API key

{
  "servers": {
    "dealscore": {
      "type": "http",
      "url": "https://cardealscore.com/api/mcp",
      "headers": { "x-api-key": "YOUR_KEY" }
    }
  }
}

To keep the key out of a file you commit, put ${input:dealscore-key} in the header value. VS Code prompts for it the first time the server starts.

If score_deal is missing

  • The OAuth config is type http, a url, and no headers. A header on that block skips the browser sign-in.
  • Finish the email sign-in. An unfinished consent leaves score_deal unauthorized.
  • Trust the workspace if VS Code asks. An untrusted server does not start.
  • coverage: cannot_score with a null grade means comps were too thin. The connection worked.
  • score_quota_exceeded means the monthly cap is spent. The connection worked. Plans: /pricing.

What the agent 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: /pricing. Argument details: /docs/api. Test arguments in the browser first: /try.

Other clients

Cursor, Claude Code, Claude Desktop, Codex, ChatGPT. The REST call and a recorded response are on /used-car-price-api. Every client is also listed on /agents.