MCP server
Connect AI agents and MCP clients to JobsPipe — search live job postings with your API key over the Model Context Protocol.
JobsPipe runs a Model Context Protocol server so AI agents and MCP-capable clients (Claude, Cursor, and custom MCP hosts) can search live job postings directly, without you writing any HTTP code.
The server speaks MCP over Streamable HTTP at:
https://mcp.jobspipe.dev/mcpHow it works
The MCP server is a thin layer over the JobsPipe API. You authenticate with the same API key you use for the REST API — a key that starts with jp_live_. The server forwards your requests to the API under that key, so:
- Results, sources, and freshness are identical to the REST API.
- Usage counts against your plan, and your plan's quota and rate limits apply.
- There is no separate login, OAuth flow, or extra secret to manage.
Create or copy a key from your dashboard, then pass it as a bearer token on the connection:
Authorization: Bearer jp_live_xxxxxxxxxxxxxxxxxxxxxxxxA request without a valid jp_live_ key is rejected with 401 Unauthorized.
Connect a client
Claude Code
claude mcp add --transport http jobspipe https://mcp.jobspipe.dev/mcp \
--header "Authorization: Bearer jp_live_xxxxxxxxxxxxxxxxxxxxxxxx"Claude Desktop / other connector UIs
Add a custom connector (remote MCP server) with:
- URL:
https://mcp.jobspipe.dev/mcp - Header:
Authorization=Bearer jp_live_xxxxxxxxxxxxxxxxxxxxxxxx
Generic MCP config
Clients that read a JSON config (Cursor and similar) use the streamable-HTTP form:
{
"mcpServers": {
"jobspipe": {
"url": "https://mcp.jobspipe.dev/mcp",
"headers": {
"Authorization": "Bearer jp_live_xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}Once connected, the tools below appear automatically and the agent can call them.
Tools
| Tool | Description |
|---|---|
search_jobs | Search live job postings from 30+ sources, normalized into one schema. |
list_pricing_plans | List JobsPipe plans with monthly price, request quota, and max results per call. |
search_jobs
Every filter is optional and combined with AND. The most useful inputs:
| Parameter | Type | Description |
|---|---|---|
job_title_or | string[] | Match jobs whose title contains any of these phrases. |
job_title_not | string[] | Exclude jobs whose title contains any of these phrases. |
description_or | string[] | Match jobs whose description contains any of these phrases. |
company_name_or | string[] | Match jobs from any of these exact company names. |
job_country_code_or | string[] | ISO country codes to include, e.g. ["US","GB"]. |
employment_type_or | string[] | full-time, part-time, contract, temporary, internship. |
job_seniority_or | string[] | Seniority levels to include. |
remote | boolean | true returns remote-only, false excludes remote. |
posted_at_gte | string | Only postings on or after this date (YYYY-MM-DD). |
posted_at_max_age_days | number | Only postings newer than this many days. |
limit | number | Max rows to return (capped by your plan). |
offset | number | Pagination offset. |
include_total_results | boolean | Populate metadata.total_results (slightly slower). |
A typical agent call:
{
"job_title_or": ["data engineer"],
"remote": true,
"posted_at_max_age_days": 14,
"limit": 25,
"include_total_results": true
}The response mirrors the REST API: a metadata block (with total_results and a next_cursor for paging) and a data array of normalized postings — title, company, location, country, salary range, seniority, posting date, and the apply URL. See the API reference for the full schema.
Use cases
- Job-search copilots. Give an agent natural-language access to live postings — "find remote senior Rust roles posted this week" becomes a single
search_jobscall with filters. - Sales and recruiting intelligence. New postings are a strong buying and outreach signal. An agent can watch for companies hiring a specific role or stack and feed that into a CRM or sequencing tool.
- Market and hiring-trend research. Use
include_total_resultswith date and location filters to size demand — how many remote data-engineering roles opened in the US in the last 14 days. - Dataset enrichment. Pull normalized postings for a list of
company_name_ortargets to attach live hiring activity to an existing account list.
Limits and errors
The MCP server inherits your plan's limits from the REST API:
| Status | Meaning |
|---|---|
401 | Missing or invalid API key — pass a jp_live_ bearer token. |
402 | Monthly request quota exceeded for your plan. |
429 | Per-second rate limit exceeded. |
Call list_pricing_plans to see the quota, rate limit, and max results per call for each plan.
Other agent surfaces
Beyond MCP, JobsPipe is discoverable by autonomous agents:
- Agent skills —
SKILL.mddocuments for autonomous discovery athttps://jobspipe.dev/.well-known/agent-skills/index.json. llms.txt— an agent-friendly index of the site athttps://jobspipe.dev/llms.txt. Every content page is also available as raw Markdown.- OpenAPI spec — the API's machine-readable schema at
https://api.jobspipe.dev/openapi.json, and an interactive reference athttps://api.jobspipe.dev/docs/reference.