cardossier-mcp-server 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cardossier_mcp_server-1.0.0/LICENSE +21 -0
- cardossier_mcp_server-1.0.0/PKG-INFO +168 -0
- cardossier_mcp_server-1.0.0/README.md +139 -0
- cardossier_mcp_server-1.0.0/pyproject.toml +42 -0
- cardossier_mcp_server-1.0.0/setup.cfg +41 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server/__init__.py +2 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server/server.py +139 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server.egg-info/PKG-INFO +168 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server.egg-info/SOURCES.txt +12 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server.egg-info/dependency_links.txt +1 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server.egg-info/entry_points.txt +2 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server.egg-info/requires.txt +2 -0
- cardossier_mcp_server-1.0.0/src/cardossier_mcp_server.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 CarDossier
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cardossier-mcp-server
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: MCP Server for CarDossier Market API — Polish used car market data (valuations, price history, liquidity, regional pricing)
|
|
5
|
+
Home-page: https://car-dossier.com/en/api/
|
|
6
|
+
Author: CarDossier
|
|
7
|
+
Author-email: hello@car-dossier.com
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://car-dossier.com/en/api/
|
|
10
|
+
Project-URL: Documentation, https://car-dossier.com/en/api/docs
|
|
11
|
+
Project-URL: Repository, https://github.com/Joyall-au/cardossier-mcp-server
|
|
12
|
+
Project-URL: Bug Tracker, https://github.com/Joyall-au/cardossier-mcp-server/issues
|
|
13
|
+
Keywords: mcp,car,poland,automotive,valuation,api,ai,llm
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Requires-Python: >=3.9
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: mcp>=1.0.0
|
|
27
|
+
Requires-Dist: requests>=2.28.0
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
|
|
30
|
+
# CarDossier Poland Market API — MCP Server
|
|
31
|
+
|
|
32
|
+
[](LICENSE)
|
|
33
|
+
[](https://www.python.org/)
|
|
34
|
+
[](https://modelcontextprotocol.io)
|
|
35
|
+
|
|
36
|
+
An **MCP (Model Context Protocol) server** that gives AI assistants — Claude, Cursor, Windsurf, and any MCP-compatible agent — real-time access to Polish used car market data via the [CarDossier Market API](https://car-dossier.com/en/api/).
|
|
37
|
+
|
|
38
|
+
## What It Does
|
|
39
|
+
|
|
40
|
+
This server exposes 5 tools that AI agents can call to answer questions like:
|
|
41
|
+
|
|
42
|
+
- *"What is a 2019 Toyota Corolla worth in Poland right now?"*
|
|
43
|
+
- *"Has the price of diesel BMWs been rising or falling over the past 6 months?"*
|
|
44
|
+
- *"How quickly do used Volkswagen Golfs sell in Poland?"*
|
|
45
|
+
- *"Is a 2020 Audi A4 cheaper in Mazowieckie or Śląskie?"*
|
|
46
|
+
- *"How much more does an automatic gearbox add to the price of a 2018 Ford Focus?"*
|
|
47
|
+
|
|
48
|
+
## Available Tools
|
|
49
|
+
|
|
50
|
+
| Tool | Description | Credits |
|
|
51
|
+
|------|-------------|---------|
|
|
52
|
+
| `get_market_valuation` | Average, median, P25 & P75 prices for any make/model/year | 8 |
|
|
53
|
+
| `get_price_history` | Monthly price trend for up to 24 months | 10 |
|
|
54
|
+
| `get_market_liquidity` | Estimated days-on-market (how fast a car sells) | 6 |
|
|
55
|
+
| `get_valuation_factors` | Price impact of gearbox type, fuel type, import status | 12 |
|
|
56
|
+
| `get_regional_prices` | Price comparison across all 16 Polish voivodeships | 8 |
|
|
57
|
+
|
|
58
|
+
Data source: 2M+ active listings from Poland's leading car marketplaces, updated daily.
|
|
59
|
+
|
|
60
|
+
## Prerequisites
|
|
61
|
+
|
|
62
|
+
- Python 3.9+
|
|
63
|
+
- A CarDossier API key — [get one here](https://car-dossier.com/en/api/pricing) (starts at $49 for 5,000 credits)
|
|
64
|
+
|
|
65
|
+
## Installation
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Clone the repository
|
|
69
|
+
git clone https://github.com/Joyall-au/cardossier-mcp-server.git
|
|
70
|
+
cd cardossier-mcp-server
|
|
71
|
+
|
|
72
|
+
# Install dependencies
|
|
73
|
+
pip install mcp requests
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Usage
|
|
77
|
+
|
|
78
|
+
### 1. Set your API key
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
export CARDOSSIER_API_KEY="your_api_key_here"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 2. Run the server
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
python mcp_server.py
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 3. Connect to Claude Desktop
|
|
91
|
+
|
|
92
|
+
Add the following to your Claude Desktop config file:
|
|
93
|
+
|
|
94
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
95
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"mcpServers": {
|
|
100
|
+
"cardossier": {
|
|
101
|
+
"command": "python",
|
|
102
|
+
"args": ["/path/to/cardossier-mcp-server/mcp_server.py"],
|
|
103
|
+
"env": {
|
|
104
|
+
"CARDOSSIER_API_KEY": "your_api_key_here"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 4. Connect to Cursor or Windsurf
|
|
112
|
+
|
|
113
|
+
Add to your MCP settings:
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"cardossier": {
|
|
118
|
+
"command": "python",
|
|
119
|
+
"args": ["/path/to/mcp_server.py"],
|
|
120
|
+
"env": {
|
|
121
|
+
"CARDOSSIER_API_KEY": "your_api_key_here"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Example Interactions
|
|
128
|
+
|
|
129
|
+
Once connected, you can ask your AI assistant:
|
|
130
|
+
|
|
131
|
+
> **"What's the current market value of a 2020 BMW 3 Series diesel in Poland?"**
|
|
132
|
+
|
|
133
|
+
The agent will call `get_market_valuation` with `make=BMW, model=3 Series, year=2020, fuel_type=diesel` and return the statistical distribution of prices.
|
|
134
|
+
|
|
135
|
+
> **"Show me how Toyota Corolla prices have changed over the last year"**
|
|
136
|
+
|
|
137
|
+
The agent will call `get_price_history` with `months=12` and return a monthly price trend.
|
|
138
|
+
|
|
139
|
+
> **"Compare used Skoda Octavia prices across Polish regions"**
|
|
140
|
+
|
|
141
|
+
The agent will call `get_regional_prices` and return a breakdown by voivodeship.
|
|
142
|
+
|
|
143
|
+
## API Reference
|
|
144
|
+
|
|
145
|
+
Full API documentation: [car-dossier.com/en/api/docs](https://car-dossier.com/en/api/docs)
|
|
146
|
+
OpenAPI 3.1 spec: [car-dossier.com/openapi.yaml](https://car-dossier.com/openapi.yaml)
|
|
147
|
+
FAQ: [car-dossier.com/en/api/faq/](https://car-dossier.com/en/api/faq/)
|
|
148
|
+
|
|
149
|
+
## Pricing
|
|
150
|
+
|
|
151
|
+
The CarDossier Market API uses a pay-as-you-go credit system. Credits never expire.
|
|
152
|
+
|
|
153
|
+
| Package | Price | Credits | ~Valuation calls |
|
|
154
|
+
|----------|-------|---------|-----------------|
|
|
155
|
+
| Starter | $49 | 5,000 | ~625 |
|
|
156
|
+
| Growth | $129 | 15,000 | ~1,875 |
|
|
157
|
+
| Pro | $299 | 40,000 | ~5,000 |
|
|
158
|
+
| Business | $699 | 100,000 | ~12,500 |
|
|
159
|
+
|
|
160
|
+
[Get your API key →](https://car-dossier.com/en/api/pricing)
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
MIT License — see [LICENSE](LICENSE) for details.
|
|
165
|
+
|
|
166
|
+
## About
|
|
167
|
+
|
|
168
|
+
Built by [CarDossier](https://car-dossier.com) — Poland's leading vehicle history and market data platform.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# CarDossier Poland Market API — MCP Server
|
|
2
|
+
|
|
3
|
+
[](LICENSE)
|
|
4
|
+
[](https://www.python.org/)
|
|
5
|
+
[](https://modelcontextprotocol.io)
|
|
6
|
+
|
|
7
|
+
An **MCP (Model Context Protocol) server** that gives AI assistants — Claude, Cursor, Windsurf, and any MCP-compatible agent — real-time access to Polish used car market data via the [CarDossier Market API](https://car-dossier.com/en/api/).
|
|
8
|
+
|
|
9
|
+
## What It Does
|
|
10
|
+
|
|
11
|
+
This server exposes 5 tools that AI agents can call to answer questions like:
|
|
12
|
+
|
|
13
|
+
- *"What is a 2019 Toyota Corolla worth in Poland right now?"*
|
|
14
|
+
- *"Has the price of diesel BMWs been rising or falling over the past 6 months?"*
|
|
15
|
+
- *"How quickly do used Volkswagen Golfs sell in Poland?"*
|
|
16
|
+
- *"Is a 2020 Audi A4 cheaper in Mazowieckie or Śląskie?"*
|
|
17
|
+
- *"How much more does an automatic gearbox add to the price of a 2018 Ford Focus?"*
|
|
18
|
+
|
|
19
|
+
## Available Tools
|
|
20
|
+
|
|
21
|
+
| Tool | Description | Credits |
|
|
22
|
+
|------|-------------|---------|
|
|
23
|
+
| `get_market_valuation` | Average, median, P25 & P75 prices for any make/model/year | 8 |
|
|
24
|
+
| `get_price_history` | Monthly price trend for up to 24 months | 10 |
|
|
25
|
+
| `get_market_liquidity` | Estimated days-on-market (how fast a car sells) | 6 |
|
|
26
|
+
| `get_valuation_factors` | Price impact of gearbox type, fuel type, import status | 12 |
|
|
27
|
+
| `get_regional_prices` | Price comparison across all 16 Polish voivodeships | 8 |
|
|
28
|
+
|
|
29
|
+
Data source: 2M+ active listings from Poland's leading car marketplaces, updated daily.
|
|
30
|
+
|
|
31
|
+
## Prerequisites
|
|
32
|
+
|
|
33
|
+
- Python 3.9+
|
|
34
|
+
- A CarDossier API key — [get one here](https://car-dossier.com/en/api/pricing) (starts at $49 for 5,000 credits)
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Clone the repository
|
|
40
|
+
git clone https://github.com/Joyall-au/cardossier-mcp-server.git
|
|
41
|
+
cd cardossier-mcp-server
|
|
42
|
+
|
|
43
|
+
# Install dependencies
|
|
44
|
+
pip install mcp requests
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Usage
|
|
48
|
+
|
|
49
|
+
### 1. Set your API key
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
export CARDOSSIER_API_KEY="your_api_key_here"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2. Run the server
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
python mcp_server.py
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 3. Connect to Claude Desktop
|
|
62
|
+
|
|
63
|
+
Add the following to your Claude Desktop config file:
|
|
64
|
+
|
|
65
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
66
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"cardossier": {
|
|
72
|
+
"command": "python",
|
|
73
|
+
"args": ["/path/to/cardossier-mcp-server/mcp_server.py"],
|
|
74
|
+
"env": {
|
|
75
|
+
"CARDOSSIER_API_KEY": "your_api_key_here"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4. Connect to Cursor or Windsurf
|
|
83
|
+
|
|
84
|
+
Add to your MCP settings:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"cardossier": {
|
|
89
|
+
"command": "python",
|
|
90
|
+
"args": ["/path/to/mcp_server.py"],
|
|
91
|
+
"env": {
|
|
92
|
+
"CARDOSSIER_API_KEY": "your_api_key_here"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Example Interactions
|
|
99
|
+
|
|
100
|
+
Once connected, you can ask your AI assistant:
|
|
101
|
+
|
|
102
|
+
> **"What's the current market value of a 2020 BMW 3 Series diesel in Poland?"**
|
|
103
|
+
|
|
104
|
+
The agent will call `get_market_valuation` with `make=BMW, model=3 Series, year=2020, fuel_type=diesel` and return the statistical distribution of prices.
|
|
105
|
+
|
|
106
|
+
> **"Show me how Toyota Corolla prices have changed over the last year"**
|
|
107
|
+
|
|
108
|
+
The agent will call `get_price_history` with `months=12` and return a monthly price trend.
|
|
109
|
+
|
|
110
|
+
> **"Compare used Skoda Octavia prices across Polish regions"**
|
|
111
|
+
|
|
112
|
+
The agent will call `get_regional_prices` and return a breakdown by voivodeship.
|
|
113
|
+
|
|
114
|
+
## API Reference
|
|
115
|
+
|
|
116
|
+
Full API documentation: [car-dossier.com/en/api/docs](https://car-dossier.com/en/api/docs)
|
|
117
|
+
OpenAPI 3.1 spec: [car-dossier.com/openapi.yaml](https://car-dossier.com/openapi.yaml)
|
|
118
|
+
FAQ: [car-dossier.com/en/api/faq/](https://car-dossier.com/en/api/faq/)
|
|
119
|
+
|
|
120
|
+
## Pricing
|
|
121
|
+
|
|
122
|
+
The CarDossier Market API uses a pay-as-you-go credit system. Credits never expire.
|
|
123
|
+
|
|
124
|
+
| Package | Price | Credits | ~Valuation calls |
|
|
125
|
+
|----------|-------|---------|-----------------|
|
|
126
|
+
| Starter | $49 | 5,000 | ~625 |
|
|
127
|
+
| Growth | $129 | 15,000 | ~1,875 |
|
|
128
|
+
| Pro | $299 | 40,000 | ~5,000 |
|
|
129
|
+
| Business | $699 | 100,000 | ~12,500 |
|
|
130
|
+
|
|
131
|
+
[Get your API key →](https://car-dossier.com/en/api/pricing)
|
|
132
|
+
|
|
133
|
+
## License
|
|
134
|
+
|
|
135
|
+
MIT License — see [LICENSE](LICENSE) for details.
|
|
136
|
+
|
|
137
|
+
## About
|
|
138
|
+
|
|
139
|
+
Built by [CarDossier](https://car-dossier.com) — Poland's leading vehicle history and market data platform.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "cardossier-mcp-server"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "MCP Server for CarDossier Market API — Polish used car market data (valuations, price history, liquidity, regional pricing)"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = { text = "MIT" }
|
|
11
|
+
requires-python = ">=3.9"
|
|
12
|
+
keywords = ["mcp", "car", "poland", "automotive", "valuation", "api", "ai", "llm"]
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Development Status :: 4 - Beta",
|
|
15
|
+
"Intended Audience :: Developers",
|
|
16
|
+
"License :: OSI Approved :: MIT License",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.9",
|
|
19
|
+
"Programming Language :: Python :: 3.10",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
23
|
+
]
|
|
24
|
+
dependencies = [
|
|
25
|
+
"mcp>=1.0.0",
|
|
26
|
+
"requests>=2.28.0",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[project.urls]
|
|
30
|
+
Homepage = "https://car-dossier.com/en/api/"
|
|
31
|
+
Documentation = "https://car-dossier.com/en/api/docs"
|
|
32
|
+
Repository = "https://github.com/Joyall-au/cardossier-mcp-server"
|
|
33
|
+
"Bug Tracker" = "https://github.com/Joyall-au/cardossier-mcp-server/issues"
|
|
34
|
+
|
|
35
|
+
[project.scripts]
|
|
36
|
+
cardossier-mcp = "cardossier_mcp_server.server:main"
|
|
37
|
+
|
|
38
|
+
[tool.setuptools.packages.find]
|
|
39
|
+
where = ["src"]
|
|
40
|
+
|
|
41
|
+
[tool.setuptools.package-data]
|
|
42
|
+
"*" = ["*.md"]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
[metadata]
|
|
2
|
+
name = cardossier-mcp-server
|
|
3
|
+
version = 1.0.0
|
|
4
|
+
description = MCP Server for CarDossier Market API — Polish used car market data
|
|
5
|
+
long_description = file: README.md
|
|
6
|
+
long_description_content_type = text/markdown
|
|
7
|
+
author = CarDossier
|
|
8
|
+
author_email = hello@car-dossier.com
|
|
9
|
+
url = https://car-dossier.com/en/api/
|
|
10
|
+
license = MIT
|
|
11
|
+
keywords = mcp, car, poland, automotive, valuation, api, ai, llm
|
|
12
|
+
classifiers =
|
|
13
|
+
Development Status :: 4 - Beta
|
|
14
|
+
Intended Audience :: Developers
|
|
15
|
+
License :: OSI Approved :: MIT License
|
|
16
|
+
Programming Language :: Python :: 3
|
|
17
|
+
Programming Language :: Python :: 3.9
|
|
18
|
+
Programming Language :: Python :: 3.10
|
|
19
|
+
Programming Language :: Python :: 3.11
|
|
20
|
+
Programming Language :: Python :: 3.12
|
|
21
|
+
|
|
22
|
+
[options]
|
|
23
|
+
package_dir =
|
|
24
|
+
= src
|
|
25
|
+
packages = find:
|
|
26
|
+
python_requires = >=3.9
|
|
27
|
+
install_requires =
|
|
28
|
+
mcp>=1.0.0
|
|
29
|
+
requests>=2.28.0
|
|
30
|
+
|
|
31
|
+
[options.packages.find]
|
|
32
|
+
where = src
|
|
33
|
+
|
|
34
|
+
[options.entry_points]
|
|
35
|
+
console_scripts =
|
|
36
|
+
cardossier-mcp = cardossier_mcp_server.server:main
|
|
37
|
+
|
|
38
|
+
[egg_info]
|
|
39
|
+
tag_build =
|
|
40
|
+
tag_date = 0
|
|
41
|
+
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
CarDossier Market API - MCP Server
|
|
4
|
+
Allows AI assistants (Claude, Cursor, Windsurf, etc.) to query Polish used car market data.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
export CARDOSSIER_API_KEY="your_api_key"
|
|
8
|
+
cardossier-mcp
|
|
9
|
+
# or: python -m cardossier_mcp_server.server
|
|
10
|
+
|
|
11
|
+
mcp-name: io.github.Joyall-au/cardossier-market-api
|
|
12
|
+
"""
|
|
13
|
+
import os
|
|
14
|
+
import sys
|
|
15
|
+
import requests
|
|
16
|
+
from typing import Optional, Dict, Any
|
|
17
|
+
|
|
18
|
+
try:
|
|
19
|
+
from mcp.server.fastmcp import FastMCP
|
|
20
|
+
except ImportError:
|
|
21
|
+
print("Error: 'mcp' package not installed. Run: pip install mcp", file=sys.stderr)
|
|
22
|
+
sys.exit(1)
|
|
23
|
+
|
|
24
|
+
BASE_URL = "https://api.car-dossier.com/v1"
|
|
25
|
+
|
|
26
|
+
mcp = FastMCP("CarDossier Market API")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _get_headers() -> Dict[str, str]:
|
|
30
|
+
api_key = os.environ.get("CARDOSSIER_API_KEY")
|
|
31
|
+
if not api_key:
|
|
32
|
+
raise RuntimeError("CARDOSSIER_API_KEY environment variable not set.")
|
|
33
|
+
return {"X-API-Key": api_key}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def make_request(endpoint: str, params: Dict[str, Any]) -> str:
|
|
37
|
+
"""Helper to make API requests and format responses."""
|
|
38
|
+
try:
|
|
39
|
+
clean_params = {k: v for k, v in params.items() if v is not None}
|
|
40
|
+
response = requests.get(
|
|
41
|
+
f"{BASE_URL}{endpoint}",
|
|
42
|
+
headers=_get_headers(),
|
|
43
|
+
params=clean_params,
|
|
44
|
+
timeout=10,
|
|
45
|
+
)
|
|
46
|
+
data = response.json()
|
|
47
|
+
if response.status_code != 200 or data.get("status") == "error":
|
|
48
|
+
err = data.get("error", {})
|
|
49
|
+
return f"API Error ({err.get('code')}): {err.get('message', response.text)}"
|
|
50
|
+
return str(data.get("data", data))
|
|
51
|
+
except RuntimeError as e:
|
|
52
|
+
return f"Configuration error: {str(e)}"
|
|
53
|
+
except Exception as e:
|
|
54
|
+
return f"Request failed: {str(e)}"
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@mcp.tool()
|
|
58
|
+
def get_market_valuation(
|
|
59
|
+
make: str,
|
|
60
|
+
model: str,
|
|
61
|
+
year: int,
|
|
62
|
+
fuel_type: Optional[str] = None,
|
|
63
|
+
gearbox: Optional[str] = None,
|
|
64
|
+
mileage: Optional[int] = None,
|
|
65
|
+
) -> str:
|
|
66
|
+
"""
|
|
67
|
+
Get average, median, P25, and P75 prices for a specific make/model/year in Poland.
|
|
68
|
+
Optionally filter by fuel_type (Benzyna/Diesel/Hybryda/Elektryczny),
|
|
69
|
+
gearbox (Manualna/Automatyczna), or mileage.
|
|
70
|
+
Costs 8 credits per call.
|
|
71
|
+
"""
|
|
72
|
+
return make_request(
|
|
73
|
+
"/market/valuation",
|
|
74
|
+
{"make": make, "model": model, "year": year,
|
|
75
|
+
"fuel_type": fuel_type, "gearbox": gearbox, "mileage": mileage},
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@mcp.tool()
|
|
80
|
+
def get_price_history(
|
|
81
|
+
make: str,
|
|
82
|
+
model: str,
|
|
83
|
+
year: int,
|
|
84
|
+
months: Optional[int] = 6,
|
|
85
|
+
) -> str:
|
|
86
|
+
"""
|
|
87
|
+
Get monthly average price trend for up to 24 months to identify depreciation curves.
|
|
88
|
+
Costs 5 credits per call.
|
|
89
|
+
"""
|
|
90
|
+
return make_request(
|
|
91
|
+
"/market/price-history",
|
|
92
|
+
{"make": make, "model": model, "year": year, "months": months},
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@mcp.tool()
|
|
97
|
+
def get_market_liquidity(make: str, model: str, year: int) -> str:
|
|
98
|
+
"""
|
|
99
|
+
Get estimated days-on-market (DOM) showing how fast this car typically sells in Poland.
|
|
100
|
+
Costs 5 credits per call.
|
|
101
|
+
"""
|
|
102
|
+
return make_request(
|
|
103
|
+
"/market/liquidity",
|
|
104
|
+
{"make": make, "model": model, "year": year},
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@mcp.tool()
|
|
109
|
+
def get_valuation_factors(make: str, model: str, year: int) -> str:
|
|
110
|
+
"""
|
|
111
|
+
Quantify the price impact of import status, gearbox type, and fuel type for this car.
|
|
112
|
+
Costs 8 credits per call.
|
|
113
|
+
"""
|
|
114
|
+
return make_request(
|
|
115
|
+
"/market/valuation-factors",
|
|
116
|
+
{"make": make, "model": model, "year": year},
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
@mcp.tool()
|
|
121
|
+
def get_regional_pricing(make: str, model: str, year: int) -> str:
|
|
122
|
+
"""
|
|
123
|
+
Compare average prices across Polish voivodeships vs. the national average.
|
|
124
|
+
Costs 5 credits per call.
|
|
125
|
+
"""
|
|
126
|
+
return make_request(
|
|
127
|
+
"/market/regional",
|
|
128
|
+
{"make": make, "model": model, "year": year},
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def main():
|
|
133
|
+
"""Entry point for the cardossier-mcp CLI command."""
|
|
134
|
+
print("Starting CarDossier Market API MCP Server...", file=sys.stderr)
|
|
135
|
+
mcp.run()
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
if __name__ == "__main__":
|
|
139
|
+
main()
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cardossier-mcp-server
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: MCP Server for CarDossier Market API — Polish used car market data (valuations, price history, liquidity, regional pricing)
|
|
5
|
+
Home-page: https://car-dossier.com/en/api/
|
|
6
|
+
Author: CarDossier
|
|
7
|
+
Author-email: hello@car-dossier.com
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://car-dossier.com/en/api/
|
|
10
|
+
Project-URL: Documentation, https://car-dossier.com/en/api/docs
|
|
11
|
+
Project-URL: Repository, https://github.com/Joyall-au/cardossier-mcp-server
|
|
12
|
+
Project-URL: Bug Tracker, https://github.com/Joyall-au/cardossier-mcp-server/issues
|
|
13
|
+
Keywords: mcp,car,poland,automotive,valuation,api,ai,llm
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Requires-Python: >=3.9
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: mcp>=1.0.0
|
|
27
|
+
Requires-Dist: requests>=2.28.0
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
|
|
30
|
+
# CarDossier Poland Market API — MCP Server
|
|
31
|
+
|
|
32
|
+
[](LICENSE)
|
|
33
|
+
[](https://www.python.org/)
|
|
34
|
+
[](https://modelcontextprotocol.io)
|
|
35
|
+
|
|
36
|
+
An **MCP (Model Context Protocol) server** that gives AI assistants — Claude, Cursor, Windsurf, and any MCP-compatible agent — real-time access to Polish used car market data via the [CarDossier Market API](https://car-dossier.com/en/api/).
|
|
37
|
+
|
|
38
|
+
## What It Does
|
|
39
|
+
|
|
40
|
+
This server exposes 5 tools that AI agents can call to answer questions like:
|
|
41
|
+
|
|
42
|
+
- *"What is a 2019 Toyota Corolla worth in Poland right now?"*
|
|
43
|
+
- *"Has the price of diesel BMWs been rising or falling over the past 6 months?"*
|
|
44
|
+
- *"How quickly do used Volkswagen Golfs sell in Poland?"*
|
|
45
|
+
- *"Is a 2020 Audi A4 cheaper in Mazowieckie or Śląskie?"*
|
|
46
|
+
- *"How much more does an automatic gearbox add to the price of a 2018 Ford Focus?"*
|
|
47
|
+
|
|
48
|
+
## Available Tools
|
|
49
|
+
|
|
50
|
+
| Tool | Description | Credits |
|
|
51
|
+
|------|-------------|---------|
|
|
52
|
+
| `get_market_valuation` | Average, median, P25 & P75 prices for any make/model/year | 8 |
|
|
53
|
+
| `get_price_history` | Monthly price trend for up to 24 months | 10 |
|
|
54
|
+
| `get_market_liquidity` | Estimated days-on-market (how fast a car sells) | 6 |
|
|
55
|
+
| `get_valuation_factors` | Price impact of gearbox type, fuel type, import status | 12 |
|
|
56
|
+
| `get_regional_prices` | Price comparison across all 16 Polish voivodeships | 8 |
|
|
57
|
+
|
|
58
|
+
Data source: 2M+ active listings from Poland's leading car marketplaces, updated daily.
|
|
59
|
+
|
|
60
|
+
## Prerequisites
|
|
61
|
+
|
|
62
|
+
- Python 3.9+
|
|
63
|
+
- A CarDossier API key — [get one here](https://car-dossier.com/en/api/pricing) (starts at $49 for 5,000 credits)
|
|
64
|
+
|
|
65
|
+
## Installation
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Clone the repository
|
|
69
|
+
git clone https://github.com/Joyall-au/cardossier-mcp-server.git
|
|
70
|
+
cd cardossier-mcp-server
|
|
71
|
+
|
|
72
|
+
# Install dependencies
|
|
73
|
+
pip install mcp requests
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Usage
|
|
77
|
+
|
|
78
|
+
### 1. Set your API key
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
export CARDOSSIER_API_KEY="your_api_key_here"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 2. Run the server
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
python mcp_server.py
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 3. Connect to Claude Desktop
|
|
91
|
+
|
|
92
|
+
Add the following to your Claude Desktop config file:
|
|
93
|
+
|
|
94
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
95
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"mcpServers": {
|
|
100
|
+
"cardossier": {
|
|
101
|
+
"command": "python",
|
|
102
|
+
"args": ["/path/to/cardossier-mcp-server/mcp_server.py"],
|
|
103
|
+
"env": {
|
|
104
|
+
"CARDOSSIER_API_KEY": "your_api_key_here"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 4. Connect to Cursor or Windsurf
|
|
112
|
+
|
|
113
|
+
Add to your MCP settings:
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"cardossier": {
|
|
118
|
+
"command": "python",
|
|
119
|
+
"args": ["/path/to/mcp_server.py"],
|
|
120
|
+
"env": {
|
|
121
|
+
"CARDOSSIER_API_KEY": "your_api_key_here"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Example Interactions
|
|
128
|
+
|
|
129
|
+
Once connected, you can ask your AI assistant:
|
|
130
|
+
|
|
131
|
+
> **"What's the current market value of a 2020 BMW 3 Series diesel in Poland?"**
|
|
132
|
+
|
|
133
|
+
The agent will call `get_market_valuation` with `make=BMW, model=3 Series, year=2020, fuel_type=diesel` and return the statistical distribution of prices.
|
|
134
|
+
|
|
135
|
+
> **"Show me how Toyota Corolla prices have changed over the last year"**
|
|
136
|
+
|
|
137
|
+
The agent will call `get_price_history` with `months=12` and return a monthly price trend.
|
|
138
|
+
|
|
139
|
+
> **"Compare used Skoda Octavia prices across Polish regions"**
|
|
140
|
+
|
|
141
|
+
The agent will call `get_regional_prices` and return a breakdown by voivodeship.
|
|
142
|
+
|
|
143
|
+
## API Reference
|
|
144
|
+
|
|
145
|
+
Full API documentation: [car-dossier.com/en/api/docs](https://car-dossier.com/en/api/docs)
|
|
146
|
+
OpenAPI 3.1 spec: [car-dossier.com/openapi.yaml](https://car-dossier.com/openapi.yaml)
|
|
147
|
+
FAQ: [car-dossier.com/en/api/faq/](https://car-dossier.com/en/api/faq/)
|
|
148
|
+
|
|
149
|
+
## Pricing
|
|
150
|
+
|
|
151
|
+
The CarDossier Market API uses a pay-as-you-go credit system. Credits never expire.
|
|
152
|
+
|
|
153
|
+
| Package | Price | Credits | ~Valuation calls |
|
|
154
|
+
|----------|-------|---------|-----------------|
|
|
155
|
+
| Starter | $49 | 5,000 | ~625 |
|
|
156
|
+
| Growth | $129 | 15,000 | ~1,875 |
|
|
157
|
+
| Pro | $299 | 40,000 | ~5,000 |
|
|
158
|
+
| Business | $699 | 100,000 | ~12,500 |
|
|
159
|
+
|
|
160
|
+
[Get your API key →](https://car-dossier.com/en/api/pricing)
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
MIT License — see [LICENSE](LICENSE) for details.
|
|
165
|
+
|
|
166
|
+
## About
|
|
167
|
+
|
|
168
|
+
Built by [CarDossier](https://car-dossier.com) — Poland's leading vehicle history and market data platform.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
setup.cfg
|
|
5
|
+
src/cardossier_mcp_server/__init__.py
|
|
6
|
+
src/cardossier_mcp_server/server.py
|
|
7
|
+
src/cardossier_mcp_server.egg-info/PKG-INFO
|
|
8
|
+
src/cardossier_mcp_server.egg-info/SOURCES.txt
|
|
9
|
+
src/cardossier_mcp_server.egg-info/dependency_links.txt
|
|
10
|
+
src/cardossier_mcp_server.egg-info/entry_points.txt
|
|
11
|
+
src/cardossier_mcp_server.egg-info/requires.txt
|
|
12
|
+
src/cardossier_mcp_server.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cardossier_mcp_server
|