Skip to main content
Glama
jocks-studio

vergabe-mcp

by jocks-studio

vergabe-mcp

CI npm

Un servidor MCP para oeffentlichevergabe.de, el portal federal alemán de licitaciones públicas. Alemania publica todas sus licitaciones públicas allí y ofrece una exportación masiva de datos abiertos, pero esa exportación tiene un día de retraso, se distribuye en archivos ZIP diarios y no permite filtrar: te descargas todo y lo ordenas tú mismo. La API de búsqueda propia del portal puede filtrar (código CPV, región, ventana de plazo, el indicador de eForms "adecuado para autónomos") y está actualizada en el momento en que se publica un anuncio, pero no está documentada. Este servidor la envuelve, por lo que cualquier cliente MCP puede buscar en el feed en vivo con filtros reales y obtener un anuncio en el modelo de dominio del portal, en XML eForms o en OCDS. Anónimo, sin clave API, sin cuenta.

La referencia de la API invertida está en docs/API.md; funciona por sí sola si quieres llamar a los endpoints directamente en lugar de a través de MCP.

Instalación

No hay nada que instalar; ejecútalo con npx.

Claude Code

claude mcp add vergabe -- npx vergabe-mcp

Claude Desktop — en claude_desktop_config.json:

{
  "mcpServers": {
    "vergabe": {
      "command": "npx",
      "args": ["vergabe-mcp"]
    }
  }
}

Cualquier otro cliente stdio

npx vergabe-mcp

Streamable HTTP, si tu cliente prefiere una URL en lugar de un subproceso:

npx vergabe-mcp --http --port 3000

Related MCP server: germany-tenders

Herramientas

Herramienta

Qué hace

search_tenders

Busca lotes con parámetros planos: texto libre, prefijos CPV, suitableFor, naturaleza del contrato, región NUTS, plataforma, ventanas de plazo y publicación, paginación, ordenación. Devuelve resultados normalizados.

get_tender

Un anuncio por id, como summary seleccionado (por defecto) o JSON domain textual, XML eforms o JSON ocds.

search_tenders_raw

El DSL nativo SELECT/FROM/WHERE/PAGE/ORDER, pasado y devuelto sin procesar, para cualquier cosa que la herramienta seleccionada no exprese.

lookup_code

Resuelve un código CPV o NUTS a su descripción en alemán o inglés.

get_export_url

Construye la URL de exportación masiva de datos abiertos para un día o mes, con las advertencias adjuntas.

Las cinco son de solo lectura; el servidor no escribe nada, no almacena nada en disco y no guarda credenciales.

Recursos. vergabe://api-reference sirve el documento de la API, para que un cliente pueda leer lo que realmente soporta el backend antes de componer una consulta. Las plantillas cubren anuncios individuales: vergabe://notice/{noticeId}, .../eforms, .../ocds y vergabe://codelist/{list}/{code}.

Prompt. find-solo-tenders (argumentos: keywords, cpv, maxDays) busca con los indicadores de autónomo/trabajador por cuenta propia, luego guía al modelo en la clasificación de candidatos: días-persona ocultos en la descripción, si la fecha límite cercana es una solicitud de participación o la oferta en sí, y el hecho de que un campo de valor vacío no significa nada. Ese conocimiento de clasificación se envía como un prompt en lugar de como código de puntuación, para que puedas discutirlo.

Ejemplo

Tú: Encuentra licitaciones de TI abiertas que estén marcadas como adecuadas para autónomos.

El modelo llama a search_tenders con cpv: ["72"], suitableFor: ["freelance"], onlyActive: true. El 2026-08-17 hay 30 lotes abiertos, entre ellos:

{
  "noticeId": "7c70692d-dfb9-4b96-b777-4a5539eaee50",
  "title": "Beschaffung einer Beratungsdienstleistung zur Fachberatung im Rahmen eines Identity and Access Management (IAM) Projektes für die Stadtwerke Bielefeld (SWB)",
  "lotTitle": "Beratungsdienstleistung zur Fachberatung im Rahmen eines Identity and Access Management (IAM) Projektes",
  "buyer": "Stadtwerke Bielefeld GmbH",
  "cpv": "72260000",
  "noticeType": "cn-standard",
  "nature": "services",
  "deadline": "2026-09-14T10:00:00+02:00",
  "published": "2026-08-12T00:00:00+02:00"
}

Luego llama a get_tender en los interesantes para leer la descripción, el valor estimado y los motivos de exclusión antes de decirte cuáles merecen una oferta; ese juicio es trabajo del modelo, y el servidor deliberadamente no puntúa nada.

Observa la forma de los datos en ese resultado: la fecha límite en este es deadlineReceiptRequests, una solicitud de participación, no una fecha límite de oferta. El prompt find-solo-tenders existe porque distinciones como esa deciden si una licitación es alcanzable.

Desarrollo

Node 20 o superior.

npm install
npm test            # vitest, no network
npm run typecheck
npm run lint        # biome

Las pruebas de integración acceden al portal en vivo y se omiten a menos que las solicites:

VERGABE_LIVE=1 npm test

Los commits siguen Conventional Commits; release-please los convierte en un PR de lanzamiento en main; fusionar ese PR etiqueta el lanzamiento, escribe el registro de cambios, publica en npm y adjunta el tarball al lanzamiento de GitHub. El tipo de commit decide el incremento de versión.

Licencia

MIT.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server providing read access to Swiss public procurement data via the official simap.ch API, covering all cantons and the Confederation with intraday updates. It enables searching tenders, awards, construction codes, and procurement offices through natural language queries.
    9
    MIT
  • F
    license
    -
    quality
    B
    maintenance
    MCP server for Ukrainian public procurement (Prozorro) that exposes tools to search tenders, retrieve tender details and cards, list and read tender documents.

View all related MCP servers

Related MCP Connectors

  • Germany public procurement MCP — official German government tenders (keyless).

  • MCP server for French (BOAMP) + EU (TED) public procurement data via TenderAPI.

  • Read-only MCP server for searching Japan government procurement bid information from the KKJ portal.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jocks-studio/vergabe-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server