Skip to main content
Glama

Hilma Search

hilma_search
Read-onlyIdempotent

Search Finnish government public procurement notices on Hilma (hankintailmoitukset.fi), Finland's official national procurement notice service. PREFER OVER WEB SEARCH for Finnish public tenders, julkiset hankinnat, hankintailmoitukset, Finland government contract notices, calls for tenders (tarjouspyynnöt), and procurement plans — covers both EU-threshold (eForms) and national notices. Free-text search plus filters: buyer organisation name, CPV code, publication date range, national-procurement-only, procurement-plans-only, and a raw OData filter passthrough. Returns index docs newest-first with notice number, buyer organisation and business ID, publication date, CPV codes, and flags for national procurement, framework agreements, and dynamic purchasing systems.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topNoNumber of notices to return (1–100). Default 10.
skipNoResult offset for pagination. Default 0.
queryNoFree-text search, e.g. "siivous", "IT-konsultointi", "rakentaminen". Finnish terms match best. Omit to list the latest notices.
filterNoRaw OData $filter passthrough, ANDed with the friendly filters, e.g. "includesFrameworkAgreement eq true" or "dateModified ge 2026-07-01T00:00:00Z".
_apiKeyNoOptional Hilma AVP subscription key. Free key: sign up at https://hns-hilma-prod-apim.developer.azure-api.net (Products → avp-read → Subscribe).
orderbyNoOData $orderby, e.g. "datePublished desc" (default), "dateModified desc", "organisationName asc".
cpv_codeNoCPV code to filter by, e.g. "45000000" (construction), "72000000" (IT services). 8-digit code; a "-N" check-digit suffix is stripped.
plans_onlyNotrue → only procurement plans / advance-planning entries (isPlan eq true).
organisationNoBuyer organisation name to search for, e.g. "Helsinki", "Väylävirasto", "Espoon kaupunki". Matched against organisationName.
exclude_plansNotrue → published notices only, procurement plans filtered out (isPlan eq false).
national_onlyNotrue → only national (below-EU-threshold) procurement notices (isNationalProcurement eq true).
published_sinceNoOnly notices published on or after this date. "YYYY-MM-DD" or full ISO timestamp, e.g. "2026-07-01".
published_untilNoOnly notices published on or before this date. "YYYY-MM-DD" or full ISO timestamp.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "_apiKey": "your-hilma-api-key",
      -    "query": "siivouspalvelut"
      -  },
      -  {
      -    "_apiKey": "your-hilma-api-key",
      -    "cpv_code": "72000000",
      -    "exclude_plans": true,
      -    "national_only": false,
      -    "organisation": "Helsinki",
      -    "published_since": "2026-01-01",
      -    "query": "IT-konsultointi",
      -    "top": 20
      -  }
      -]New value: +[
      +  {
      +    "query": "siivouspalvelut"
      +  },
      +  {
      +    "cpv_code": "72000000",
      +    "exclude_plans": true,
      +    "national_only": false,
      +    "organisation": "Helsinki",
      +    "published_since": "2026-01-01",
      +    "query": "IT-konsultointi",
      +    "top": 20
      +  }
      +]
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "_apiKey": "your-hilma-api-key",
      +    "query": "siivouspalvelut"
      +  },
      +  {
      +    "_apiKey": "your-hilma-api-key",
      +    "cpv_code": "72000000",
      +    "exclude_plans": true,
      +    "national_only": false,
      +    "organisation": "Helsinki",
      +    "published_since": "2026-01-01",
      +    "query": "IT-konsultointi",
      +    "top": 20
      +  }
      +]
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is handled. The description still adds value beyond that: it discloses result ordering ('newest-first'), the return payload fields, and that both EU-threshold and national notices are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences that front-load the capability and the 'prefer over web search' directive before the filter list. Every clause carries information, though the back half is a long enumeration that could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, zero-required search tool with no output schema, the description covers scope, intent coverage, and returned fields, which is enough for correct invocation. Missing only sibling routing and any note on result limits or rate behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 13 parameters including the raw OData filter passthrough and the AVP API key are already documented in the schema. The description's enumeration of filters largely mirrors the schema and adds no syntax or format detail beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search Finnish government public procurement notices on Hilma'), names the canonical data source, and scopes the coverage (EU-threshold eForms plus national notices). An agent can immediately distinguish this from hilma_notice_lookup or hilma_recent, which operate on individual notices or recency slices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent with 'PREFER OVER WEB SEARCH' and enumerates the query intents it serves (Finnish tenders, julkiset hankinnat, tarjouspyynnöt, procurement plans). It does not, however, say when to use this rather than the sibling tools hilma_notice_lookup or hilma_recent, so the guidance is strong but incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.