# carvectorio/carvector-mcp architecture

> Architecture diagram of the GitHub repository carvectorio/carvector-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/carvectorio/carvector-mcp
- Repository: https://github.com/carvectorio/carvector-mcp

## Overview

carvector-mcp is a small stdio MCP server that exposes CarVector vehicle-data queries as tools. An MCP client invokes a tool; the server dispatches it, forwards an authenticated request to the CarVector API, and returns the response or a formatted error. Vehicle search can resolve an ID for the separate vehicle-detail and history tools. Source inspection covers the single runtime file; other domain capabilities are documented in the README.

Main entry points: [`index.js`](https://github.com/carvectorio/carvector-mcp/blob/main/index.js) (Tool dispatch)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_client(("MCP client"))
node_server["MCP server<br/>[index.js]"]
node_stdio["stdio transport<br/>[index.js]"]
node_dispatch["Tool dispatch<br/>[index.js]"]
node_search["Vehicle search<br/>[index.js]"]
node_vehicle["Vehicle details<br/>[index.js]"]
node_recalls["Recall lookup<br/>[index.js]"]
node_complaints["Complaint lookup<br/>[index.js]"]
node_tsbs["TSB lookup<br/>[index.js]"]
node_investigations["Investigation lookup<br/>[index.js]"]
node_dtc["DTC lookup<br/>[index.js]"]
node_api["API request<br/>[index.js]"]
node_carvector["CarVector API"]

node_client -->|"sends MCP"| node_stdio
node_server -->|"connects"| node_stdio
node_stdio -->|"delivers requests"| node_dispatch
node_dispatch -->|"dispatches"| node_search
node_dispatch -->|"dispatches"| node_vehicle
node_dispatch -->|"dispatches"| node_recalls
node_dispatch -->|"dispatches"| node_complaints
node_dispatch -->|"dispatches"| node_tsbs
node_dispatch -->|"dispatches"| node_investigations
node_dispatch -->|"dispatches"| node_dtc
node_search -->|"requests"| node_api
node_vehicle -->|"requests"| node_api
node_recalls -->|"requests"| node_api
node_complaints -->|"requests"| node_api
node_tsbs -->|"requests"| node_api
node_investigations -->|"requests"| node_api
node_dtc -->|"requests"| node_api
node_api -->|"fetches with key"| node_carvector
node_carvector -->|"returns data"| node_api
node_api -->|"returns response"| node_dispatch
node_dispatch -->|"returns tool result"| node_stdio

click node_server "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_stdio "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_dispatch "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_search "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_vehicle "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_recalls "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_complaints "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_tsbs "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_investigations "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_dtc "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"
click node_api "https://github.com/carvectorio/carvector-mcp/blob/main/index.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_client toneBlue
class node_server,node_api,node_carvector toneMint
class node_stdio,node_dispatch,node_search,node_vehicle,node_recalls,node_complaints,node_tsbs,node_investigations,node_dtc toneTeal
```

## Components

### Other components

- **MCP client**
- [MCP server](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [stdio transport](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [Tool dispatch](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [Vehicle search](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [Vehicle details](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [Recall lookup](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [Complaint lookup](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [TSB lookup](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [Investigation lookup](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [DTC lookup](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- [API request](https://github.com/carvectorio/carvector-mcp/blob/main/index.js): `index.js`
- **CarVector API**

## Connections

- MCP client → stdio transport: sends MCP
- MCP server → stdio transport: connects
- stdio transport → Tool dispatch: delivers requests
- Tool dispatch → Vehicle search: dispatches
- Tool dispatch → Vehicle details: dispatches
- Tool dispatch → Recall lookup: dispatches
- Tool dispatch → Complaint lookup: dispatches
- Tool dispatch → TSB lookup: dispatches
- Tool dispatch → Investigation lookup: dispatches
- Tool dispatch → DTC lookup: dispatches
- Vehicle search → API request: requests
- Vehicle details → API request: requests
- Recall lookup → API request: requests
- Complaint lookup → API request: requests
- TSB lookup → API request: requests
- Investigation lookup → API request: requests
- DTC lookup → API request: requests
- API request → CarVector API: fetches with key
- CarVector API → API request: returns data
- API request → Tool dispatch: returns response
- Tool dispatch → stdio transport: returns tool result
