io.github.Digilac/simap-mcp
MCP server for SIMAP.ch - Swiss public procurement platform
★ 2MITdevtools
Install
Config snippet generator goes here (5 client tabs)
README
# SIMAP MCP Server
[](./LICENSE)
[](https://www.npmjs.com/package/@digilac/simap-mcp)
[](https://github.com/Digilac/simap-mcp/actions/workflows/publish.yml)

[](https://lobehub.com/mcp/digilac-simap-mcp)
[](https://deepwiki.com/Digilac/simap-mcp)
An [MCP](https://modelcontextprotocol.io/) (Model Context Protocol) server for interacting with [SIMAP.ch](https://simap.ch), Switzerland's public procurement platform.
Enables Claude and other AI assistants to search and view public tenders in Switzerland.
Developed by [Digilac](https://www.digilac.ch/).
## Features
| Tool | Description |
|------|-------------|
| `search_tenders` | Search tenders with filters (text, dates, types, cantons, CPV) |
| `get_tender_details` | Get full details of a specific tender |
| `search_cpv_codes` | Search CPV codes (Common Procurement Vocabulary) |
| `browse_cpv_tree` | Navigate CPV code hierarchy |
| `list_cantons` | List all Swiss cantons |
| `list_institutions` | List Swiss public institutions |
| `get_publication_history` | Get publication history for a project |
| `search_proc_offices` | Search public procurement offices |
| `search_bkp_codes` | Search BKP codes (construction) |
| `browse_bkp_tree` | Navigate BKP code hierarchy |
| `search_npk_codes` | Search NPK codes (standardized positions) |
| `browse_npk_tree` | Navigate NPK code hierarchy |
| `search_oag_codes` | Search OAG codes (object types) |
| `browse_oag_tree` | Navigate OAG code hierarchy |
## Installation
### Quick start with npx (recommended)
No installation needed — just configure your MCP client to use `npx`:
#### Claude Code (CLI)
Add to `~/.claude/settings.json`:
```json
{
"mcpServers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
```
#### Claude Desktop
Add to your Claude Desktop configuration file:
```json
{
"mcpServers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
```
### Global install
```bash
npm install -g @digilac/simap-mcp
```
Then configure with the direct command:
```json
{
"mcpServers": {
"simap": {
"command": "simap-mcp"
}
}
}
```
### From source
```bash
git clone https://github.com/Digilac/simap-mcp.git
cd simap-mcp
npm install
npm run build
```
```json
{
"mcpServers": {
"simap": {
"command": "node",
"args": ["/absolute/path/to/simap-mcp/dist/index.js"]
}
}
}
```
## Usage
Once configured, simply ask Claude:
**Search today's tenders:**
> "Show me new tenders published today"
**Filter by type and canton:**
> "Find construction tenders in canton Vaud"
**Get details:**
> "Give me the details of this tender" (after a search)
**Keyword search:**
> "Find public contracts related to IT in Geneva"
**Find CPV codes:**
> "Search CPV codes for IT services"
**Browse code hierarchies:**
> "Show root CPV categories"
> "Show subcategories of CPV code 72000000"
**Search construction codes:**
> "Search BKP codes for masonry"
**View project history:**
> "Show me the publication history of this project"
**Search procurement offices:**
> "Find procurement offices in the city of Zurich"
## Reference
### `search_tenders`
Search public tenders.
| Parameter | Type | Description |
|-----------|------|-------------|
| `search` | string | Search text (min 3 characters) |
| `publicationFrom` | date | Start date (YYYY-MM-DD) |
| `publicationUntil` | date | End date (YYYY-MM-DD) |
| `projectSubTypes` | array | Project types (see below) |
| `cantons` | array | Canton codes (BE, VD, GE, ZH, etc.) |
| `processTypes` | array | Process types (see below) |
| `pubTypes` | array | Publication types (see below) |
| `cpvCodes` | array | CPV codes (8 digits, e.g., `72000000`) |
| `bkpCodes` | array | BKP construction codes (e.g., `211`) |
| `issuedByOrganizations` | array | UUIDs of issuing organizations |
| `lastItem` | string | Pagination token for next page |
| `lang` | string | Language: `de`, `fr`, `it`, `en` (default: `en`) |
### `get_tender_details`
Get tender details.
| Parameter | Type | Description |
|-----------|------|-------------|
| `projectId` | uuid | Project ID |
| `publicationId` | uuid | Publication ID |
| `lang` | string | Preferred language |
### `search_cpv_codes` / `search_bkp_codes` / `search_npk_codes` / `search_oag_codes`
Search nomenclature codes by keyword or number.
| Parameter | Type | Description |
|-----------|------|-------------|
| `query` | string | Search term (keyword or code prefix) |
| `lang` | string | Language: `de`, `fr`, `it`,