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.