Remote Jobs Center
Remote Jobs Center MCP Server
A hosted Model Context Protocol server for searching current remote / work-from-home jobs — by category, region, perk, or company. Built so any MCP-enabled assistant or agent can query the Remote Jobs Center corpus directly and return ready-to-apply links.
Unlike single-board servers, the corpus is aggregated and deduped from multiple vetted remote job boards and employer career sites, then enriched with perks, skills, seniority, and AI-role flags — so a single query spans the whole remote market, not one source.
Endpoint:
https://remotejobscenter.com/mcpTransport: Streamable HTTP (JSON-RPC 2.0 over POST) — stateless, no auth
Registry:
com.remotejobscenter/remote-jobs(official MCP registry)
Connect
Claude (web/desktop): Settings → Connectors → Add custom connector → URL https://remotejobscenter.com/mcp. No authentication required.
Any MCP client that supports Streamable HTTP: point it at the endpoint above.
Related MCP server: mcp-remotive
Tools
Tool | Parameters | Returns |
|
|
|
|
|
|
| — |
|
| — |
|
|
|
|
Filter values
category:software,data,design,marketing,sales,support,writing,product,finance,hrregion:us,uk,europe,canada,latam,apac,worldwideperk:tuition-reimbursement,six-figure,no-degree,entry-level,four-day-week,visa-sponsorship,async,equity,unlimited-ptolimit: default20, max50
Job shape
{
"slug": "acme-senior-backend-engineer",
"title": "Senior Backend Engineer",
"company": "Acme",
"category": "software",
"region": "us",
"location": "United States (Remote)",
"salaryMin": 140000,
"salaryMax": 180000,
"perks": ["six-figure", "equity"],
"source": "Employer careers",
"postedAt": "2026-06-10T00:00:00.000Z",
"applyUrl": "https://...",
"url": "https://remotejobscenter.com/jobs/acme-senior-backend-engineer/"
}get_job additionally includes a short excerpt.
Request / response examples
All requests are JSON-RPC 2.0 over POST https://remotejobscenter.com/mcp.
Initialize
curl -s https://remotejobscenter.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}'List tools
curl -s https://remotejobscenter.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'Search
curl -s https://remotejobscenter.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_remote_jobs","arguments":{"query":"python","region":"us","limit":5}}}'A tools/call result wraps the tool's JSON output in a text content block:
{ "jsonrpc": "2.0", "id": 3, "result": {
"content": [ { "type": "text", "text": "{\"total\":42,\"returned\":5,\"jobs\":[...]}" } ]
} }Run locally (stdio)
The hosted endpoint above is the canonical deployment. For local use or registry introspection, this repo also ships a standalone stdio MCP server with the same tools and data source.
npm install
npm start # runs src/server.mjs over stdioPoint any stdio MCP client at node /path/to/remotejobscenter-mcp/src/server.mjs.
Docker
docker build -t remotejobscenter-mcp .
docker run -i --rm remotejobscenter-mcpThe container speaks MCP over stdio, so registries (e.g. Glama) and MCP clients can start it and introspect its tools directly.
Implementation
Two equivalent surfaces, one data source:
Hosted — a single Cloudflare Pages Function deployed at
/mcp, speaking Streamable HTTP (JSON-RPC 2.0 over POST). Stateless, read-only, no auth. AGETwithAccept: text/event-streamreturns405(per the Streamable HTTP spec, since the server does not stream); a plainGETreturns a small info document.Local / containerized —
src/server.mjs, a stdio MCP server using the official@modelcontextprotocol/sdk.
Both read the same public corpus the website publishes at
https://remotejobscenter.com/api/jobs.json (cached ~10 minutes), so there is one source of truth.
License
MIT — see LICENSE.
Available Tools
5 toolsget_jobA
Get full details for a single job by its slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full responsibility for behavioral disclosure. It only states the basic action and does not mention error handling, permissions, response format, or any special behaviors. For a simple get operation, the lack of additional context is a noticeable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the essential purpose without any wasted words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter get tool, the description is mostly adequate, but phrases like 'full details' are vague, and there is no mention of what happens when the job does not exist or what the response structure looks like. Since there is no output schema, this lack of specificity leaves some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter, 'slug', with no description. The tool description clarifies that the slug is the job's identifier, which adds some meaning beyond the raw schema field. However, it does not explain what a slug is, how to obtain it, or its expected format, so the compensation is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Get'), resource ('full details for a single job'), and identifier ('by its slug'). It distinguishes itself from sibling tools that list or search jobs, making the primary purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need full details of a single job and you have its slug. It does not explicitly contrast with siblings like search_remote_jobs or list_* tools, but the wording 'single job by its slug' provides clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesA
List job categories with current open counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It fails to explicitly state that the operation is read-only, mention any side effects, or explain the response structure. The minimal phrasing leaves behavioral traits implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that directly states the tool's function without redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, no output schema), the description adequately conveys that it returns categories with open counts. It lacks some context about the return format, but is sufficiently complete for a straightforward list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter meaning, but none is required given the parameter-free schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists job categories with current open counts, providing a specific verb, resource, and detail. It is easily distinguished from sibling list tools like list_companies and list_collections, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It simply states what it does without context, prerequisites, or exclusions, offering no decision support for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_collectionsA
List curated perk-based collections (e.g. tuition reimbursement, six-figure) with counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It indicates this is a read-only listing operation ('list') and adds that results include counts, but it does not detail return shape, pagination, or any potential limitations. For a simple listing tool this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose and examples without any filler. Every element ('curated', 'perk-based', 'with counts') earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless listing tool, the description is mostly complete: it names the resource, gives examples, and mentions counts. However, it does not explicitly state the return format or whether counts represent numbers of related items (e.g., jobs), but this is reasonably inferable from the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so there are no parameters to describe. Baseline for zero parameters is 4; the description does not need to add parameter info because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists curated perk-based collections, with specific examples and the inclusion of counts. This distinguishes it from sibling tools like list_categories by specifying the resource type (perk-based collections rather than general categories).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to retrieve curated perk-based collections, but provides no explicit guidance on when to prefer this over list_categories or other siblings. It would benefit from a phrase like 'use this for perk-based collections' or a note on how it differs from list_categories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_companiesA
List companies hiring remotely with open counts. Optional category filter.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As annotations are absent, the description carries the burden. It discloses that the output includes open counts and that a category filter is optional, but it does not state whether the operation is read-only, how filtering behaves, or any limitations. The simple nature of the tool mitigates this, but more context would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences that immediately state the primary function and the only optional filter. It contains no fluff and is well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter, and the description covers its purpose and the filter parameter. It does not describe the exact response structure, but 'with open counts' implies the output includes company names and counts. Given the lack of output schema and annotations, this is reasonably complete for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a bare 'category' string with no description. The description adds 'Optional category filter,' clarifying that the parameter is not required and is used for filtering. This is meaningful enrichment, though it lacks details like allowed values or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists companies hiring remotely with open counts, using specific verb and resource. It distinguishes from siblings like list_categories and search_remote_jobs by focusing on companies, not categories or jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing companies and mentions an optional category filter, but it does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusions or alternatives are referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_remote_jobsA
Search current remote / work-from-home job listings curated by Remote Jobs Center. Filter by free-text query, category, region, perk, or company. Returns ready-to-apply links.
| Name | Required | Description | Default |
|---|---|---|---|
| perk | No | tuition-reimbursement, six-figure, no-degree, entry-level, four-day-week, visa-sponsorship, async, equity, unlimited-pto. | |
| limit | No | Max results to return (default 20, max 50). | |
| query | No | Free-text match against job title and company. | |
| region | No | Eligibility region: us, uk, europe, canada, latam, apac, worldwide. | |
| company | No | Filter to a company name (substring match). | |
| category | No | One of: software, data, design, marketing, sales, support, writing, product, finance, hr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the listings are curated and that the tool returns ready-to-apply links, which is useful behavioral context. However, it does not mention how filters combine (AND semantics), whether results are ordered, or any limitations beyond what the schema already covers. It stops short of hiding anything, but also doesn't provide rich behavioral detail like pagination or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action ('Search'). Every clause adds distinct value: the source ('curated by Remote Jobs Center'), the filter list, and the output type ('ready-to-apply links'). No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 fully documented parameters and no output schema, the description covers the essential aspects: what it searches, how to filter, and what it returns. It does not explain filter combination semantics or include notes on ordering, but given the schema richness, this is sufficient. The absence of annotations is partially offset by the read-only nature implied by 'Search'. It falls just short of 5 because it could explicitly state that multiple filters can be combined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by categorizing several parameters as 'filters' (query, category, region, perk, company), which is not explicitly stated in the schema. However, it doesn't explain the meaning of 'limit' or the exact syntax of the filters beyond what the schema already provides. It meets, but does not exceed, the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches remote job listings, with a specific verb ('Search') and resource ('current remote / work-from-home job listings curated by Remote Jobs Center'). It identifies key filter dimensions (query, category, region, perk, company) and the output (ready-to-apply links), making it distinct from sibling tools like list_categories, get_job, or list_companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description strongly implies when to use this tool: when needing to search/filter jobs by various criteria. It does not explicitly name alternatives or exclusions, but the contrast with sibling tools (list_categories, get_job, list_collections, list_companies) is clear from the purpose. The lack of explicit 'use this instead of X' guidance drops it from a 5, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
get_job - First observed
list_categories - First observed
list_collections - First observed
list_companies - First observed
search_remote_jobs
TDQS
Scored across 5 tools
Each tool targets a distinct entity: categories, jobs, collections, and companies. The purposes are clearly separated, with search_remote_jobs as the primary discovery mechanism and get_job for details.
All tools follow a consistent verb_noun pattern (list_*, search_*, get_*). The naming is predictable and uniform, making the API easy to navigate.
Five tools is well-scoped for a remote job board, covering both browsing (categories, collections, companies) and job-specific actions (search, get). No redundancy or bloat.
The surface covers the full discovery-to-detail flow: list reference data, search jobs, and retrieve full job details. There are no obvious dead ends or missing critical operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search current remote / work-from-home jobs by category, region, perk, or company.
Find fresh remote jobs matched to a person's experience, goals, and eligible locations.
Search remote jobs, compare salaries, create alerts, and request user-confirmed apply links.
Search remote tech jobs, inspect descriptions, compare roles, and retrieve application links.
31
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceRemote jobs MCP server — search 100,000+ remote jobs, post listings, find candidates, and check salary benchmarks from Claude, ChatGPT, Cursor, and any MCP client. Free, no API key required.19MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching remote jobs by free-text, category, and company, listing job categories, and retrieving company profiles from the Remotive job board.17MIT

JobsPipe MCP Serverofficial
FlicenseNot gradedqualityBmaintenanceEnables searching live, normalized job postings from 30+ ATS feeds and job boards, with tools for job search, source listing, pricing plans, and Upwork jobs.-- AlicenseNot gradedqualityCmaintenanceEnables users to search and browse remote tech jobs from RemoteOK job board through natural language queries, with no API key required.14MIT