For AI assistants
An assistant such as Claude or ChatGPT can ask EU vacancies tracker which vacancies and competitions of the EU institutions are open, and answer from the list of the day. It asks through the Model Context Protocol (MCP), at this address:
https://eujobs.montoyer.com/mcp
It is free and asks for no account and no key.
What it gives
- The vacancies and open calls that are open or announced, of every contract type.
- The competitions that are announced, open for applications, or whose selection is under way.
- One vacancy or one competition in full, by its reference, with the text of its notice.
A list can be narrowed by country, grade, contract type, deadline, institution and words to look for. Every line carries the address of its page on this site and of the official notice.
Adding it to a chat assistant
Nothing is downloaded: the address goes in the settings.
- Claude, on the web and in the desktop and mobile apps: in the settings, under "Connectors", choose "Add custom connector", give it a name, paste the address and leave the advanced settings empty. A connector added on the web also appears in the apps.
- ChatGPT: in the settings, under "Apps and connectors", create a connector with the address and no authentication. Depending on the plan, ChatGPT may ask for the developer mode first.
Both let you switch a connector on or off for each conversation, under the "+" or the tools menu of the message box.
Adding it to a coding agent
One command adds the address to every agent installed on the machine, among them Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, Windsurf and Zed. It is add-mcp, and it needs Node.js 18 or later:
npx add-mcp https://eujobs.montoyer.com/mcp --name eu-vacancies -g
Without -g, the server is added to the project of the current folder only, in a file such as .mcp.json that a team can share.
Each agent also takes the address with its own command.
Claude Code
claude mcp add --transport http eu-vacancies https://eujobs.montoyer.com/mcp --scope user
Codex
codex mcp add eu-vacancies --url https://eujobs.montoyer.com/mcp
Gemini CLI
gemini mcp add --transport http eu-vacancies https://eujobs.montoyer.com/mcp
VS Code, for GitHub Copilot in agent mode
code --add-mcp '{"name":"eu-vacancies","type":"http","url":"https://eujobs.montoyer.com/mcp"}'
A client with a configuration file
Most clients, Cursor among them, read this shape:
{
"mcpServers": {
"eu-vacancies": {
"type": "http",
"url": "https://eujobs.montoyer.com/mcp"
}
}
}
Some call the type streamable-http. Windsurf names the address serverUrl in place of url.
A client that runs local servers only, and cannot open an address, goes through mcp-remote, which passes the messages on from the machine:
{
"mcpServers": {
"eu-vacancies": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://eujobs.montoyer.com/mcp"]
}
}
}
Restart the client after editing the file.
Every client step by step, and what to do when it does not work, are in the installation guide.
Questions to try
- Which EU competitions are open for applications, and when do they close?
- Are there contract agent posts in Luxembourg closing this month?
- Where does the competition EPSO/AD/427/26 stand?
To the first, the assistant should call list_competitions and answer with links to this site and to the official notices. If it answers from the web instead, check that the connector is switched on for the conversation.
Licence
The lists, as this site compiles them, are offered under the Creative Commons Attribution 4.0 International (CC BY 4.0) licence: anyone may reuse them, for any purpose, by naming the source, "EU vacancies tracker, Montoyer", with a link to https://eujobs.montoyer.com.
The licence covers the lists. The text of a notice and its attached files belong to the institution that published them and stay under its terms.
Check the official notice
The official pages are read once a day, and a page can be misread. An answer built from these lists can be wrong or out of date: the deadline on the official notice is the one that counts, and applications are made on the institution's site.
Fair use
The address is there for everyone. To keep it that way, the site holds back a caller that asks too much, too fast. An assistant answering a person's questions never comes near that point.
For developers
The server speaks MCP over Streamable HTTP: one JSON-RPC message per POST, one JSON answer, and no stream. It offers four tools, list_vacancies, list_competitions, get_vacancy and get_competition, and nothing else. The site is also described in llms.txt.
To list the tools without an assistant:
curl -A "Mozilla/5.0" -s https://eujobs.montoyer.com/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
The host turns away the default user agent of curl and wget, and requests with none, hence the -A. MCP clients send their own and are let through.
Contact: [email protected]. About, Privacy, Terms, For AI assistants.