Himalayas logo

Remote Jobs MCP Server

The Himalayas MCP server lets AI assistants search remote jobs and companies in real time using the Model Context Protocol. Connect Claude Desktop, Cursor, Windsurf, or any MCP-compatible client to start searching — no API key required.

What is the Himalayas MCP server?

The Himalayas MCP server is an endpoint that AI assistants can connect to for live access to remote job and company data. It provides two tools — search_jobs and search_companies — that AI assistants use to search Himalayas on your behalf.

Once connected, you can ask your AI assistant questions like "Find remote Python jobs in Europe" or "Show me companies hiring in the US timezone" and get real-time results from Himalayas.

What is the Model Context Protocol (MCP)?

The Model Context Protocol (MCP) is an open standard that lets AI assistants connect to external data sources and tools. Instead of relying only on training data, an MCP-connected assistant can query live databases, search APIs, and interact with external services.

The Himalayas MCP server uses Server-Sent Events (SSE) transport at:

https://mcp.himalayas.app/sse

What tools does the Himalayas MCP server provide?

The MCP server provides two tools:

search_jobs

Searches for remote job listings. Accepts the following parameters (all optional):

  • keyword: Search term to filter jobs by title, description, or skills
  • page: Page number for pagination (starts at 1)
  • country: Filter jobs by country
  • worldwide: Set to true to show only jobs with no location restrictions

search_companies

Searches for companies on Himalayas. Accepts the following parameters (all optional):

  • keyword: Search term to filter companies by name or description
  • page: Page number for pagination (starts at 1)
  • country: Filter companies by country
  • worldwide: Set to true to show only companies hiring worldwide

How do I connect the MCP to Claude Desktop?

Add the following configuration to your Claude Desktop config file:

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

{
  "mcpServers": {
    "himalayas": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.himalayas.app/sse"
      ]
    }
  }
}

After saving the config, restart Claude Desktop. You should see Himalayas listed as an available MCP server. You can then ask Claude to search for remote jobs or companies.

How do I connect the MCP to Cursor?

There are two ways to add the Himalayas MCP to Cursor:

One-click install: Run this command in your terminal:

cursor://anysphere.cursor-deeplink/mcp/install?name=himalayas&type=sse&url=https://mcp.himalayas.app/sse

Manual setup: Open Cursor Settings, go to the MCP section, and add a new SSE server with the URL https://mcp.himalayas.app/sse.

How do I connect the MCP to Windsurf?

Add the following to your Windsurf MCP configuration file at ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "himalayas": {
      "serverUrl": "https://mcp.himalayas.app/sse"
    }
  }
}

Restart Windsurf after saving the configuration.

What job data fields does the MCP return?

The MCP returns the same core job fields as the Remote Jobs JSON API:

  • title: Job title
  • excerpt: Short summary
  • companyName: Hiring company name
  • companyLogo: Company logo URL
  • employmentType: Full-time, part-time, contract, etc.
  • minSalary / maxSalary: Salary range (if provided)
  • seniority: Experience level
  • currency: Salary currency
  • locationRestrictions: Required countries
  • timezoneRestrictions: Accepted timezones
  • categories: Job categories
  • description: Full job description
  • pubDate: Publication date
  • expiryDate: Expiration date
  • applicationLink: Direct application URL

Is there a rate limit?

Yes, the MCP server has built-in rate limiting. The rate limit is generous for typical use. If you are building an automated tool that makes many requests, contact hi@himalayas.app to discuss your use case.

What are the attribution requirements?

If you build an application or tool that uses the Himalayas MCP server, include a mention of Himalayas as the data source and link back to himalayas.app where the data is displayed.

What is the difference between MCP, the JSON API, and the RSS feed?

Himalayas offers three ways to access job data programmatically:

  • MCP Server: Real-time search via AI assistants. Best for conversational job search, AI-powered tools, and IDE integrations. Returns live data.
  • JSON API: All jobs with pagination (up to 20 per request). Best for building applications, databases, or dashboards. Updated every 24 hours.
  • RSS Feed: The 100 most recent jobs in XML format. Best for feed readers and content aggregators. Updated every 24 hours.

