MCP server exposing finn.no (Norwegian classifieds) to Claude
Project description
finn-mcp
MCP server that exposes finn.no — Norway's largest online classifieds marketplace — to Claude across four verticals:
- BAP / Torget — used goods
- Real estate — homes for sale and rentals
- Cars — used (new cars are only available via the official API)
- Jobs — full-time listings
Tools
| Tool | Purpose |
|---|---|
search_finn |
Search a vertical by keyword + optional filters. |
get_listing |
Fetch a full listing by finnkode. |
save_search |
Persist a named recurring search. |
list_saved_searches |
List all saved searches. |
delete_saved_search |
Remove a saved search. |
check_saved_search |
Run a saved search and return only hits that are new since the last check. |
Install & run (recommended)
Requires uv. Then use uvx to run the server
without cloning or installing anything permanently:
uvx finn-mcp
Register with Claude Code
claude mcp add finn-mcp -- uvx finn-mcp
Or add to your .mcp.json (or Claude Desktop's claude_desktop_config.json):
{
"mcpServers": {
"finn-mcp": {
"command": "uvx",
"args": ["finn-mcp"]
}
}
}
Data access
There is no self-serve public finn.no API. For v1 this server scrapes the
public web pages and parses JSON-LD on detail pages. A stable FinnBackend
interface separates the MCP surface from the data source, so the scraper can
be swapped for the official partner API (cache.api.finn.no/iad/) later.
Backend selection is controlled by the FINN_BACKEND environment variable:
FINN_BACKEND=scraper(default) — the scraper implementation.FINN_BACKEND=official— stub; raisesNotImplementedErroruntil partner credentials are wired up.
Responses are cached for 24 hours in a local SQLite database at
$XDG_DATA_HOME/finn-mcp/cache.sqlite (defaults to
~/.local/share/finn-mcp/cache.sqlite).
Develop from source
git clone https://github.com/aHk-coder/finn-mcp
cd finn-mcp
uv sync
uv run pytest
uv run finn-mcp # stdio server
Tests run against saved HTML fixtures in tests/fixtures/ and do not hit
finn.no over the network.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file finn_mcp-0.1.0.tar.gz.
File metadata
- Download URL: finn_mcp-0.1.0.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eaad4c21c19d6f02fc450f2acf7991a22d3cc0485cf3fcadcec7eb32bd1035f
|
|
| MD5 |
5cc8e464b674f9b222e714599f1ac712
|
|
| BLAKE2b-256 |
19b42c98879f9ab5aac68640a435716c5de6277e78e5feabb6a96f4ee12c3b0f
|
Provenance
The following attestation bundles were made for finn_mcp-0.1.0.tar.gz:
Publisher:
release.yml on aHk-coder/finn-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
finn_mcp-0.1.0.tar.gz -
Subject digest:
8eaad4c21c19d6f02fc450f2acf7991a22d3cc0485cf3fcadcec7eb32bd1035f - Sigstore transparency entry: 1327279731
- Sigstore integration time:
-
Permalink:
aHk-coder/finn-mcp@91afdfb4582734358075eb700b16f1273ae391fe -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/aHk-coder
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@91afdfb4582734358075eb700b16f1273ae391fe -
Trigger Event:
push
-
Statement type:
File details
Details for the file finn_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: finn_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89ac5a9cbdbe54caed179bb1b80ccf72f754310d929f9c1b506481fbb351c363
|
|
| MD5 |
4a0399ff2bd7c5fd172d8cd289356c98
|
|
| BLAKE2b-256 |
ab235bc3e46dd46597ec5c28e8b61454a45de047f61c41b03026f885b568ec45
|
Provenance
The following attestation bundles were made for finn_mcp-0.1.0-py3-none-any.whl:
Publisher:
release.yml on aHk-coder/finn-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
finn_mcp-0.1.0-py3-none-any.whl -
Subject digest:
89ac5a9cbdbe54caed179bb1b80ccf72f754310d929f9c1b506481fbb351c363 - Sigstore transparency entry: 1327279855
- Sigstore integration time:
-
Permalink:
aHk-coder/finn-mcp@91afdfb4582734358075eb700b16f1273ae391fe -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/aHk-coder
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@91afdfb4582734358075eb700b16f1273ae391fe -
Trigger Event:
push
-
Statement type: