Job listings you can find anywhere; a salary histogram, a regional breakdown and a year of history for the same query are what let you answer whether an offer is good rather than whether it exists. Two things will quietly narrow your results: call `get_categories` first, because valid category tags differ by country, and remember that a salary filter drops every listing that does not publish a salary — which is a lot of them.
An MCP server over the Adzuna Job Search API, covering both sides of a job search: the listings themselves, and the market data around them. Each country is queried by its code, and salaries come back as annual amounts in that country's currency.
- Job listings searched by keywords, location, salary floor and ceiling, category, and job type — full time, part time, contract or permanent — sorted by date, salary or relevance, with a maximum listing age and up to 50 results per page — `search_jobs`
- The valid category tags for a country, such as `it-jobs` or `finance-jobs`, which is what makes category filtering work — `get_categories`
- Salary distribution for a search, so a number can be read against the spread rather than against an average — `get_salary_histogram`
- Salaries broken down by geographic region, for comparing one city against another — `get_geodata`
- Historical salary movement over a period you choose, defaulting to 12 months — `get_salary_history`
- The employers with the most open positions for a search — `get_top_companies`
- The Adzuna API version currently in use — `get_api_version`
- Twelve country markets: `gb`, `us`, `de`, `fr`, `au`, `nz`, `ca`, `in`, `pl`, `br`, `at` and `za`, each with its local currency
An Adzuna developer account, which is free: it gives you an App ID and an App Key, supplied as `ADZUNA_APP_ID` and `ADZUNA_APP_KEY`. Python 3.10+. The README names the package `adzuna-mcp`, which PyPI does not have. The free tier carries Adzuna's usage limits, so batch broad research rather than polling.