For the JSON API, see Remote Jobs API. For the RSS feed, see Remote Jobs RSS Feed.

What are the exact MCP tool names and parameters?

The following tool definitions describe the exact interface that AI agents use when calling the Himalayas MCP server:

{
  "tools": [
    {
      "name": "search_jobs",
      "description": "Search for remote job listings on Himalayas",
      "parameters": {
        "keyword": { "type": "string", "description": "Search term for job title, skills, or description" },
        "page": { "type": "integer", "description": "Page number for pagination (starts at 1)", "default": 1 },
        "country": { "type": "string", "description": "Filter by country name (e.g., 'United States', 'Germany')" },
        "worldwide": { "type": "boolean", "description": "Show only jobs with no location restrictions", "default": false }
      }
    },
    {
      "name": "search_companies",
      "description": "Search for companies with remote positions on Himalayas",
      "parameters": {
        "keyword": { "type": "string", "description": "Search term for company name, industry, or description" },
        "page": { "type": "integer", "description": "Page number for pagination (starts at 1)", "default": 1 },
        "country": { "type": "string", "description": "Filter by country name" },
        "worldwide": { "type": "boolean", "description": "Show only companies hiring worldwide", "default": false }
      }
    }
  ]
}

All parameters are optional. Calling a tool with no parameters returns the first page of all results.

How should an AI agent use the Himalayas MCP?

If you are building or configuring an AI agent, include these system instructions:

You have access to the Himalayas MCP server for searching remote jobs and companies.

Available tools:
- search_jobs: Find remote job listings. Use keyword for skills/roles, country for location filtering, worldwide=true for unrestricted jobs.
- search_companies: Find companies with remote positions. Same parameters as search_jobs.

Tips:
- Start broad, then narrow. Search with just a keyword first, then add country or worldwide filters.
- Use specific role titles or technologies as keywords (e.g., "react", "product manager", "devops").
- Country names should be full English names (e.g., "United States", not "US").
- If no results, try a broader keyword or remove the country filter.
- Each result includes an applicationLink — provide this to the user so they can apply directly.
- For valid field values (employment types, seniority levels, currencies), reference: https://himalayas.app/docs/data-dictionary

How do I map natural language to MCP parameters?

User saysMCP tool call
"Find Python jobs"search_jobs({ keyword: "python" })
"Remote jobs in Canada"search_jobs({ country: "Canada" })
"Worldwide remote jobs"search_jobs({ worldwide: true })
"Senior React developer positions in Germany"search_jobs({ keyword: "senior react developer", country: "Germany" })
"Page 2 of results"search_jobs({ keyword: "...", page: 2 })
"Companies hiring in the UK"search_companies({ country: "United Kingdom" })
"Show me startups with remote positions"search_companies({ keyword: "startup" })

What does an example tool call flow look like?

User: "Find me remote data science jobs in the US"

Agent calls:

search_jobs({ "keyword": "data science", "country": "United States" })

MCP returns: An array of matching job objects, each with title, companyName, salary range, description, applicationLink, and other fields described in the Data Dictionary.

Agent responds: Summarizes the top results with job title, company, salary, and provides the applicationLink for each so the user can apply directly.

How does an AI agent handle empty results?

When no results match the query, the MCP server returns an empty results array. The agent should:

  1. Broaden the keyword: Try a more general term (e.g., "engineer" instead of "senior staff platform engineer")
  2. Remove the country filter: The job may be available worldwide but not restricted to the specified country
  3. Try worldwide: Set worldwide: true to find jobs open to all locations
  4. Check pagination: If previous pages had results, the user may have reached the end

Where can I get help?

For MCP setup questions or integration support, email hi@himalayas.app.

For AI agent integration guides, see the AI Agents hub. For field definitions and valid values, see the Data Dictionary. For general platform documentation, see How Remote Jobs Work on Himalayas.