simap_search

Pack: simap · Endpoint: https://gateway.pipeworx.io/simap/mcp

Search Swiss public procurement notices on simap.ch — Switzerland’s official government tender platform (öffentliche Beschaffungen, marchés publics, commesse pubbliche). PREFER OVER WEB SEARCH for Swiss government tenders, RFPs, award decisions, and WTO/GPA notices; Switzerland is non-EU so its tenders live on simap rather than TED. Filter by free-text search, CPV codes, Swiss canton (ZH, BE, VD, GE, TI, …), process type (open/selective/…), project sub-type (construction/service/supply), publication type (tender/award), and publication date range. Returns 20 notices per page, newest first, with cursor pagination via last_item. Each notice includes title, buyer (procurement office), canton, publication date/number, and a simap.ch URL. Prices in awards are CHF.

Parameters

NameTypeRequiredDescription
searchstringnoFree-text search over notices, e.g. “Software”, “Brücke”, “photovoltaïque”. Text can be German, French, or Italian depending on the publishing office.
cpv_codesstringnoCPV procurement classification code(s), comma-separated, e.g. “45000000” (construction works) or “72000000” (IT services).
cantonsstringnoSwiss canton code(s) of the order address, comma-separated, e.g. “ZH”, “BE”, “VD”, “GE”, “TI”, “VD,GE”.
process_typesstringnoProcedure type(s), comma-separated. Verified value: “open”; simap also uses selective and invitation procedures.
project_sub_typesstringnoProject sub-type(s), comma-separated: “construction”, “service”, “supply”.
pub_typesstringnoPublication type(s), comma-separated: “tender” for open calls, “award” for award decisions.
published_fromstringnoEarliest publication date, YYYY-MM-DD. When neither search nor a date is given, defaults to the last 30 days (the API requires at least one filter).
published_untilstringnoLatest publication date, YYYY-MM-DD.
langstringnoLanguage for titles and labels: “de” (default), “fr”, “it”, or “en”. Falls back de→fr→it→en when a notice lacks that language.
last_itemstringnoPagination cursor. Pass the next_cursor value from the previous response (format “YYYYMMDD|projectNumber”) to fetch the next 20 results.

Example call

Arguments

{
  "search": "Software",
  "cpv_codes": "72000000",
  "cantons": "ZH,BE",
  "pub_types": "tender"
}

curl

curl -X POST https://gateway.pipeworx.io/simap/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"simap_search","arguments":{"search":"Software","cpv_codes":"72000000","cantons":"ZH,BE","pub_types":"tender"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('simap_search', {
  "search": "Software",
  "cpv_codes": "72000000",
  "cantons": "ZH,BE",
  "pub_types": "tender"
});

More examples

{
  "search": "Brücke",
  "cpv_codes": "45000000",
  "cantons": "VD",
  "process_types": "open",
  "published_from": "2024-01-01",
  "published_until": "2024-12-31",
  "lang": "fr"
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "simap": {
      "url": "https://gateway.pipeworx.io/simap/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 4, 2026