# EU vacancies tracker

> Open vacancies and competitions of the EU institutions, read daily from their official job pages.

- name: com.montoyer.eujobs/eu-vacancies
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.montoyer.eujobs%2Feu-vacancies
- tools: https://api.protogrid.dev/v1/servers/com.montoyer.eujobs%2Feu-vacancies/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "eu-vacancies": {
      "type": "http",
      "url": "https://eujobs.montoyer.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 97
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-92% +updated-4d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,394 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 1,394 tokens to load them all
- tool set hash: 1d2bf558199d024cb5c46f4e16276cd9
- badge: [![protogrid quality](https://protogrid.dev/badge/com.montoyer.eujobs/eu-vacancies.svg)](https://protogrid.dev/servers/com.montoyer.eujobs/eu-vacancies)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://eujobs.montoyer.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.9230769)

## Packages

_none_

## Tools (4)

- `get_competition`: One competition with its fields, the stage of each, its timeline from the announcement to the reserve list, and the text of its notice. Test dates are not on this site: EPSO gives them to each candidate. When you present an offer, link to "url", its page on the site, and to "official_url", the official notice.
- `get_vacancy`: One vacancy or open call with its department, its domains, its attached files and the text of its notice. Answers for a closed offer too, and says that it is closed. When you present an offer, link to "url", its page on the site, and to "official_url", the official notice.
- `list_competitions`: The competitions for officials of the EU institutions, one line per competition whatever the number of its fields: those announced, those open for applications, and those whose selection is under way. Completed competitions are never listed. When you present an offer, link to "url", its page on the site, and to "official_url", the official notice.
- `list_vacancies`: The vacancies and open calls of the EU institutions, agencies and bodies that are open for applications or announced, soonest deadline first, 50 at a time. Closed offers are never listed. Competitions for permanent officials are in list_competitions. When you present an offer, link to "url", its page on the site, and to "official_url", the official notice.
