Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Read CATS candidates, jobs and pipelines, and make explicitly confirmed recruiting changes.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://cats-ats.usefulapi.io/mcpRun this in your terminal
claude mcp add --transport http cats-ats https://cats-ats.usefulapi.io/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cats-ats": {
"url": "https://cats-ats.usefulapi.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cats-ats": {
"type": "http",
"url": "https://cats-ats.usefulapi.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://cats-ats.usefulapi.io/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
cats_get_siteThe CATS site (account) this API key belongs to: id, mode (recruiter or employer) and subdomain. GET /site.
cats_list_usersList the CATS users (recruiters) with id, name, title and access level. Use the ids as owner or assignee. GET /users.
cats_list_candidatesList candidates (personal data: name, emails, address, employer, skills, notes), one page at a time, max 100 per page. Use cats_search_candidates or cats_filter_candidates to find specific people. GET /candidates.
cats_get_candidateOne candidate by id (personal data). GET /candidates/{id}.
cats_search_candidatesFree-text search over candidates (name, email, skills, resume text...), paged. GET /candidates/search?query=.
cats_filter_candidatesFilter candidates by fields (read-only, although it is a POST): first_name, last_name, title, emails.primary, address.city/state/postal_code, country_code, current_employer, key_skills, notes, dates (date_created, date_modified), owner_id, is_hot... Each condition is {field, filt
cats_list_candidate_pipelinesThe jobs a candidate is in the pipeline for, with rating, workflow and current status id. GET /candidates/{id}/pipelines.
cats_list_candidate_activitiesThe activity log of a candidate (calls, meetings, notes, pipeline changes), paged. GET /candidates/{id}/activities.
cats_list_candidate_tasksTasks attached to a candidate. GET /candidates/{id}/tasks.
cats_list_candidate_attachmentsFile names, sizes and whether each file is a resume, for a candidate's attachments. Metadata only: file contents are never downloaded. GET /candidates/{id}/attachments.
cats_list_jobsList job orders with title, location, company, recruiter, status and workflow ids, dates. Paged. GET /jobs.
cats_get_jobOne job order by id, with its description. GET /jobs/{id}.
cats_search_jobsFree-text search over job orders, paged. GET /jobs/search?query=.
cats_list_job_pipelinesThe candidates in the pipeline of a job: pipeline id, candidate id, rating and current status id. Paged. GET /jobs/{id}/pipelines.
cats_list_job_statusesThe statuses a job order can have (Active, OnHold, Closed...). GET /jobs/statuses.
cats_list_pipelinesList candidate-to-job pipelines (candidate id, job id, rating, workflow id, status id), paged. GET /pipelines.
cats_get_pipelineOne pipeline (a candidate on a job) by id. GET /pipelines/{id}.
cats_filter_pipelinesFilter pipelines by id, candidate_id, job_id, status_id, rating, date_created or date_modified (read-only, although it is a POST). Each condition is {field, filter, value}. Paged. POST /pipelines/search.
cats_get_pipeline_status_historyThe status changes of a pipeline over time (status, who, when). GET /pipelines/{id}/statuses.
cats_list_workflowsThe pipeline workflows (sets of statuses such as Contacted, Interviewing, Offered). GET /pipelines/workflows.
cats_list_workflow_statusesThe statuses of one pipeline workflow (id, title, prerequisites, triggers). Use the ids with cats_change_pipeline_status. GET /pipelines/workflows/{id}/statuses.
cats_list_companiesList client companies (name, address, website, owner), paged. GET /companies.
cats_get_companyOne company by id. GET /companies/{id}.
cats_search_companiesFree-text search over companies, paged. GET /companies/search?query=.
cats_list_contactsList client contacts (personal data: name, title, emails, company), paged. GET /contacts.
cats_get_contactOne client contact by id (personal data). GET /contacts/{id}.
cats_search_contactsFree-text search over client contacts, paged. GET /contacts/search?query=.
cats_list_tasksList tasks (description, priority 1-5, due date, assignee, completion, the record it is about), paged. GET /tasks.
cats_get_taskOne task by id. GET /tasks/{id}.
cats_list_activitiesThe site-wide activity log (calls, emails logged, meetings, notes) with the record each is about, paged. GET /activities.
cats_add_candidate_activityWRITE: Requires confirm:true. log an activity (a call, meeting, note...) on a candidate's record. It only records the entry in CATS: no email/SMS-send request is made, even for type 'email' or 'text_message'. Creates a new entry each time (not idempotent). POST /candidates/{id}/a
cats_create_taskWRITE: Requires confirm:true. create a task in CATS, optionally about a candidate, contact, company or job and assigned to a user. Creates a new task each time (not idempotent); CATS may notify the assignee. POST /tasks.
cats_change_pipeline_statusWRITE: Requires confirm:true. change the status of a pipeline (move a candidate to another stage of a job's workflow, e.g. Interviewing, Offered, Rejected). Get the pipeline id from cats_list_candidate_pipelines and the status id from cats_list_workflow_statuses. Requires confirm
cats_create_candidateWRITE: Requires confirm:true. create one candidate record (personal data) with name, optional contact details and notes. Refuses when CATS finds a duplicate (check_duplicate=true, the default). Creates a new record each time (not idempotent); no email-send request is made to the
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain usefulapi.io (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 50 ms (HTTP 200)
No sign-in needed
Read 34 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.7.4) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, FlyDocs
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
https://cats-ats.usefulapi.io/mcp.claude mcp add --transport http cats-ats https://cats-ats.usefulapi.io/mcp, then run /mcp to log in.{
"mcpServers": { "cats-ats": { "url": "https://cats-ats.usefulapi.io/mcp" } } }
Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your CATS credentials.
Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/cats-ats/
| Tool | Type | What it does |
|---|---|---|
cats_get_site | read | Get CATS site |
cats_list_users | read | List users |
cats_list_candidates | read | List candidates |
cats_get_candidate | read | Get candidate |
cats_search_candidates | read | Search candidates |
cats_filter_candidates | read | Filter candidates |
cats_list_candidate_pipelines | read | List a candidate's pipelines |
cats_list_candidate_activities | read | List a candidate's activities |
cats_list_candidate_tasks | read | List a candidate's tasks |
cats_list_candidate_attachments | read | List a candidate's attachments (metadata) |
cats_list_jobs | read | List jobs |
cats_get_job | read | Get job |
cats_search_jobs | read | Search jobs |
cats_list_job_pipelines | read | List a job's pipeline |
cats_list_job_statuses | read | List job statuses |
cats_list_pipelines | read | List pipelines |
cats_get_pipeline | read | Get pipeline |
cats_filter_pipelines | read | Filter pipelines |
cats_get_pipeline_status_history | read | Get pipeline status history |
cats_list_workflows | read | List pipeline workflows |
cats_list_workflow_statuses | read | List workflow statuses |
cats_list_companies | read | List companies |
cats_get_company | read | Get company |
cats_search_companies | read | Search companies |
cats_list_contacts | read | List contacts |
cats_get_contact | read | Get contact |
cats_search_contacts | read | Search contacts |
cats_list_tasks | read | List tasks |
cats_get_task | read | Get task |
cats_list_activities | read | List activities |
cats_add_candidate_activity | write | Add an activity (note) to a candidate |
cats_create_task | write | Create a task |
cats_change_pipeline_status | write | Move a candidate to another pipeline status |
cats_create_candidate | write | Create a candidate |
cats_usage_status | meta | Usage status (free-tier meter) |
cats_request_feature | meta | Request a missing feature |
cats_upgrade | meta | Upgrade to Pro or Pro+ |
cats_cancel_subscription | meta | Cancel the Pro subscription |
read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.
| Plan | Price | Limit |
|---|---|---|
| Free (per connected CATS site) | $0 | 50 tool calls / month |
| Pro (per connected CATS site) | $9/mo or $90/yr (2 months free) | Unlimited* |
\*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to support@usefulapi.io.
Pro covers this server only. Subscribe with cats_upgrade (it returns a Stripe Checkout link). Cancel any time with cats_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running cats_upgrade before then undoes the cancel. Or write to support@usefulapi.io.
MIT
Create a v3 API key in CATS under Administration → API Keys. Legacy Transaction Codes do not work. The generation form offers no read-only scope selector. Authorize UsefulAPI and your selected AI client to process only data you are entitled to share. CATS account eligibility and vendor charges remain separate from UsefulAPI plans. This independent connector makes no claim of vendor approval or endorsement.
Candidate/contact records contain personal information. Do not use this workflow for government IDs, health data, personal financial information or other CATS Prohibited Data. Known credential and sensitive financial/health fields and HAL link blocks are filtered; customers must still review free text and custom fields. Tool results reach your chosen AI client and LLM provider, whose privacy and retention policies also apply. Revoke the API key in CATS to stop vendor access; disconnect UsefulAPI to end this connection.
CATS documents a rolling 500 API requests/hour limit; its counter scope is not specified. Collection pages default to 25, maximum 100. Authentication is capped at 10 seconds/64 KiB; operation replies at 30 seconds/8 MiB. Billing follows the verified CATS site ID, so rotation of a key within the same site keeps the account identity.
All four writes require confirm:true: create a candidate, log candidate activity, create a task or change pipeline status. Assigned tasks may notify a user. No email/SMS-send request is made by an activity note, even when its activity type is email or text_message. Independently configured account automation and webhooks can still react to changes.
Pipeline moves read the workflow/status metadata, explicitly request every returned trigger be suppressed with fire:false, and send create_activity=false. An already-current status makes no write. Preflight reads are not an atomic lock, so concurrent changes remain possible; independent webhooks are not suppressed. No email delivery, delete, attachment download, bulk-export endpoint or webhook-management tool is exposed.
No vendor request is automatically replayed. Creates require the documented 201 and a matching Location record ID; inconsistent or uncertain acknowledgements are errors. Inspect CATS before retrying a write. Date-only task/activity dates are sent at midnight UTC.
The 34 vendor tools were checked against the current API reference and local mocks. Actual own-trial reads verified account identity and HAL response structures, including vendor-supplied sample records. No real customer recruiting records or business writes were tested. Current terms allow customer-directed third-party software, and the vendor publishes external API-key setup guidance; this does not assert CATS reviewed UsefulAPI.
References: API v3, terms, external-key setup.