Skip to main content
Glama
hilma-mcp
by Aimiten

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-mcp

2. Asenna riippuvuudet ja buildaa

npm install
npm run build

Tämä luo dist/index.js-tiedoston, jota Claude ajaa.

3. Luo .env-tiedosto

cp .env.example .env

Avaa .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än

Huom: 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:

  1. Mene osoitteeseen https://hns-hilma-prod-apim.developer.azure-api.net/

  2. Rekisteröidy tai kirjaudu → Products → avp-read → Subscribe

  3. 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

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

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.js

  • Windows: 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ä.

  1. Rekisteröidy ilmaiseksi: https://hns-hilma-prod-apim.developer.azure-api.net/

  2. Lisää avain .env-tiedostoon (suositeltu):

    HILMA_API_KEY=oma-avaimesi-tähän
  3. Tai 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

search_notices

Hae ilmoituksia CPV-koodeilla, hakusanalla, päivämäärällä

HILMA_API_KEY

get_notice_summary

Yksittäisen ilmoituksen metatiedot noticeId:llä

HILMA_API_KEY

get_expiring_soon

Ilmoitukset joiden deadline on N päivän sisällä

HILMA_API_KEY

get_notice_full

Täysi eForms XML + yhteystiedot (BT-502/503/506)

HILMA_READ_API_KEY

search_notices — Hankintailmoitusten haku

Parametri

Tyyppi

Kuvaus

search

string

Vapaatekstihaku. "*" = kaikki.

cpv_codes

string[]

CPV-koodit, esim. ["71200000", "72000000"]. OR-logiikka.

notice_type

string

ContractNotices / ContractAwardNotices / PlanNotices

procurement_type

string

services / works / supplies

procedure_type

string

open / restricted / negotiated

days

number

Viimeiset N päivää

hours

number

Viimeiset N tuntia

top

number

Max tuloksia (1–100, oletus 20)

get_notice_summary — Yksittäisen ilmoituksen yhteenveto

Parametri

Tyyppi

Kuvaus

notice_id

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

days

number

Hae deadlinet seuraavan N päivän sisällä

cpv_codes

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

notice_id

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/search

  • Yksittä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 .env

Get 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.

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 tools
get_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

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness5/5

    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

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides access to Finnish government public procurement notices. Enables querying procurement data via natural language through the Pipeworx gateway.
      88 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for Finnish public procurement (HILMA): search tenders, awards and procurement plans by keyword, CPV, region and buyer, and fetch full notice details.
      8 npm
      MIT
    • A
      license
      A
      quality
      A
      maintenance
      MCP 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.
      9
      58 PyPI
      MIT