Skip to main content

MCP server for Adzuna Job Search API - search jobs, analyze salaries, and research employers

Project description

Adzuna Jobs MCP Server

CI PyPI version License: MIT Python 3.10+ Smithery MCP

A Model Context Protocol (MCP) server that provides AI assistants with access to the Adzuna Job Search API. Search for jobs, analyze salary data, and research employers across 12 countries.

Features

  • Job Search - Search millions of job listings with filters for location, salary, job type, and more
  • Salary Analysis - Get salary histograms, regional comparisons, and historical trends
  • Company Research - Find top employers by hiring volume
  • Multi-Country Support - Access job markets in 12 countries with local currency support

Supported Countries

Code Country Currency
gb United Kingdom GBP £
us United States USD $
de Germany EUR €
fr France EUR €
au Australia AUD $
nz New Zealand NZD $
ca Canada CAD $
in India INR ₹
pl Poland PLN zł
br Brazil BRL R$
at Austria EUR €
za South Africa ZAR R

Available Tools

Tool Description
search_jobs Search for jobs with filters (keywords, location, salary, job type)
get_categories Get valid job category tags for a country
get_salary_histogram Get salary distribution data for job searches
get_top_companies Get top employers by number of open positions
get_geodata Get salary data broken down by geographic region
get_salary_history Get historical salary trends over time
get_api_version Get current Adzuna API version

Prerequisites

  • Python 3.10+
  • Adzuna API credentials (free)

Getting Adzuna API Credentials

  1. Go to Adzuna Developer Portal
  2. Sign up for a free account
  3. Create a new application
  4. Copy your App ID and App Key

Installation

Option 1: Install from PyPI (Recommended)

pip install adzuna-mcp

Or use uvx for isolated execution:

uvx adzuna-mcp

Option 2: Install from Source

git clone https://github.com/folarinakinloye/adzuna-mcp.git
cd adzuna-mcp
pip install -e .

Option 3: Development Setup

git clone https://github.com/folarinakinloye/adzuna-mcp.git
cd adzuna-mcp
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e ".[dev]"

Configure Environment Variables

Create a .env file with your Adzuna credentials:

ADZUNA_APP_ID=your_app_id_here
ADZUNA_APP_KEY=your_app_key_here

Usage

With Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "adzuna-jobs": {
      "command": "/path/to/adzuna-mcp/venv/bin/python",
      "args": ["/path/to/adzuna-mcp/server.py"],
      "env": {
        "ADZUNA_APP_ID": "your_app_id",
        "ADZUNA_APP_KEY": "your_app_key"
      }
    }
  }
}

Restart Claude Desktop after updating the configuration.

With Cursor

Add to your Cursor MCP settings (.cursor/mcp.json in your project or global config):

{
  "mcpServers": {
    "adzuna-jobs": {
      "command": "/path/to/adzuna-mcp/venv/bin/python",
      "args": ["/path/to/adzuna-mcp/server.py"],
      "env": {
        "ADZUNA_APP_ID": "your_app_id",
        "ADZUNA_APP_KEY": "your_app_key"
      }
    }
  }
}

With Other MCP Clients

Run the server directly:

# Activate virtual environment
source venv/bin/activate

# Run with stdio transport (default)
python server.py

# Or use FastMCP CLI
fastmcp run server.py:mcp

Development Mode

FastMCP provides a dev mode with an interactive inspector:

fastmcp dev server.py

This opens a browser-based UI to test your tools.

Example Prompts

Once connected, you can ask your AI assistant:

Job Search:

  • "Find software engineer jobs in London paying over £60,000"
  • "Search for remote Python developer positions in the US"
  • "Show me data science jobs in Germany"

Salary Research:

  • "What's the typical salary for a machine learning engineer in the UK?"
  • "Compare software engineer salaries between London and Manchester"
  • "How have data scientist salaries changed over the past year?"

Company Research:

  • "Which companies are hiring the most software engineers in London?"
  • "Show me the top employers for finance jobs in New York"

