hilma-mcp

hilma-mcp

MCP server for Finnish public procurement notices (Hilma). Enables searching and retrieving procurement notices directly from Claude without a separate browser.

Category
Visit Server

README

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)

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 avaintaavp-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 suomalaisia pk-yrityksiä ottamaan tekoälyn (Claude, Copilot, Gemini, n8n) käytäntöön — koulutus, konsultointi ja kevyet Managed Agents -toteutukset.

This MCP server is built and maintained by Aimiten, a Finnish AI consultancy specializing in Claude, Copilot, and Gemini integrations for SMEs.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured