hilma-mcp
You can search and retrieve Finnish public procurement notices from Hilma through MCP tools.
Search notices by free text, CPV codes, time window (days/hours), notice type, procedure type, and procurement type, with sorting, pagination, and result limits.
Get a single notice summary by
notice_id, returning metadata such as contracting authority, deadline, value, CPV codes, and portal URL.Find notices expiring within the next N days, optionally filtered by CPV codes and sorted by deadline.
Fetch full notice details as eForms XML, including contact information (BT-502/503/506) and tender portal links, when the read API key is configured.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hilma-mcp search for IT services procurement notices this month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hilma-mcp
MCP (Model Context Protocol) -serveri Suomen julkisille hankintailmoituksille — hankintailmoitukset.fi (Hilma).
Mahdollistaa hankintailmoitusten haun suoraan Claude-assistentista ilman erillistä selainta.
Kieliversio: Ohjeet suomeksi alla. English instructions further down.
Vaatimukset
Node.js versio 18 tai uudempi
Claude Desktop tai Claude Cowork (MCP-tuki)
Hilma AVP API -avain (ks. alla)
Related MCP server: hilma
Asennus
1. Kloonaa repo
git clone https://github.com/Aimiten/hilma-mcp.git
cd hilma-mcp2. Asenna riippuvuudet ja buildaa
npm install
npm run buildTämä luo dist/index.js-tiedoston, jota Claude ajaa.
3. Luo .env-tiedosto
cp .env.example .envAvaa .env tekstieditorissa ja lisää API-avaimesi:
HILMA_API_KEY=oma-avp-read-avain-tähän
HILMA_READ_API_KEY=oma-avp-read-avain-tähänHuom: Molemmat kentät käyttävät samaa avainta —
avp-read-tuote sisältää jo Read API (EForms) -rajapinnan, joten erillistä tilausta ei tarvita.
Hanki avain ilmaiseksi:
Mene osoitteeseen https://hns-hilma-prod-apim.developer.azure-api.net/
Rekisteröidy tai kirjaudu → Products → avp-read → Subscribe
Kopioi Primary key Profile-sivulta
Huom:
.env-tiedostoa ei koskaan commitoida GitHubiin — se on jo.gitignore:ssa.
4. Lisää Claude-konfiguraatioon
Avaa Claude Desktopin konfiguraatiotiedosto:
Käyttöjärjestelmä | Polku |
macOS |
|
Windows |
|
Lisää tai muokkaa mcpServers-osiota:
{
"mcpServers": {
"hilma": {
"command": "node",
"args": ["/ABSOLUUTTINEN/POLKU/hilma-mcp/dist/index.js"]
}
}
}Tärkeää: Korvaa /ABSOLUUTTINEN/POLKU/hilma-mcp oikealla polulla omalla koneellasi. Esimerkiksi:
macOS:
/Users/sinunnimesi/hilma-mcp/dist/index.jsWindows:
C:\\Users\\sinunnimesi\\hilma-mcp\\dist\\index.js
4. Käynnistä Claude uudelleen
Hilma ilmestyy connectors-listaan uudelleenkäynnistyksen jälkeen.
API-avain
Serveri vaatii oman API-avaimen — sitä ei ole bundlattu koodiin tietoturvasyistä.
Rekisteröidy ilmaiseksi: https://hns-hilma-prod-apim.developer.azure-api.net/
Lisää avain
.env-tiedostoon (suositeltu):HILMA_API_KEY=oma-avaimesi-tähänTai anna se suoraan Claude-konfiguraatiossa:
{ "mcpServers": { "hilma": { "command": "node", "args": ["/polku/hilma-mcp/dist/index.js"], "env": { "HILMA_API_KEY": "oma-avaimesi-tähän" } } } }
Työkalut
Työkalu | Kuvaus | Vaatii |
| Hae ilmoituksia CPV-koodeilla, hakusanalla, päivämäärällä | HILMA_API_KEY |
| Yksittäisen ilmoituksen metatiedot noticeId:llä | HILMA_API_KEY |
| Ilmoitukset joiden deadline on N päivän sisällä | HILMA_API_KEY |
| Täysi eForms XML + yhteystiedot (BT-502/503/506) | HILMA_READ_API_KEY |
search_notices — Hankintailmoitusten haku
Parametri | Tyyppi | Kuvaus |
| string | Vapaatekstihaku. |
| string[] | CPV-koodit, esim. |
| string |
|
| string |
|
| string |
|
| number | Viimeiset N päivää |
| number | Viimeiset N tuntia |
| number | Max tuloksia (1–100, oletus 20) |
get_notice_summary — Yksittäisen ilmoituksen yhteenveto
Parametri | Tyyppi | Kuvaus |
| number | Ilmoituksen numeerinen ID |
Käyttää search-APIa — ei vaadi erillistä tilausta. Palauttaa kaikki metatiedot: tilaaja, deadline, arvo, CPV, portaali-URL.
get_expiring_soon — Lähestyvät deadlinet
Parametri | Tyyppi | Kuvaus |
| number | Hae deadlinet seuraavan N päivän sisällä |
| string[] | Rajaa CPV-koodeilla (valinnainen) |
Järjestää tulokset deadlinen mukaan nousevaan järjestykseen.
get_notice_full — Täydet tiedot eForms XML:stä
Parametri | Tyyppi | Kuvaus |
| number | Ilmoituksen numeerinen ID |
Vaatii HILMA_READ_API_KEY (sama avain kuin HILMA_API_KEY — sisältyy avp-read-tilaukseen). Palauttaa:
Yhteystiedot: BT-502 (nimi), BT-503 (sähköposti), BT-506 (puhelin)
Tarjousportaalin URL:t
Koko eForms XML -raakadata
API-viite
Perustuu viralliseen Hilma API -dokumentaatioon.
Hakuendpoint:
POST https://api.hankintailmoitukset.fi/avp/eformnotices/docs/searchYksittäinen ilmoitus:
GET https://api.hankintailmoitukset.fi/avp/eformnotices/docs/{noticeId}Autentikointi:
Ocp-Apim-Subscription-Key-header
English
Quick install
git clone https://github.com/Aimiten/hilma-mcp.git
cd hilma-mcp
npm install && npm run build
cp .env.example .env # then add your API key to .envGet a free API key at: https://hns-hilma-prod-apim.developer.azure-api.net/
Add to Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"hilma": {
"command": "node",
"args": ["/absolute/path/to/hilma-mcp/dist/index.js"]
}
}
}Restart Claude. The Hilma connector will appear in the connectors list.
Lisenssi / License
MIT — ks. LICENSE.
Aimiten
Tämä MCP-serveri on toteutettu osana Aimitenin AI-konsultointia. Aimiten Oy auttaa keskisuuria ja suuria yrityksiä ja organisaatioita ottamaan tekoälyn (Claude, Copilot, Gemini, n8n) käyttöön: koulutus, konsultointi ja käyttöönotot.
🌐 Verkkosivu: aimiten.fi
📖 Claude Code -opas (suomeksi): aimiten.fi/oppaat/claude-ai
🛠️ MCP-palvelimet & integraatiot: aimiten.fi/palvelut
👤 Tekijät: Sampsa Sironen (CEO) + Ville Grönlund (Co-Founder)
This MCP server is built and maintained by Aimiten, a Finnish AI consultancy for mid-sized and large companies and organizations, specializing in Claude, Copilot and Gemini.
Available Tools
4 toolsget_expiring_soonA
Hae ilmoitukset joiden tarjousaika päättyy seuraavan N päivän sisällä. Järjestää deadlinen mukaan nousevaan järjestykseen. Hyödyllinen: 'mitä deadlineja on ensi viikolla', 'kiireellisimmät hankkeet'.
Inputs: days (required), cpv_codes.
get_notice_fullA
Hae ilmoituksen täydet tiedot eForms XML -muodossa, mukaan lukien yhteystiedot (BT-502 nimi, BT-503 sähköposti, BT-506 puhelin) ja tarjousportaalin linkit. VAATII erillisen avp-read-eforms-api -tilauksen ja HILMA_READ_API_KEY .env:ssä. Rekisteröi: https://hns-hilma-prod-apim.developer.azure-api.net/ → avp-read-eforms
Inputs: notice_id (required).
get_notice_summaryA
Hae yksittäisen ilmoituksen yhteenveto noticeId:llä. Käyttää search-APIa — ei vaadi erillistä tilausta. Palauttaa kaikki metatiedot: tilaaja, deadline, arvo, CPV, portaali-URL.
Inputs: notice_id (required).
search_noticesA
Hae hankintailmoituksia Hilmasta. Tukee vapaatekstihakua, CPV-koodisuodatusta, aikarajausta, ilmoitustyypin ja menettelytyypin valintaa. Palauttaa listauksen ilmoituksista otsikoineen, hankintayksikköineen ja määräaikoineen.
Inputs: top, days, skip, hours, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: search_notices for discovery, get_expiring_soon for time-sensitive filtering, get_notice_summary for metadata, and get_notice_full for complete XML data. No overlap or ambiguity between tools.
All tools follow a consistent snake_case verb_noun pattern: get_notice_summary, get_notice_full, search_notices, get_expiring_soon. The naming is predictable and uniform.
With only 4 tools, the server is well-scoped for its purpose of accessing Finnish procurement notices. Each tool earns its place without unnecessary bloat or glaring omissions.
The surface covers the full read-only lifecycle: search for notices, retrieve summaries, retrieve full XML details, and find expiring deadlines. No apparent gaps for the intended use case.
Related MCP Connectors
Hilma MCP — Finnish government public procurement notices (keyed).
TED MCP Server: Real-time EU public tenders access. https://www.lexsocket.ai/
MCP server for French (BOAMP) + EU (TED) public procurement data via TenderAPI.
simap MCP — Swiss public procurement tenders and awards (keyless).
Related MCP Servers
- AlicenseAqualityDmaintenanceProduction-grade MCP server for Statistics Finland's StatFin database. Enables AI assistants like Claude to browse, search, and query Finnish statistical data.712MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to Finnish government public procurement notices. Enables querying procurement data via natural language through the Pipeworx gateway.88 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Finnish public procurement (HILMA): search tenders, awards and procurement plans by keyword, CPV, region and buyer, and fetch full notice details.8 npmMIT
- AlicenseAqualityAmaintenanceMCP server providing read access to Swiss public procurement data via the official simap.ch API, covering all cantons and the Confederation with intraday updates. It enables searching tenders, awards, construction codes, and procurement offices through natural language queries.958 PyPIMIT