EU vacancies tracker
Server Details
Open vacancies and competitions of the EU institutions, read daily from their official job pages.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct resource (competition vs vacancy) and action (list vs get). Descriptions explicitly clarify boundaries, e.g., list_vacancies excludes competitions, and get_vacancy handles closed offers, leaving no overlap.
All tools follow a consistent verb_noun snake_case pattern: get_competition, get_vacancy, list_competitions, list_vacancies. The naming is predictable and readable throughout.
Four tools are well-scoped for a read-only tracker covering two entity types with list and get operations. Each tool earns its place with no redundancy or missing operations that would require additional tools.
The surface covers listing and retrieving both competitions and vacancies, including details like notices and attachments. However, there is no way to discover closed or completed items via listing, and no explicit search or filter capabilities, which are minor gaps.
Available Tools
4 toolsget_competitionOne EU competition in fullARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reference | Yes | The reference as the institution prints it, such as "EPSO/AD/427/26", or the address of the page on this site (the field "url" of a list). |
Output Schema
| Name | Required | Description |
|---|---|---|
| site | No | |
| licence | No | |
| warning | No | |
| official_pages_last_read | No | When the site last read the official pages, UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), and the description adds genuine context on top: test dates are deliberately absent and EPSO supplies them separately, plus the obligation to link to "url" and "official_url" when presenting an offer. That is real behavioral guidance beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned, followed by the caveat and the citation rule. Tight and waste-free, though the jump from return contents to presentation guidance is slightly abrupt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no elaboration, and the description still helpfully names the key content areas. The main gap is routing guidance against the three sibling tools, which the description leaves implicit. Overall complete enough for a single-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter already documents both accepted forms (printed reference like "EPSO/AD/427/26" or the site URL). The description adds nothing about the reference parameter itself; the "url"/"official_url" mentions refer to output fields, not input. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb-resource pair ("One competition with its fields, the stage of each, its timeline... and the text of its notice") and enumerates the returned contents. The word "One" implicitly distinguishes it from list_competitions, but no sibling is named explicitly, so an agent must infer the singular-vs-list split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the description assumes you already have a reference and tells you how to cite the result when presenting an offer. It never says when to reach for this instead of list_competitions or get_vacancy, nor any prerequisite for obtaining a reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vacancyOne EU vacancy in fullARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reference | Yes | The reference as the institution prints it, such as "MENA/COM/2026/1802", or the address of the page on this site (the field "url" of a list). |
Output Schema
| Name | Required | Description |
|---|---|---|
| site | No | |
| licence | No | |
| warning | No | |
| official_pages_last_read | No | When the site last read the official pages, UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world. The description adds real context beyond them: it returns closed offers rather than erroring, and it flags the closed state, which an agent could not infer from the annotations. The linking instruction is presentational rather than behavioral, so it isn't a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all front-loaded around what comes back before the presentation tip. The quoted field names ("url", "official_url") are slightly clunky but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out; the description nonetheless frames the payload and, more importantly, covers the closed-offer edge case that the schema and annotations cannot express. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'reference' parameter is thoroughly documented in the schema, including an example format and the alternative URL form. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (a single vacancy/open call) and enumerates the payload it returns: department, domains, attached files, notice text. It is distinguishable from list_vacancies by the singular framing, but it never names the sibling tools, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one useful usage signal — it works for closed offers and reports the closed status — plus presentation guidance for linking. However, it never says when to pick this over list_vacancies or get_competition, so routing guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_competitionsEU competitions announced, open or under wayARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| grade | No | A category (AD, AST, AST/SC, FG I, FG II, FG III, FG IV) or an exact grade such as "AD 7". | |
| query | No | Words to look for in the title, the reference, the institution, the department and the text of the notice. Every word must be present. | |
| stage | No | announced (not yet open), open (open for applications) or under_way (applications closed, selection going on). The three when left out. | |
| cursor | No | The next_cursor of the answer before, for the 50 lines that follow. | |
| country | No | ISO country codes of two letters, such as BE or LU. An offer with several places matches on any of them. | |
| institution | No | Acronyms of institutions, agencies and bodies as the site lists them: EC, EP, EEAS, EMA, ECB. | |
| contract_type | No | official (permanent), temporary-agent, contract-agent, sne (seconded national expert), trainee, local-agent or other. Every type when left out. | |
| deadline_after | No | Only offers that close on this day or after, Brussels time: "2026-10-15". | |
| deadline_before | No | Only offers that close on this day or before, Brussels time: "2026-10-31". Offers with no deadline are then left out. |
Output Schema
| Name | Required | Description |
|---|---|---|
| site | No | |
| items | Yes | One object per offer: reference, title, institution, contract_type, grades, locations, deadline_at, url (its page on this site), official_url (the notice on the institution's site). |
| total | Yes | How many match in all. |
| licence | No | |
| warning | No | |
| next_cursor | No | Present when more lines follow. |
| official_pages_last_read | No | When the site last read the official pages, UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and non-open-world, so the safety profile is covered. The description adds genuinely non-structured behavior: row granularity is one line per competition regardless of field count, and completed competitions are filtered out entirely. The output-linking instruction is extra but arguably a formatting rather than behavioral fact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the resource and scope before the exclusion rule and the linking advice. No padding, though the final sentence is presentation guidance that sits slightly apart from the tool's retrieval semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description still flags the url/official_url fields an agent should surface. For a zero-required-parameter list tool with full schema coverage, this covers what an agent needs, missing only explicit sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the 9 parameters is self-documented, including enum meanings for stage and contract_type. The description adds nothing parameter-specific beyond echoing the three stage values in prose, so the schema does the heavy lifting and baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely (competitions for officials of the EU institutions) and the scope (announced, open, under way), plus the output granularity ('one line per competition whatever the number of its fields'). It does not name or contrast with the sibling list_vacancies/get_competition, so an agent must infer the competitions-vs-vacancies split from the noun alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear negative rule ('Completed competitions are never listed'), which tells the agent when results will be absent as expected. It also prescribes behavior at presentation time (link to url and official_url). It stops short of naming alternatives such as get_competition for a single competition's detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vacanciesOpen EU vacanciesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| grade | No | A category (AD, AST, AST/SC, FG I, FG II, FG III, FG IV) or an exact grade such as "AD 7". | |
| query | No | Words to look for in the title, the reference, the institution, the department and the text of the notice. Every word must be present. | |
| cursor | No | The next_cursor of the answer before, for the 50 lines that follow. | |
| country | No | ISO country codes of two letters, such as BE or LU. An offer with several places matches on any of them. | |
| institution | No | Acronyms of institutions, agencies and bodies as the site lists them: EC, EP, EEAS, EMA, ECB. | |
| contract_type | No | official (permanent), temporary-agent, contract-agent, sne (seconded national expert), trainee, local-agent or other. Every type when left out. | |
| deadline_after | No | Only offers that close on this day or after, Brussels time: "2026-10-15". | |
| deadline_before | No | Only offers that close on this day or before, Brussels time: "2026-10-31". Offers with no deadline are then left out. |
Output Schema
| Name | Required | Description |
|---|---|---|
| site | No | |
| items | Yes | One object per offer: reference, title, institution, contract_type, grades, locations, deadline_at, url (its page on this site), official_url (the notice on the institution's site). |
| total | Yes | How many match in all. |
| licence | No | |
| warning | No | |
| next_cursor | No | Present when more lines follow. |
| official_pages_last_read | No | When the site last read the official pages, UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive safety, so the bar is lower. The description still adds real behavioral value: result ordering, fixed page size of 50, and the exclusion of closed offers. It adds how to render results ('link to url and official_url'), though no rate limits or cursor expiry behavior is mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with what the tool returns and how it is ordered, then scope exclusions, then the sibling routing, then the presentation hint. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, an output schema, and rich annotations, the description only needs to supply scope, ordering, exclusions and sibling routing — and it does all four. Nothing an agent needs to call or chain this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all 8 parameters are documented there (grade formats, cursor semantics, ISO codes, date formats), so the schema carries the load. The description only implies cursor pagination via '50 at a time' and deadline ordering via 'soonest deadline first', adding little beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+'open calls' scope, plus ordering ('soonest deadline first') and page size ('50 at a time'). It explicitly distinguishes itself from the sibling list_competitions, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear exclusion ('Closed offers are never listed') and routes competitions to list_competitions, which is the main sibling ambiguity here. It does not say when to move from this list to get_vacancy for details, so the guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_competition - First observed
get_vacancy - First observed
list_competitions - First observed
list_vacancies
Related MCP Connectors
Every document the Publications Office of the European Union publishes — legislation, treaties…
Public tenders and contract awards from EU TED and UK Find a Tender, with buyer, value and deadline.
Live job openings from Workday, Greenhouse, Lever, Ashby, Workable and Personio career sites.
Open jobs from 20,000+ company career sites: search, list a company's roles, read full job ads
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables searching and retrieving detailed information on EU grant calls and tenders from the EU Funding & Tenders Portal, including deadlines, budgets, and topic details.24 npm1MIT

Moonlit Legal Researchofficial
AlicenseNot gradedqualityCmaintenanceOfficial European law, expanding globally: 20M+ documents, 35+ jurisdictions, verifiable citations.MIT- FlicenseNot gradedqualityDmaintenanceEU economic statistics — GDP, inflation, unemployment, trade, population-
- AlicenseNot gradedqualityDmaintenanceEnables search and analysis of European public procurement tenders, including EU above-threshold (TED) and below-threshold from 11 national sources, with hybrid search and filtering.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.