mcpField
S
Simap Mcp Server

Simap Mcp Server

Local
npmjs.comLegal & Government8Updated today

About Simap Mcp Server

Simap Mcp Server connects AI assistants to simap.ch, Switzerland's public procurement platform. It supports tender discovery and detailed review, including a prompt for structured bid/no-bid analysis.

Key features

  1. 01Search tenders with filters
  2. 02Retrieve full tender details
  3. 03Search and browse procurement code trees
  4. 04List cantons and institutions
  5. 05Review tender publication history
  6. 06Analyze bid/no-bid considerations

Use cases

  1. 01Find tenders by date, type, canton, or CPV
  2. 02Review a tender's scope and deadlines
  3. 03Look up Swiss procurement codes
  4. 04Assess eligibility, criteria, and risks

MCP support

Exposes search, tender-detail, reference-data, and publication-history tools, plus the `analyze_tender` prompt, to MCP clients. It uses simap.ch's public, read-only API.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"simap": {
"command": "npx",
"args": [
"-y",
"@digilac/simap-mcp"
]
}
}
}
Run commandnpx -y @digilac/simap-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@digilac/simap-mcp1.5.1

Tools

14

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
bkpCodesarrayNoBKP codes for construction (e.g., 211 for masonry)
cantonsarrayNoSwiss cantons (e.g., BE, VD, GE, ZH)
cpvCodesarrayNoCPV codes (8 digits, e.g., 72000000 for IT services)
issuedByOrganizationsarrayNoUUIDs of issuing organizations
langenumNoPreferred language for resultsde | fr | it | en
lastItemstringNoPagination token (format: date|projectNumber) to retrieve the next page
processTypesarrayNoProcess types (open, selective, invitation, direct, no_process)
projectSubTypesarrayNoProject types to filter
pubTypesarrayNoPublication types (tender, award_tender, correction, etc.)
publicationFromstringNoPublication start date (format YYYY-MM-DD)
publicationUntilstringNoPublication end date (format YYYY-MM-DD)
searchstringNoSearch text (min 3 characters)

Details

From the project README

simap MCP Server

GitHub License NPM Version GitHub Actions Workflow Status NPM Downloads Ask DeepWiki

An MCP (Model Context Protocol) server for interacting with simap.ch, Switzerland's public procurement platform.

Enables Claude and other AI assistants to search and view public tenders in Switzerland.

Developed by Digilac.

Features

ToolDescription
search_tendersSearch tenders with filters (text, dates, types, cantons, CPV)
get_tender_detailsGet full details of a specific tender
search_cpv_codesSearch CPV codes (Common Procurement Vocabulary)
browse_cpv_treeNavigate CPV code hierarchy
list_cantonsList all Swiss cantons
list_institutionsList Swiss public institutions
get_publication_historyGet publication history for a project
search_proc_officesSearch public procurement offices
search_bkp_codesSearch BKP codes (construction)
browse_bkp_treeNavigate BKP code hierarchy
search_npk_codesSearch NPK codes (standardized positions)
browse_npk_treeNavigate NPK code hierarchy
search_oag_codesSearch OAG codes (object types)
browse_oag_treeNavigate OAG code hierarchy
PromptDescription
analyze_tenderStructured bid/no-bid analysis of a tender (scope, deadlines, eligibility, award criteria, risks)

Prerequisites

  • An MCP-compatible client — Claude Desktop is the easiest if you are not a developer.
  • Node.js ≥ 22 — only for clients that do not bundle it. Claude Desktop ships with its own Node.js, so there is nothing to install. For every other client, get it from nodejs.org (pick the LTS version).
  • No simap account, no API key, no payment — the simap API is public and read-only.

Installation & Configuration

Claude Desktop (recommended)
  1. In Claude Desktop, open Settings → Developer → Edit Config. This opens the folder holding claude_desktop_config.json:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Open that file in a text editor and paste the block below. If the file already contains an mcpServers section, add only the "simap" entry inside it.

    {
      "mcpServers": {
        "simap": {
          "command": "npx",
          "args": ["-y", "@digilac/simap-mcp"]
        }
      }
    }
    
  3. Save the file, then fully quit Claude Desktop (macOS: ⌘Q — closing the window is not enough) and reopen it.

  4. Check it worked: the simap tools now show up under the tools icon in the message box. Ask "List the Swiss cantons in simap" — Claude should answer with the 26 cantons.

The very first launch downloads the server, which takes a few seconds. If the tools do not appear, check Settings → Developer for the server status and logs.

LM Studio

LM Studio follows the same mcp.json notation. Open the Program tab in the right-hand sidebar, then Install → Edit mcp.json, and add:

{
  "mcpServers": {
    "simap": {
      "command": "npx",
      "args": ["-y", "@digilac/simap-mcp"]
    }
  }
}

LM Studio does not bundle Node.js — install it from nodejs.org first. Tender search leans on the model's ability to chain tool calls, so results depend a lot on which local model you load.

Code editors & developer tools
Claude Code, Cursor, VS Code, Windsurf

They all take the same snippet — only the file and the top-level key change:

ClientWhereTop-level key
Claude Codeclaude mcp add simap -- npx -y @digilac/simap-mcpmcpServers
Cursor~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project)mcpServers
VS Code (Copilot).vscode/mcp.json, or the MCP: Open User Configuration commandservers
Windsurf~/.codeium/windsurf/mcp_config.jsonmcpServers
{
  "mcpServers": {
    "simap": {
      "command": "npx",
      "args": ["-y", "@digilac/simap-mcp"]
    }
  }
}
  • Claude Code — add --scope user to enable it in every project, or --scope project to write a .mcp.json shared with your team. Claude Code does not read mcpServers from settings.json. Verify with claude mcp list.
  • VS Code uses servers as the top-level key, not mcpServers.
  • Cursor loads MCP servers only at startup — quit and reopen it fully.
Alternative: global install
npm install -g @digilac/simap-mcp

Then point your client at the command directly:

{
  "mcpServers": {
    "simap": {
      "command": "simap-mcp"
    }
  }
}
Alternative: from source
git clone https://github.com/Digilac/simap-mcp.git
cd simap-mcp
npm install
npm run build

Then point your client at the absolute path:

{
  "mcpServers": {
    "simap": {
      "command": "node",
      "args": ["/absolute/path/to/simap-mcp/dist/index.js"]
    }
  }
}

Usage

Once configured, just ask your AI assistant in natural language. Mention "in simap" to make sure the assistant routes the request through the MCP server:

  • "Show me new tenders published today in simap"
  • "Find construction tenders in canton Vaud in simap"
  • "Give me the details of this tender in simap" (after a search)
  • "Search CPV codes for IT services in simap"

Clients that support MCP prompts also expose analyze_tender: in Claude Code, run /mcp__simap__analyze_tender <simap.ch link>; in Claude Desktop, pick it from the "+" menu and paste the tender's link.

Listed on

Contributing

Contributions are welcome! See CONTRIBUTING.md for development setup and commands, and ARCHITECTURE.md for architecture, internal patterns, and the full tool parameter reference.

simap API

This server uses the public API from simap.ch.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.