# Himalayas Remote Jobs (remote · mcp.himalayas.app)

Search and post remote jobs, browse companies, check salaries, and find talent on Himalayas.app

- Trust score: 65/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.himalayas.app`: 71/100, [markdown](https://verifymcp.io/servers/app-himalayas-mcp/mcp.md), [page](https://verifymcp.io/servers/app-himalayas-mcp/mcp)
- remote · `mcp.himalayas.app`: 65/100 (this document), [markdown](https://verifymcp.io/servers/app-himalayas-mcp/mcp-2.md), [page](https://verifymcp.io/servers/app-himalayas-mcp/mcp-2)

## Channel facts

- Endpoint: `https://mcp.himalayas.app/sse`
- Transports: `sse`
- Auth: `none`
- Version: `1.0.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 41 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 40/100
  - Verified sse transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 84/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 3889 tokens (~94/item across 41 items; 41 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http app-himalayas-mcp https://mcp.himalayas.app/sse
```

### Codex

```toml
[mcp_servers.app-himalayas-mcp]
url = "https://mcp.himalayas.app/sse"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-himalayas-mcp": {
      "type": "remote",
      "url": "https://mcp.himalayas.app/sse",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add app-himalayas-mcp --url https://mcp.himalayas.app/sse --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  app-himalayas-mcp:
    url: "https://mcp.himalayas.app/sse"
```

### Other

