Connect DealScore to n8n
DealScore is a remote MCP server at https://cardealscore.com/api/mcp (Streamable HTTP). In n8n, an MCP Client Tool node connects score_deal to an AI Agent. DealScore's default for a client that can open a browser is OAuth 2.1 with PKCE. A workflow run does not open a browser, so this page uses Header Auth and the x-api-key header.
Add the MCP Client Tool
- In a workflow, add an AI Agent node.
- Add an MCP Client Tool node and connect its tool output to the AI Agent.
- Set Server Transport to HTTP Streamable. On node version 1.2 and later that is the default. The current default version is 1.4.
- Set Endpoint to
https://cardealscore.com/api/mcp. - Set Authentication to Header Auth and attach the credential below.
- Leave Tools to Include on All, or switch it to Selected and include
score_deal. All also exposesexplain_gradeandhealth. - Attach your own chat model to the AI Agent. Ask it to call
score_dealwith a year, make, model, asking price, and mileage. ZIP is optional.
MCP Client Tool
Endpoint: https://cardealscore.com/api/mcp Server Transport: HTTP Streamable Authentication: Header Auth Header name: x-api-key Header value: YOUR_KEY
Create the key at /keys. A workflow run does not open a browser, so Header Auth is the path to use. Bearer Auth with the same key also works. Full setup: /integrations/n8n.
The MCP Client Tool docs page still names the URL field SSE Endpoint. That is version 1 of the node. Version 1.1 and later call the field Endpoint, and version 1.2 and later add Server Transport. DealScore does not serve SSE, so a version 1 node cannot reach it.
Header Auth
Create a key on /keys. In n8n, create a Header Auth credential. Name is x-api-key. Value is the key. Select that credential on the MCP Client Tool. DealScore needs that one header.
Bearer Auth sends Authorization: Bearer and the same key. DealScore accepts that header on MCP and on POST /api/score. Header Auth is the one that sends x-api-key.
Node version 1.2 and later also lists MCP OAuth2. n8n's MCP OAuth2 credential can register a client with the server (dynamic client registration is on by default) and has an optional Resource URL. Header Auth is the setup on this page.
Workflow file
Import this workflow, then attach the Header Auth credential and your own chat model. The file has no credentials and no API key.
Download dealscore-n8n-workflow.json
dealscore-n8n-workflow.json
{
"name": "DealScore score_deal",
"nodes": [
{
"parameters": {
"content": "## DealScore\n\nThis file has no credentials.\n\n1. Create a Header Auth credential. Name: x-api-key. Value: a key from https://cardealscore.com/keys.\n2. On the DealScore node, choose that credential.\n3. Connect the node to an AI Agent tool input and attach your own chat model.\n\nDo not paste a key into this file.",
"height": 260,
"width": 420
},
"id": "b7e1c0a2-4d5f-4a61-9c10-0a1b2c3d4e5f",
"name": "Read me",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-40,
-20
]
},
{
"parameters": {
"endpointUrl": "https://cardealscore.com/api/mcp",
"serverTransport": "httpStreamable",
"authentication": "headerAuth",
"include": "all",
"options": {}
},
"id": "c8f2d1b3-5e60-4b72-8d21-1b2c3d4e5f60",
"name": "DealScore",
"type": "@n8n/n8n-nodes-langchain.mcpClientTool",
"typeVersion": 1.4,
"position": [
460,
80
]
}
],
"connections": {},
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": {
"templateCredsSetupCompleted": true
},
"tags": []
}
A recorded score_deal response
This is a recorded production score for a 2020 Toyota Camry listed at $18,500 with 62,000 miles, ZIP 33803. The same payload is on /used-car-price-api. The call was POST /api/score, which uses the same engine and response shape as MCP score_deal. It was not made from n8n. comps_summary, brief, and risks were not in that recording. Prices move with the market, so a later call returns different numbers.
score_deal arguments
{
"year": 2020,
"make": "Toyota",
"model": "Camry",
"asking_price": 18500,
"mileage": 62000,
"zip": "33803"
}score_deal response
{
"grade": "Great",
"score": 100,
"expected_price": 22378,
"expected_price_low": 13999,
"expected_price_high": 32997,
"delta_pct": -0.1733,
"confidence": 0.92,
"coverage": "scored",
"rubric_version": "score_v1",
"data_source": "live",
"vehicle": {
"year": 2020,
"make": "Toyota",
"model": "Camry"
},
"comps_count": 17
}The ask is 17.3% under the expected $22,378. That sits in the Great band, 10% or more under the expected price. The score is 100 because an ask below the expected price clamps to 100. ZIP 33803 narrows comps to a local market. This response counted 17 comps with data_source: live and coverage: scored, so the call counted against the meter. How the bands are drawn: /guides/how-deal-grades-work.
If the tool list stays empty
- Server Transport is HTTP Streamable and Endpoint is
https://cardealscore.com/api/mcp. SSE Endpoint is the version 1 field, and DealScore has no SSE URL. - Authentication is Header Auth. Name is
x-api-key. Value is the key from /keys, with noBearerprefix in that value. coverage: cannot_scorewith a null grade means comps were too thin. The connection worked.score_quota_exceededmeans the monthly cap is spent. The connection worked. Plans: /pricing.
Directory links:
Directory links
https://cardealscore.com/integrations/n8n?ref=n8n&utm_source=n8n&utm_medium=mcp_directory https://cardealscore.com/agents?ref=n8n&utm_source=n8n&utm_medium=mcp_directory
Sources: MCP Client Tool, MCP credentials.
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, VS Code, 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.