MCP server Streamable HTTP
Remote jobs.
Meet your
assistant.
Give your assistant a way to search the RemoteJobs.org catalog. Connect once, discover the tools, and find opportunities in conversation.
Free, read-only access. No API key.
{
"name": "search_jobs",
"arguments": {
"q": "react",
"category": "programming",
"limit": 5
}
}01 / Connection
One URL to get started.
In a client that supports remote MCP servers, add an HTTP server named RemoteJobs and paste this endpoint. Choose Streamable HTTP and no authentication if your client asks.
https://remotejobs.org/mcpConfiguration example
Clients use different configuration formats. This mcpServers example works in clients that accept type: "http"; consult your client’s documentation for its exact format.
{
"mcpServers": {
"remotejobs": {
"type": "http",
"url": "https://remotejobs.org/mcp"
}
}
}Use the RemoteJobs.org endpoint above. The JSON API lives at a separate URL: see the API guide.
02 / Tools
Two tools. One catalog.
| Tool | What it returns |
|---|---|
search_jobs | Active jobs, newest first, with company details, descriptions, location, salary when recorded, listing URLs, and pagination. |
list_categories | Available category names and slugs. Takes no arguments. Use a returned slug in search_jobs. |
Search arguments
| Argument | Usage |
|---|---|
q | Optional keyword search. English full-text search, up to 500 characters. |
category | Optional category slug, up to 100 characters. Unknown slugs return an empty page. |
type | Optional: full-time, part-time, contract, or freelance. |
limit | Integer from 1 to 50. Defaults to 20. |
offset | Nonnegative integer. Defaults to 0. Add your page size to get the next page. |
Search results use the API response fields. They are returned as structured content and JSON text for client compatibility.
03 / First search
Ask for something concrete.
Try: “Use RemoteJobs to find five React roles in programming. Include company names, locations, and listing links.” Your client discovers the tools and decides which calls to make.
Review the listing before applying. Remote can still mean a specific country or time zone. Salary and location may be missing. The server provides listings and links; applications happen on the job’s application page.
Build your own MCP client
Install @modelcontextprotocol/sdk in your Node.js project, then connect with its Streamable HTTP transport.
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({ name: "my-job-tool", version: "1.0.0" });
await client.connect(new StreamableHTTPClientTransport(
new URL("https://remotejobs.org/mcp")
));
try {
const result = await client.callTool({
name: "search_jobs",
arguments: { q: "react", category: "programming", limit: 5 }
});
if (result.isError) throw new Error(JSON.stringify(result.content));
console.log(result.structuredContent);
} finally {
await client.close();
}04 / Limits & behavior
Keep the connection simple.
Read-only, stateless requests
The server supports Streamable HTTP with JSON responses. It has no persistent sessions, event stream, or application submission tools. Supported protocol versions are negotiated by the SDK, including 2025-11-25.
Request limits
Keep usage below 200 requests per hour per IP address. Rate limiting is best-effort; this is not a guaranteed quota. All MCP POST requests count, including connection and discovery. API and MCP requests are limited separately.
Failures stay visible
A failed query returns a tool error, not an empty list. HTTP 429 includes Retry-After. Stop on empty pages; pagination counts are estimates. If pagination totals are unavailable, the request returns a tool error.
Fresh queries, changing listings
MCP responses are not cached by the endpoint. Listings can change between requests. New or updated listings may take time to appear. API responses have a separate caching policy.
Keep listing links intact and credit RemoteJobs.org when displaying results. Our terms of service apply to both interfaces.