Finland Shopping MCP
Enables AI assistants to search and compare live prices from Finnish marketplaces (Hinta.fi, Tori.fi, Huuto.net) for new and used products like electronics, furniture, and more.
README
Finland Shopping MCP
An MCP server that helps an AI assistant shop in Finland by checking live prices and listings from Finnish marketplaces.
It is not limited to PC parts. You can ask for phones, furniture, appliances, tools, bikes, monitors, clothes, game consoles, cameras, computer parts, or almost anything else.
What It Searches
| Source | Best for | How this MCP uses it |
|---|---|---|
| Hinta.fi | New products from Finnish retailers | Scrapes live search results and product offer pages |
| Tori.fi | Used/local marketplace listings | Scrapes public listing search metadata |
| Huuto.net | Auctions and second-hand listings | Returns direct search links, because direct scraping is often blocked by bot protection |
Installation
git clone https://github.com/xtofuub/suomi-shopping-mcp.git
cd suomi-shopping-mcp
python -m pip install -r requirements.txt
Running Manually
python server.py
The server uses MCP stdio transport. In normal use, your AI client starts it automatically.
AI Client Configuration
Add this to a Claude Desktop, Cursor, VS Code, or other MCP-compatible client config:
{
"mcpServers": {
"finland-shopping": {
"command": "python",
"args": ["C:\\path\\to\\suomi-shopping-mcp\\server.py"]
}
}
}
An example file is included at:
mcp-config.example.json
Tools
find_best_prices
Combined new-and-used price search across Hinta.fi and Tori.fi.
Use this for questions like:
Find the best price for an iPhone 15 in FinlandIs 250 euros good for a used Nintendo Switch OLED?Find a cheap office chair near Finnish used-market pricesCompare new and used prices for a 4K monitor
Arguments:
| Argument | Default | Description |
|---|---|---|
query |
required | Search phrase |
include_used |
true |
Include Tori.fi used listings |
max_results_per_source |
10 |
Limit per source |
max_price |
null |
Optional EUR ceiling |
category |
"all" |
Use "all" normally, or "pc_components" for Tori's PC component category |
search_hinta_products
Search Hinta.fi retail products.
Good for checking new-product prices, availability, store counts, and product pages.
get_hinta_product_details
Fetch a Hinta.fi product page by product ID and return store offers.
Example:
get_hinta_product_details(product_id="3236886")
search_tori_listings
Search Tori.fi used listings.
Arguments:
| Argument | Default | Description |
|---|---|---|
query |
required | Search phrase |
limit |
20 |
Maximum listings |
category |
"all" |
"all" or "pc_components" |
min_price |
null |
Optional minimum EUR price |
max_price |
null |
Optional maximum EUR price |
get_huuto_search_link
Returns a Huuto.net search URL for manual checking.
Huuto.net commonly blocks simple non-browser HTTP scraping, so this project intentionally does not fake unreliable parsed prices from it.
get_shopping_links
Returns direct Hinta.fi, Tori.fi, and Huuto.net search links for a query.
Compatibility Tools
These tool names remain available from the earlier Hinta/PC-part version:
find_pc_part_pricessearch_productsget_product_detailsget_dealsget_categoriesget_category_products
Example Prompts
Find the best price for AirPods Pro 2 in Finland.
Is 400 euros a good used price for an RTX 4070 Super?
Find a washing machine under 250 euros, used is okay.
Compare new and used prices for a Herman Miller Aeron.
Build me a good gaming PC for 1000 euros using Finnish prices.
Output Shape
find_best_prices returns:
summary.cheapest_overallsummary.cheapest_newsummary.cheapest_usedsummary.used_savings_vs_newresults_sorted_by_price- source URLs for manual verification
Prices are normalized to numeric EUR values when possible, with original listing text preserved where useful.
Limitations
- Marketplace HTML can change. If parsing breaks, update selectors in
server.py. - Used listings need human judgment. Check seller reputation, location, warranty, exact model, photos, pickup/shipping safety, and whether the listing is actually
for salerather thanwanted. - Hinta.fi and Tori.fi data is fetched live, so results can change between calls.
- Huuto.net is link-only in this MCP because bot protection makes direct scraping unreliable.
Development
Install dependencies:
python -m pip install -r requirements.txt
Compile check:
python -m py_compile server.py
Smoke test:
python test_server.py
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.