```json
{
  "mcpServers": {
    "app-himalayas-mcp": {
      "type": "http",
      "url": "https://mcp.himalayas.app/sse"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 64, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 63, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 63)

First indexed and scored.

## MCP tools (41)

### `get_jobs` (~84 tokens)

Browse the latest remote job listings with optional filtering by country or worldwide availability

Input parameters:

- `country` (string): Filter jobs by country (e.g., 'Canada', 'United States', 'UK')
- `page` (number): Page number for pagination (default: 1)
- `worldwide` (boolean): Show ONLY 100% remote jobs available worldwide (overrides country filter)

### `search_jobs` (~370 tokens)

Search for remote jobs using keywords with optional filtering by country or worldwide availability

Input parameters:

- `benefits` (string): Comma-separated benefit slugs to filter by (e.g., '401k,health-insurance,equity')
- `companies` (string): Comma-separated company slugs to filter by (e.g., 'stripe,gitlab')
- `country` (string): Filter jobs by country (e.g., 'Canada', 'United States', 'UK')
- `currency` (string): Salary currency (default: USD)
- `exclude_worldwide` (boolean): When true and country is set, return ONLY jobs specifically available in that country, excluding worldwide/remote jobs. Requires country to be set.
- `experience` (string): Filter by experience/seniority level. Comma-separate for multiple (e.g., 'senior,manager')
- `keyword` (string): Search keyword/term (optional)
- `markets` (string): Comma-separated market/category slugs to filter by (e.g., 'saas,fintech,healthcare')
- `page` (number): Page number for pagination (default: 1)
- `salary_max` (number): Maximum salary in the specified currency (default USD)
- `salary_min` (number): Minimum salary in the specified currency (default USD)
- `salary_required` (boolean): If false, include jobs without salary data in salary-filtered results (default: true — only jobs with salary)
- `sort` (string): Sort order for results (default: 'relevant')
- `type` (string): Filter by employment type. Comma-separate for multiple (e.g., 'full-time,contractor')
- `worldwide` (boolean): Show ONLY 100% remote jobs available worldwide (overrides country filter)

### `get_job_details` (~73 tokens)

Get full details for a specific job including description, requirements, salary, and application link. Use the company_slug and job_slug from job listings.

Input parameters:

- `company_slug` (string, required): Company slug (from the job listing URL or company page)
- `job_slug` (string, required): Job slug (from the job listing URL)

### `get_related_jobs` (~63 tokens)

Find jobs similar to a specific job, based on skills, location, and category. Use after viewing a job to suggest alternatives.

Input parameters:

- `company_slug` (string, required): Company slug of the original job
- `job_slug` (string, required): Job slug of the original job

### `get_companies` (~85 tokens)

Browse remote-friendly companies with optional filtering by country or worldwide availability

Input parameters:

- `country` (string): Filter companies by country (e.g., 'Canada', 'United States', 'UK')
- `page` (number): Page number for pagination (default: 1)
- `worldwide` (boolean): Show only companies with 100% remote jobs available worldwide (overrides country filter)

### `search_companies` (~171 tokens)

Search for remote-friendly companies using keywords with optional country filtering

Input parameters:

- `benefits` (string): Comma-separated benefit slugs to filter by (e.g., '401k,health-insurance,equity')
- `country` (string): Filter companies by country (e.g., 'Canada', 'United States', 'UK')
- `keyword` (string): Search keyword/term (optional)
- `page` (number): Page number for pagination (default: 1)
- `sort` (string): Sort order for results (default: 'relevant')
- `tech_stack` (string): Comma-separated technology slugs to filter by (e.g., 'react,typescript,python')
- `worldwide` (boolean): Show only companies with 100% remote jobs available worldwide (overrides country filter)

### `get_company_details` (~50 tokens)

Get full details for a company including about, tech stack, benefits, open positions, and social links

Input parameters:

- `company_slug` (string, required): Company slug (e.g., 'stripe', 'gitlab')

### `get_remote_work_statistics` (~123 tokens)

Get remote work statistics: top skills, job categories, industries, or countries by job/company count. Great for understanding the remote work landscape.

Input parameters:

- `country` (string): Filter stats by country (e.g., 'United States', 'Germany')
- `record` (string): What to get stats for: 'jobs' or 'companies' (default: jobs)
- `type` (string): Type of breakdown: 'skills', 'categories', 'countries', or 'industries' (default: skills). 'industries' only works with record='companies'.

### `get_salary_data` (~139 tokens)

Get salary benchmarks for remote jobs by job title, with optional seniority and country filters. Returns min, max, and median salary in USD.

Input parameters:

- `country` (string): Country slug to filter by (e.g., 'united-states', 'united-kingdom', 'germany')
- `job_title` (string, required): Job title to look up salary for (e.g., 'software-engineer', 'product-manager', 'data-scientist'). Use hyphens instead of spaces.
- `seniority` (string): Seniority level (e.g., 'senior', 'junior', 'lead', 'mid')

### `get_correct_country_name` (~48 tokens)

Resolve a country name to the correct format accepted by Himalayas filters. Useful for fuzzy matching user input.

Input parameters:

- `country_string` (string, required): The country name to get the correct name for

### `get_my_profile` (~19 tokens)

Get your Himalayas profile information. Requires authentication.

### `save_job` (~140 tokens)

Save a job to your application tracker. Requires authentication.

Input parameters:

- `app_link` (string): Application link URL
- `base_salary` (number): Base salary
- `company_name` (string, required): Company name
- `currency` (string): Salary currency (e.g., 'USD')
- `excitement` (number): Excitement level from 0-5
- `himalayas_link` (string): Himalayas job listing URL
- `max_salary` (number): Maximum salary
- `notes` (string): Personal notes about this job
- `status` (string): Application status (default: saved)
- `title` (string, required): Job title

### `get_saved_jobs` (~20 tokens)

Get all jobs in your application tracker. Requires authentication.

### `update_job_status` (~67 tokens)

Update a saved job's status or details. Requires authentication.

Input parameters:

- `excitement` (number): Excitement level from 0-5
- `id` (number, required): Kanban item ID
- `notes` (string): Updated notes
- `status` (string): New application status

### `remove_saved_job` (~33 tokens)

Remove a job from your application tracker. Requires authentication.

Input parameters:

- `id` (number, required): Kanban item ID to remove

### `update_profile` (~140 tokens)

Update your Himalayas profile. Requires authentication.

Input parameters:

- `bio` (string): Short bio
- `career_base_salary` (number): Desired minimum salary
- `career_description` (string): Description of what you're looking for
- `career_max_salary` (number): Desired maximum salary
- `career_primary_role` (string): Primary role (e.g., 'software-engineer')
- `career_search_status` (string): Career search status (e.g., 'actively_searching', 'open_to_roles', 'closed_to_roles')
- `intro` (string): Introduction/headline
- `location` (string): Location (e.g., 'San Francisco, CA')

### `add_experience` (~139 tokens)

Add a work experience to your Himalayas profile. Requires authentication.

Input parameters:

- `company_name` (string, required): Company name
- `current_job` (boolean): Whether this is your current job
- `description` (string, required): Description of your role and responsibilities
- `employment_type` (string, required): Employment type
- `end_date` (string): End date (YYYY-MM-DD format, omit for current role)
- `experience_skill_list` (string): Comma-separated skills used in this role
- `location` (string): Job location
- `start_date` (string): Start date (YYYY-MM-DD format)
- `title` (string, required): Job title

### `add_education` (~133 tokens)

Add an education entry to your Himalayas profile. Requires authentication.

Input parameters:

- `activities` (string): Activities and societies
- `current` (boolean): Whether you are currently enrolled
- `degree` (string): Degree (e.g., 'Bachelor of Science')
- `description` (string): Description or achievements
- `end_year` (number): End year (omit if currently enrolled)
- `field` (string): Field of study (e.g., 'Computer Science')
- `grade` (string): Grade or GPA
- `school` (string, required): School or institution name
- `start_year` (number): Start year

### `update_tech_stack` (~48 tokens)

Update your tech stack on your Himalayas profile. Requires authentication.

Input parameters:

- `stacks` (array, required): Array of technology names (e.g., ['React', 'TypeScript', 'Node.js'])

### `search_talent` (~94 tokens)

Search for remote talent/candidates on Himalayas. Browse professionals by keyword, country, or role.

Input parameters:

- `country` (string): Filter by country (e.g., 'United States', 'Germany')
- `keyword` (string): Search keyword (e.g., 'react developer')
- `page` (number): Page number for pagination (default: 1)
- `sort` (string): Sort order (default: relevant)

### `get_talent_profile` (~67 tokens)

Get full details for a candidate including bio, all experiences, education, tech stack, social links, and more. Use the talent_slug from search_talent results.

Input parameters:

- `talent_slug` (string, required): Talent slug (from search_talent results, e.g., 'john-doe')

### `get_company_profile` (~21 tokens)

Get your company's profile on Himalayas. Requires employer authentication.

### `update_company_profile` (~144 tokens)

Update your company's profile on Himalayas. Requires employer authentication.

Input parameters:

- `about` (string): Company description (HTML or plain text)
- `ceo` (string): CEO name
- `facebook` (string): Facebook URL
- `instagram` (string): Instagram URL
- `linkedin` (string): LinkedIn URL
- `location_list` (string): Comma-separated list of locations (e.g., 'San Francisco, New York')
- `num_employees_range` (string): Number of employees range
- `summary` (string): Short company summary
- `twitter` (string): Twitter URL
- `year_founded` (number): Year the company was founded

### `get_company_perks` (~25 tokens)

Get your company's perks/benefits on Himalayas. Requires employer authentication.

### `add_company_perk` (~67 tokens)

Add a perk/benefit to your company on Himalayas. Requires employer authentication.

Input parameters:

- `category` (string, required): Perk category
- `description` (string, required): Perk description (15-450 characters)
- `title` (string, required): Perk title (3-50 characters)

### `remove_company_perk` (~48 tokens)

Remove a perk/benefit from your company on Himalayas. Requires employer authentication.

Input parameters:

- `id` (number, required): Perk ID to remove (use get_company_perks to find IDs)

### `update_company_tech_stack` (~75 tokens)

Update your company's tech stack on Himalayas. Pass technology names (e.g., 'React', 'Python') and they'll be matched to the Himalayas stack database. Requires employer authentication.

Input parameters:

- `stacks` (array, required): Array of technology names (e.g., ['React', 'TypeScript', 'Python', 'AWS'])

### `list_company_jobs` (~48 tokens)

List your company's job postings on Himalayas. Shows status, views, clicks, and expiry. Requires employer authentication.

Input parameters:

- `page` (number): Page number for pagination (default: 1)

### `show_company_job` (~42 tokens)

Get full details of one of your company's job postings on Himalayas. Requires employer authentication.

Input parameters:

- `job_slug` (string, required): Job slug (from list_company_jobs)

### `create_company_job` (~256 tokens)

Post a new job on Himalayas. Jobs are free to post and require admin approval before going live. Requires employer authentication.

Input parameters:

- `app_link_or_email` (string, required): Application URL or email address — backend auto-detects via @ check
- `base_salary` (number): Minimum salary
- `category_list` (string): Comma-separated job categories
- `description` (string, required): Job description (350+ characters, can include HTML)
- `draft` (boolean): Save as draft instead of submitting for approval
- `employment_type` (string, required): Employment type
- `extras` (array): Paid extras: 'sticky' ($199 pin to top for 30 days), 'newsletter' ($99 feature in weekly email for 30 days)
- `max_salary` (number): Maximum salary
- `salary_country` (string): Salary currency code (default: USD)
- `screening_questions` (array): Screening questions for applicants
- `seniority` (array, required): Seniority levels
- `skill_list` (string): Comma-separated skills
- `title` (string, required): Job title (5-80 characters)
- `valid_through` (string): Expiration date (ISO format, defaults to 30 days from now)

### `update_company_job` (~232 tokens)

Update an existing job posting on Himalayas. Only provide fields you want to change. For screening_questions, provide the full set — questions not included will be removed. Requires employer authentication.

Input parameters:

- `app_link_or_email` (string): Application URL or email address
- `base_salary` (number): Minimum salary
- `category_list` (string): Comma-separated job categories
- `description` (string): Job description (350+ characters, can include HTML)
- `draft` (boolean): Save as draft instead of submitting for approval
- `employment_type` (string): Employment type
- `job_slug` (string, required): Job slug to update
- `max_salary` (number): Maximum salary
- `salary_country` (string): Salary currency code
- `screening_questions` (array): Screening questions — provide full set, questions not included will be removed
- `seniority` (array): Seniority levels
- `skill_list` (string): Comma-separated skills
- `title` (string): Job title (5-80 characters)
- `valid_through` (string): Expiration date (ISO format)

### `delete_company_job` (~42 tokens)

Delete a job posting from your company on Himalayas. This action cannot be undone. Requires employer authentication.

Input parameters:

- `job_slug` (string, required): Job slug to delete

### `post_job_public` (~228 tokens)

Post a job on Himalayas without an account. Provide your email and company details. Payment is required — a Stripe checkout URL will be returned. No authentication needed.

Input parameters:

- `app_link_or_email` (string, required): Application URL or email address
- `base_salary` (number): Minimum salary
- `category_list` (string): Comma-separated job categories
- `company_name` (string, required): Company name
- `company_url` (string, required): Company website URL
- `customer_email` (string, required): Your email address for payment and notifications
- `description` (string, required): Job description (350+ characters, can include HTML)
- `employment_type` (string, required): Employment type
- `max_salary` (number): Maximum salary
- `salary_country` (string): Salary currency code (default: USD)
- `seniority` (array, required): Seniority levels
- `skill_list` (string): Comma-separated skills
- `title` (string, required): Job title (5-80 characters)
- `valid_through` (string): Expiration date (ISO format, defaults to 30 days from now)

### `purchase_job_extras` (~79 tokens)

Purchase paid extras for an existing job posting: sticky ($199), newsletter ($99). Returns a Stripe checkout URL. Requires employer authentication.

Input parameters:

- `extras` (array, required): Extras to purchase: 'sticky' ($199 pin to top), 'newsletter' ($99 weekly email feature)
- `job_slug` (string, required): Job slug to add extras to

### `check_job_payment_status` (~51 tokens)

Check the payment status of a job posting. Use the session_id returned from post_job_public or create_company_job with extras. No authentication required.

Input parameters:

- `session_id` (string, required): Stripe checkout session ID

### `list_conversations` (~36 tokens)

List all your messaging conversations with last message preview. Shows conversation status (awaiting reply, new reply, read). Requires employer authentication.

### `get_conversation` (~66 tokens)

Get full message history for a conversation. Accepts room_name or talent_slug. Requires employer authentication.

Input parameters:

- `room_name` (string): Room name from list_conversations
- `talent_slug` (string): Talent slug (from search_talent results) — resolves to room name automatically

### `start_conversation` (~90 tokens)

Start a conversation with a candidate by talent slug. Optionally send an initial message. If the conversation already exists, returns it. Use search_talent to find candidates first, then use their slug here. Requires employer authentication.

Input parameters:

- `message` (string): Optional initial message to send with the conversation
- `talent_slug` (string, required): Talent slug of the candidate to message (from search_talent results)

### `send_message` (~98 tokens)

Send a message in an existing conversation. Accepts room_name (from list_conversations) or talent_slug (from search_talent). Use start_conversation first if no conversation exists yet. Requires employer authentication.

Input parameters:

- `message` (string, required): Message text to send
- `room_name` (string): Room name from list_conversations
- `talent_slug` (string): Talent slug (from search_talent results) — resolves to room name automatically

### `mark_message_read` (~73 tokens)

Mark a message as read by its ID. Requires employer authentication.

Input parameters:

- `message_id` (number, required): Message ID to mark as read
- `room_name` (string): Room name from list_conversations
- `talent_slug` (string): Talent slug (from search_talent results) — resolves to room name automatically

### `delete_conversation` (~62 tokens)

Delete a conversation. Accepts room_name or talent_slug. Requires employer authentication.

Input parameters:

- `room_name` (string): Room name from list_conversations
- `talent_slug` (string): Talent slug (from search_talent results) — resolves to room name automatically

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/app-himalayas-mcp/mcp-2#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 64
- 2026-08-01: 64
- 2026-07-31: 64
- 2026-07-30: 65
- 2026-07-29: 65
- 2026-07-28: 64
- 2026-07-27: 63
- 2026-07-26: 63

## Links

- Remote endpoint: https://mcp.himalayas.app/sse
- Repository: https://github.com/Himalayas-App/himalayas-mcp
- Website: https://himalayas.app/
- Changelog RSS feed: https://verifymcp.io/servers/app-himalayas-mcp/mcp-2/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/app-himalayas-mcp/mcp-2/changelog.json
- HTML version of this page: https://verifymcp.io/servers/app-himalayas-mcp/mcp-2
