{
  "markdown": "# simap MCP Server\n\n[![GitHub License](https://img.shields.io/github/license/Digilac/simap-mcp)](./LICENSE)\n[![NPM Version](https://img.shields.io/npm/v/%40digilac%2Fsimap-mcp)](https://www.npmjs.com/package/@digilac/simap-mcp)\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/Digilac/simap-mcp/ci.yml?branch=main)](https://github.com/Digilac/simap-mcp/actions/workflows/ci.yml)\n![NPM Downloads](https://img.shields.io/npm/dw/%40digilac%2Fsimap-mcp)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Digilac/simap-mcp)\n\nAn [MCP](https://modelcontextprotocol.io/) (Model Context Protocol) server for interacting with [simap.ch](https://www.simap.ch/), Switzerland's public procurement platform.\n\nEnables Claude and other AI assistants to search and view public tenders in Switzerland.\n\nDeveloped by [Digilac](https://www.digilac.ch/).\n\n## Features\n\n| Tool | Description |\n|------|-------------|\n| `search_tenders` | Search tenders with filters (text, dates, types, cantons, CPV) |\n| `get_tender_details` | Get full details of a specific tender |\n| `search_cpv_codes` | Search CPV codes (Common Procurement Vocabulary) |\n| `browse_cpv_tree` | Navigate CPV code hierarchy |\n| `list_cantons` | List all Swiss cantons |\n| `list_institutions` | List Swiss public institutions |\n| `get_publication_history` | Get publication history for a project |\n| `search_proc_offices` | Search public procurement offices |\n| `search_bkp_codes` | Search BKP codes (construction) |\n| `browse_bkp_tree` | Navigate BKP code hierarchy |\n| `search_npk_codes` | Search NPK codes (standardized positions) |\n| `browse_npk_tree` | Navigate NPK code hierarchy |\n| `search_oag_codes` | Search OAG codes (object types) |\n| `browse_oag_tree` | Navigate OAG code hierarchy |\n\n## Prerequisites\n\n- An MCP-compatible client — **[Claude Desktop](#claude-desktop-recommended) is the easiest** if you are not a developer.\n- **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](https://nodejs.org/) (pick the LTS version).\n- No simap account, no API key, no payment — the simap API is public and read-only.\n\n## Installation & Configuration\n\n### Claude Desktop (recommended)\n\n1. In Claude Desktop, open **Settings → Developer → Edit Config**. This opens the folder holding `claude_desktop_config.json`:\n   - **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n   - **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n2. 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.\n\n   ```json\n   {\n     \"mcpServers\": {\n       \"simap\": {\n         \"command\": \"npx\",\n         \"args\": [\"-y\", \"@digilac/simap-mcp\"]\n       }\n     }\n   }\n   ```\n\n3. Save the file, then **fully quit** Claude Desktop (macOS: ⌘Q — closing the window is not enough) and reopen it.\n4. 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.\n\nThe 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.\n\n### LM Studio\n\nLM Studio follows the same `mcp.json` notation. Open the **Program** tab in the right-hand sidebar, then **Install → Edit mcp.json**, and add:\n\n```json\n{\n  \"mcpServers\": {\n    \"simap\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@digilac/simap-mcp\"]\n    }\n  }\n}\n```\n\n> LM Studio does not bundle Node.js — install it from [nodejs.org](https://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.\n\n### Code editors & developer tools\n\n<details>\n<summary><b>Claude Code, Cursor, VS Code, Windsurf</b></summary>\n\nThey all take the same snippet — only the file and the top-level key change:\n\n| Client | Where | Top-level key |\n| ------ | ----- | ------------- |\n| **Claude Code** | `claude mcp add simap -- npx -y @digilac/simap-mcp` | `mcpServers` |\n| **Cursor** | `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (one project) | `mcpServers` |\n| **VS Code** (Copilot) | `.vscode/mcp.json`, or the **MCP: Open User Configuration** command | `servers` |\n| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | `mcpServers` |\n\n```json\n{\n  \"mcpServers\": {\n    \"simap\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@digilac/simap-mcp\"]\n    }\n  }\n}\n```\n\n- **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`.\n- **VS Code** uses `servers` as the top-level key, not `mcpServers`.\n- **Cursor** loads MCP servers only at startup — quit and reopen it fully.\n\n</details>\n\n<details>\n<summary><b>Alternative: global install</b></summary>\n\n```bash\nnpm install -g @digilac/simap-mcp\n```\n\nThen point your client at the command directly:\n\n```json\n{\n  \"mcpServers\": {\n    \"simap\": {\n      \"command\": \"simap-mcp\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>Alternative: from source</b></summary>\n\n```bash\ngit clone https://github.com/Digilac/simap-mcp.git\ncd simap-mcp\nnpm install\nnpm run build\n```\n\nThen point your client at the absolute path:\n\n```json\n{\n  \"mcpServers\": {\n    \"simap\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/simap-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\n</details>\n\n## Usage\n\nOnce configured, just ask your AI assistant in natural language. Mention \"in simap\" to make sure the assistant routes the request through the MCP server:\n\n- *\"Show me new tenders published today in simap\"*\n- *\"Find construction tenders in canton Vaud in simap\"*\n- *\"Give me the details of this tender in simap\"* (after a search)\n- *\"Search CPV codes for IT services in simap\"*\n\n## Listed on\n\n* [Official MCP Registry](https://registry.modelcontextprotocol.io/?q=io.github.Digilac%2Fsimap-mcp)\n* [Awesome MCP Servers](https://mcpservers.org/servers/digilac/simap-mcp)\n* [LobeHub](https://lobehub.com/mcp/digilac-simap-mcp)\n* [MCP.so](https://mcp.so/server/simap-mcp-server/Digilac)\n* [MCP Market](https://mcpmarket.com/server/simap)\n* [MCP Marketplace](https://mcp-marketplace.io/server/io-github-digilac-simap-mcp)\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and commands, and [ARCHITECTURE.md](./ARCHITECTURE.md) for architecture, internal patterns, and the full tool parameter reference.\n\n## simap API\n\nThis server uses the public API from [simap.ch](https://www.simap.ch/api-doc/).\n\n## License\n\n[MIT](./LICENSE)\n",
  "bytes": 6837,
  "sha": "62adc2608369490e1aec374d03193e5eec343c8a6a3f731192ebcb8d2b793411",
  "repo_slug": "digilac/simap-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_digilac_simap_mcp_87fceee7/readme"
}