{
  "markdown": "# vergabe-mcp\n\nLocal MCP server for German public procurement search. Connects your AI assistant (Claude, GPT, etc.) to the [Vergabe Dashboard](https://vergabe-dashboard.qune.de) API for semantic search, tender matching, and company-profile management.\n\n**Your queries and company profiles never leave your machine.** They are embedded locally with a multilingual ONNX model; only the resulting embedding vectors, OCIDs, and filter values are sent to the API. Data minimisation by design.\n\n> **Hosted alternative:** if you just want search from your AI assistant, there is a hosted MCP connector (OAuth sign-in, no installation) — see the [setup guide](https://vergabe-dashboard.qune.de/ki-vergabe/einrichtung). This local server is for running the client in your own environment: queries and profiles are embedded locally, only vectors and filter values leave the machine, and it unlocks API-key features.\n\n> New to German public procurement? The [Vergabe Dashboard knowledge base](https://vergabe-dashboard.qune.de/wissen/) explains eForms, EU thresholds, and the tender lifecycle, and [KI für Vergabe](https://vergabe-dashboard.qune.de/ki-vergabe/) covers the hosted AI side of this server.\n\n## Quick Start\n\n### 1. Get an API key\n\nSign up at [vergabe-dashboard.qune.de](https://vergabe-dashboard.qune.de) and create an API key. API keys require an active **Pro plan** (€99/month; the local server itself is free and open source — the API gate rides key issuance).\n\n### 2. Install\n\n**Via npx** (easiest — downloads the correct binary automatically):\n\n```bash\nnpx @qune-tech/vergabe-mcp --api-key sk_live_YOUR_KEY_HERE\n```\n\n**Or download a pre-built binary** from [GitHub Releases](https://github.com/qune-tech/vergabe-mcp/releases/latest):\n\n| Platform | Download |\n|----------|----------|\n| Linux x86_64 | [vergabe-mcp-linux-x86_64.tar.gz](https://github.com/qune-tech/vergabe-mcp/releases/latest/download/vergabe-mcp-linux-x86_64.tar.gz) |\n| macOS Apple Silicon | [vergabe-mcp-macos-arm64.tar.gz](https://github.com/qune-tech/vergabe-mcp/releases/latest/download/vergabe-mcp-macos-arm64.tar.gz) |\n| Windows x86_64 | [vergabe-mcp-windows-x86_64.zip](https://github.com/qune-tech/vergabe-mcp/releases/latest/download/vergabe-mcp-windows-x86_64.zip) |\n\n**Linux / macOS:**\n\n```bash\n# Example for Linux x86_64 — adjust the filename for your platform\ntar xzf vergabe-mcp-linux-x86_64.tar.gz\nsudo mv vergabe-mcp /usr/local/bin/vergabe-mcp\n```\n\n**Windows:** Extract the zip and move `vergabe-mcp.exe` somewhere on your PATH.\n\n**Or build from source:**\n\n```bash\ngit clone https://github.com/qune-tech/vergabe-mcp.git\ncd vergabe-mcp\ncargo build --release\n# Binary at target/release/vergabe-mcp\n```\n\n### 3. Configure your AI client\n\n**Claude Desktop** — edit `claude_desktop_config.json`:\n\nUsing npx:\n```json\n{\n  \"mcpServers\": {\n    \"vergabe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@qune-tech/vergabe-mcp\", \"--api-key\", \"sk_live_YOUR_KEY_HERE\"]\n    }\n  }\n}\n```\n\nUsing the binary directly:\n```json\n{\n  \"mcpServers\": {\n    \"vergabe\": {\n      \"command\": \"vergabe-mcp\",\n      \"args\": [\"--api-key\", \"sk_live_YOUR_KEY_HERE\"]\n    }\n  }\n}\n```\n\n**Claude Code** — add `.mcp.json` to your project root:\n\nUsing npx:\n```json\n{\n  \"mcpServers\": {\n    \"vergabe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@qune-tech/vergabe-mcp\", \"--api-key\", \"sk_live_YOUR_KEY_HERE\"]\n    }\n  }\n}\n```\n\nUsing the binary directly:\n```json\n{\n  \"mcpServers\": {\n    \"vergabe\": {\n      \"command\": \"vergabe-mcp\",\n      \"args\": [\"--api-key\", \"sk_live_YOUR_KEY_HERE\"]\n    }\n  }\n}\n```\n\n**Cursor** — Settings → MCP Servers → Add:\n\nUsing npx:\n- Command: `npx`\n- Args: `-y @qune-tech/vergabe-mcp --api-key sk_live_YOUR_KEY_HERE`\n\nUsing the binary directly:\n- Command: `vergabe-mcp`\n- Args: `--api-key sk_live_YOUR_KEY_HERE`\n\n**LM Studio** — Settings → MCP → Add Server:\n\n1. Click **+ Add Server** and choose **STDIO**\n2. Fill in:\n\nUsing npx:\n   - Name: `vergabe`\n   - Command: `npx`\n   - Arguments: `-y @qune-tech/vergabe-mcp --api-key sk_live_YOUR_KEY_HERE`\n\nUsing the binary directly:\n   - Name: `vergabe`\n   - Command: full path to the binary, e.g. `/usr/local/bin/vergabe-mcp`\n   - Arguments: `--api-key sk_live_YOUR_KEY_HERE`\n\n3. Click **Save**\n4. In the chat, select a model that supports tool use and enable the `vergabe` server\n\n> LM Studio requires models with tool-calling support (e.g. Qwen 2.5, Mistral, Llama 3.1+).\n> Smaller models may not use all 11 tools reliably — 7B+ recommended.\n\nReplace `sk_live_YOUR_KEY_HERE` with your actual API key. You can also pass the key via the `VERGABE_API_KEY` environment variable.\n\n## Available Tools (11)\n\n| Tool | Description |\n|------|-------------|\n| `search_text` | Semantic search across all tenders (query embedded locally) |\n| `list_releases` | Filter and browse tenders by phase, CPV prefix, country, value range, deadline, buyer, procurement method |\n| `get_release` | Raw [eForms](https://vergabe-dashboard.qune.de/wissen/eforms/) XML envelope for one OCID (optional `notice_id` selects a sibling) |\n| `linked_notices` | A procurement's notice lineage (PIN→CN→CAN) as `{ocid, notice_id}` refs |\n| `get_index_info` | API health/version, embedder status, and embedding-contract check |\n| `create_company_profile` | Create a matching profile for your company (stored locally) |\n| `update_company_profile` | Update an existing profile |\n| `get_company_profile` | View profile details |\n| `list_company_profiles` | List all your profiles |\n| `delete_company_profile` | Delete a profile |\n| `match_tenders` | Match a profile against all tenders by semantic similarity (vector embedded locally) |\n\n## CLI Options\n\n```\nUsage: vergabe-mcp [OPTIONS]\n\nOptions:\n      --db <DB>            Local profiles database [default: profiles.db]\n      --data-dir <DIR>     Data directory [default: data]\n      --api-url <URL>      Vergabe Dashboard API [default: https://vergabe-dashboard.qune.de]\n      --api-key <KEY>      API key [env: VERGABE_API_KEY]\n  -h, --help               Print help\n```\n\n## How It Works\n\n```\nLLM ←stdio→ vergabe-mcp (local)\n               │  Local: company profiles (SQLite) + sentence embedder (ONNX)\n               │  HTTPS: vectors, OCIDs, filter values, API key\n               └──HTTPS──→ Vergabe Dashboard API (/api/v1)\n```\n\nThe MCP server runs locally on your machine:\n\n- **Company profiles** (name, description, CPV interests, location) are stored in a local SQLite database — they never leave your network.\n- **Text embeddings** are computed locally with a multilingual ONNX model (multilingual-e5-small, 384-dim). Search queries use the `query:` prefix and go to `POST /api/v1/search/vector`; profile descriptions use the `passage:` prefix and go to `POST /api/v1/match/vector`.\n- Only **embedding vectors** (384 floats), the **OCIDs** you fetch, **filter values**, and your **API key** are sent to the API. Your query and profile text stay local.\n\n## Privacy & data flow\n\nWhat stays on your machine: profile text, search-query text, CPV interests, location.\n\nWhat the API sees: embedding vectors, the OCIDs you read, the filter values you use, and your API key. These reveal *commercial interest* (which sectors, buyers, value bands, tenders you look at) but not the underlying text. Embedding vectors are a derived, pseudonymous representation — minimisation, not elimination.\n\n**First-run model download:** on first use the server downloads the embedding model from **huggingface.co**:\n\n- **What:** `model.onnx` + `tokenizer.json`, ~118 MB total.\n- **When:** the first time the embedder runs; cached afterwards at `~/.cache/vergabe/models/multilingual-e5-small`.\n- **From:** `huggingface.co` (a US-operated third party). **No user data** is sent in this fetch — it is a plain model download.\n\nFor air-gapped / enterprise installs, place `model.onnx` and `tokenizer.json` in the cache directory above and the runtime download is skipped.\n\n## Requirements\n\n- An API key from [vergabe-dashboard.qune.de](https://vergabe-dashboard.qune.de) on the Pro plan (€99/month)\n- ~120 MB disk space for the ONNX model (downloaded automatically on first run)\n- Internet connection to reach the API\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n",
  "bytes": 8168,
  "sha": "656284976868043a606fe3a997423bf97085938e8146eddfbd347c804e22c0d5",
  "repo_slug": "qune-tech/ocds-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_qune_tech_ocds_mcp_61ed885f/readme"
}