MCP
Use Bordfeed from Claude, ChatGPT, Codex, Cursor or VS Code. Search jobs, poll and export your feeds, and check your balance from your AI.
Bordfeed runs a hosted MCP server, so an AI client can search jobs and read your feeds without you copying anything by hand. Paste this line into any agent and it sets itself up:
The server URL is https://bordfeed.com/api/mcp (Streamable HTTP).
You sign in with your Bordfeed account and pick the organization the client acts
for. No API key needed.
Connect your client
- Run this command in a terminal.
- Start Claude Code, run /mcp, select bordfeed and sign in to Bordfeed in the browser.
claude mcp add --transport http --scope user bordfeed https://bordfeed.com/api/mcpOr install the Bordfeed plugin
- Instead of the command above, run these commands in a terminal. The plugin adds the same server plus a bordfeed skill that tells the agent which tools to call and what they cost. Do not add both: if you already added bordfeed, remove it first with claude mcp remove --scope user bordfeed.
- Start Claude Code, run /mcp, select plugin:bordfeed:bordfeed and sign in to Bordfeed in the browser.
claude plugin marketplace add craftled/bordfeed-plugin
claude plugin install bordfeed@bordfeedIn Claude Code and Cursor you can install the Bordfeed plugin instead of adding the server by hand. It adds the same server plus a skill that tells the agent which tools to call and what they cost. You still sign in to Bordfeed once. Do not add the server by hand as well. If you already added it, remove that entry first.
API keys are created under Organization → API keys
and shown only once. A key sends as Authorization: Bearer <key> or
x-api-key: <key>. AI agents can read bordfeed.com/auth.md for every way to get access.
If your client loads its redirect URL twice, for example when the callback page is reloaded, the authorization code is sent again. The second exchange fails, and the refresh token from the first exchange is revoked. OAuth authorization codes work once. Sign in again to get a new refresh token.
Try it out
Copy a prompt into your client once it is connected.
search_jobsUse Bordfeed to find 5 remote senior product designer jobs and list title, company and apply link.
poll_feedList my Bordfeed feeds, then show the 10 newest jobs in the first one.
export_jobsExport the newest 50 jobs from my Bordfeed feed as a table with title, company, location and apply link.
get_balanceHow many Bordfeed credits do I have left, and what does one job cost on my plan?
Tools
| Tool | What it does | Billable |
|---|---|---|
search | Search active job listings by keywords. | Free |
fetch | Fetch one job listing by id as {id, title, text, url, metadata}. | Yes |
search_jobs | Search active job listings with filters. | Free |
get_job | Get one active job by id or slug with a plain-text description (capped at 6,000 chars). | Yes |
list_feeds | List this organization's saved job feeds (id, name, filters). | Free |
poll_feed | Get a saved feed's jobs newest first. | Yes |
export_jobs | Export a saved feed's jobs newest first as JSON or CSV. | Yes |
get_balance | Returns the caller's prepaid Bordfeed balance in jobs, plan, price per job and top-up URL. | Free |
get_pricing | Returns Bordfeed's public pricing (plans and pay as you go per-job price). | Free |
create_topup_link | Returns a link that opens Stripe Checkout for prepaid Bordfeed credits ($0.01 per job, top-ups of $10, $50, $100 or $1,000). | Free |
poll_feed returns a saved feed's jobs newest first. Jobs appear in polls about a minute after they go live. Store next_cursor and pass it on your next poll; you get only jobs added since, newest first. A full page means call again right away. The cursor is signed and only works for that feed. A stored cursor can become invalid; invalid_cursor means start over without a cursor. export_jobs uses the same order. Its format is json (the default) or csv. Set include_description to include the plain-text description; it is off by default and truncated to 6000 characters. CSV quotes commas, quotes and newlines, and a cell that starts with =, +, -, @, a tab, or a carriage return is prefixed with a single quote so a spreadsheet does not run it as a formula.
Search is free. A tool that returns full jobs, such as get_job or a feed
tool, costs 1 credit per full job, charged once per organization: a job you
already received is free to get again, whether it came from a tool, the API, a
webhook or an export. Every result reports the cost and your balance. Call
get_balance for your balance, cap a call with max_jobs, and see
Pricing for plans and top-ups. When credits run out, a tool returns
insufficient_credits with a topup_url that opens Stripe Checkout for about
an hour, with no Bordfeed sign-in, or payment_required on a plan. The link is
for pay as you go only. Plans stay in the dashboard.
Rate limits
Every tool call counts against your organization's request limit, the same
budget its API keys use. A limited call returns rate_limit_exceeded with
retry_after_seconds and is not billed.
| Plan | Sustained | Burst |
|---|---|---|
| Pay as you go | 2 calls per second | 10 calls |
| Pro | 5 calls per second | 20 calls |
| Max | 10 calls per second | 50 calls |
| Ultra | 25 calls per second | 100 calls |
Revoke access
Signed-in clients are listed under Account settings → Connected apps. Revoke one there and it loses access at once. To cut off an API key client, revoke the key under API keys.