Tool Details

search_jobs

Search for jobs with comprehensive filtering:

Parameters:
- country (required): Country code (e.g., "gb", "us")
- keywords: Search terms (e.g., "python developer")
- location: City, region, or postal code
- page: Page number (starts at 1)
- results_per_page: Results per page (max 50)
- salary_min/salary_max: Annual salary filter
- full_time/part_time/contract/permanent: Job type filters
- category: Category tag from get_categories
- sort_by: "date", "salary", or "relevance"
- max_days_old: Maximum listing age in days

get_categories

Get valid category tags before searching:

Parameters:
- country (required): Country code

Returns category tags like "it-jobs", "engineering-jobs", "finance-jobs"

get_salary_histogram

Understand salary distribution:

Parameters:
- country (required): Country code
- keywords: Filter by job type
- location: Filter by location
- category: Filter by category

get_top_companies

Find major employers:

Parameters:
- country (required): Country code
- keywords: Filter by job type
- location: Filter by location
- category: Filter by category

get_geodata

Compare salaries across regions:

Parameters:
- country (required): Country code
- keywords: Filter by job type
- location: Focus on sub-regions
- category: Filter by category

get_salary_history

Analyze salary trends:

Parameters:
- country (required): Country code
- keywords: Filter by job type
- location: Filter by location
- category: Filter by category
- months: Months of history (default 12, max ~24)

Important Notes

  • Salaries are annual amounts in the local currency of the selected country
  • Call get_categories first to get valid category tags for your country
  • Many jobs don't list salaries - salary filters will exclude these jobs
  • Rate limits apply - the Adzuna API has usage limits on free tier

Project Structure

adzuna-mcp/
├── server.py              # Main MCP server
├── pyproject.toml         # Package configuration
├── requirements.txt       # Python dependencies
├── .env.example           # Environment template
├── .env                   # Your credentials (gitignored)
├── tests/                 # Test suite
│   ├── __init__.py
│   └── test_server.py
├── .github/
│   └── workflows/
│       ├── ci.yml         # CI pipeline
│       └── publish.yml    # PyPI publishing
├── CONTRIBUTING.md        # Contribution guide
├── LICENSE
├── .gitignore
└── README.md

Troubleshooting

Server not appearing in Claude Desktop

  1. Check the Python path is correct in your config
  2. Ensure the virtual environment has all dependencies installed
  3. Restart Claude Desktop completely (Cmd+Q / Alt+F4)
  4. Check Claude Desktop logs: ~/Library/Logs/Claude/mcp*.log

Authentication errors

  1. Verify your API credentials at Adzuna Developer Portal
  2. Check the .env file has correct values
  3. Ensure environment variables are passed in the MCP config

No results returned

  1. Try broader search terms
  2. Check the country code is valid
  3. Remove salary filters (many jobs don't list salaries)
  4. Verify the category tag is valid for that country

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE for details.

Acknowledgments

  • Adzuna for providing the job search API
  • FastMCP for the MCP framework
  • Anthropic for the Model Context Protocol specification

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_folathecoder_adzuna_mcp-0.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_folathecoder_adzuna_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_folathecoder_adzuna_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_folathecoder_adzuna_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b2857084cfd954333152ab7a4df87118197eddc007906e4cc4f43d29fd0be340
MD5 e7c5d0b407f7a0b37f37b3746bf98172
BLAKE2b-256 8aa7593ef1eb3cb1a2042df1c3e7776bad40dfc33efbd4aa3e558b99828030db

See more details on using hashes here.

File details

Details for the file iflow_mcp_folathecoder_adzuna_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_folathecoder_adzuna_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_folathecoder_adzuna_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2d6ffa63e9d3c811f196470958f5a7cd661a90262f66fd4eead9ced3b68bb33
MD5 d43f110a63c1a876573450ecc2faa31b
BLAKE2b-256 eabea9f851803dd163ef821676cffb038b2ab26ab1d2389ae982291a3a25d783

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page