simap-mcp
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Warn
- process.env — Environment variable access in src/api/client.ts
- network request — Outbound network request in src/api/client.ts
Permissions Pass
- Permissions — No dangerous permissions requested
This is an MCP server that allows AI assistants to search and view public procurement tenders from simap.ch, Switzerland's official public procurement platform.
Security Assessment
Overall risk: Low. The tool is strictly read-only and interfaces with a public API, meaning no accounts or API keys are required. It makes expected outbound network requests to fetch tender data. It accesses environment variables locally for standard configuration, which is standard practice for MCP servers. There are no hardcoded secrets, no dangerous permissions requested, and no evidence of shell command execution. The tool's scope is limited entirely to retrieving public procurement data.
Quality Assessment
The project appears well-constructed and actively maintained, with its most recent push occurring today. It uses the permissive MIT license and provides clear, comprehensive documentation with setup instructions for multiple AI clients. A notable caveat is its low community visibility, currently sitting at only 5 GitHub stars. However, this is somewhat expected for a niche tool targeting a specific country's procurement system. The automated CI pipeline via GitHub Actions and official NPM package publication indicate professional development standards by Digilac.
Verdict
Safe to use. The tool provides a straightforward, read-only bridge to public government data with no significant security concerns.
An MCP (Model Context Protocol) server for interacting with simap.ch, Switzerland's public procurement platform.
simap MCP Server
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
| 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 |
Prerequisites
- Node.js ≥ 20 (LTS or newer).
- An MCP-compatible client (Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Cline, Zed, …).
- No simap account or API key required — the simap API is public and read-only.
Installation & Configuration
The recommended way is npx — no global install needed. Pick your client below and copy the snippet.
Claude Desktop
Edit the Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
Restart Claude Desktop for the change to take effect.
Other clients
Claude Code (CLI)Add to ~/.claude/settings.json:
{
"mcpServers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
Cursor
Global config at ~/.cursor/mcp.json (all projects) or project-level .cursor/mcp.json:
{
"mcpServers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
Fully quit and reopen Cursor — MCP servers are only loaded at startup.
VS Code (GitHub Copilot)Workspace config at .vscode/mcp.json (or open the user-level file via the MCP: Open User Configuration command):
{
"servers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
WindsurfVS Code uses
serversas the top-level key (notmcpServers).
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
Cline (VS Code extension)
Open Cline's MCP Servers panel → Configure tab, then paste:
{
"mcpServers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"],
"disabled": false
}
}
}
Zed
Edit the user settings.json (~/.config/zed/settings.json on macOS/Linux, %APPDATA%\Zed\settings.json on Windows) or a project-level .zed/settings.json:
{
"context_servers": {
"simap": {
"command": "npx",
"args": ["-y", "@digilac/simap-mcp"]
}
}
}
Alternative: Global installZed uses
context_serversas the top-level key.
npm install -g @digilac/simap-mcp
Then configure your client with the direct command:
{
"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 configure your client with 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"
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
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found