MCP server for per-agent cost attribution, budget management, and spend analytics across AI agent fleets
Recruitcrm is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
Open InstallationWhat it does
Recruit CRM MCP Server
Quickstart
# 1 — run it from where its publisher ships it
npx -y recruitcrm-mcp-server
# 2 — the plan is chosen at checkout, in the browser
# 3 — ask your agent something
> Recruit CRM MCP Server
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Recruitcrm as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. It is scanned, signed and pinned to the version you choose — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. Claude Code registers it in one command.
claude mcp add recruitcrm-mcp -- npx -y recruitcrm-mcp-serverReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
69 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Search Recruit CRM candidates and return compact summaries designed for large result sets. ${myRecordsOwnerFilterGuidance} Returns candidate slug values that can be used with get_candidate_details or to open Recruit CRM app links like https://app.recruitcrm.io/candidate/{slug}.
Takes no parameters.
Lists all candidates in the account, most-recently updated first. Returns compact summaries with slug values for candidate detail lookup. Use search_candidates for filtered queries.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Lists all jobs in the account, most-recently updated first. Returns compact summaries with slug, company_slug, contact_slug, and hiring_pipeline_id. Use search_jobs for filtered queries; use hiring_pipeline_id with list_candidate_hiring_stages for job-specific stage lookup.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Lists all companies in the account, most-recently updated first. Returns compact summaries with slug and contact_slugs values. Use search_companies for filtered queries.
Takes no parameters.
Creates one Recruit CRM company. Requires company_name, owner_id, and created_by. Checks duplicates by company_name unless allow_duplicate=true. Resolve user IDs with list_users and custom field IDs with list_custom_fields for entity_type=companies. Returns a compact summary with the company slug.
Takes no parameters.
Updates one existing Recruit CRM company by company_slug. Requires company_slug and updated_by. Resolve user IDs with list_users and custom field IDs with list_custom_fields for entity_type=companies. Returns a compact summary with the company slug.
Takes no parameters.
Search Recruit CRM contacts with filters and return compact summaries for large result sets. ${myRecordsOwnerFilterGuidance} At least one real filter is required; sort_by, sort_order, page, exact_search, and include_contact_info do not count independently.
Takes no parameters.
Lists all contacts in the account, most-recently updated first. Returns compact summaries with slug values for contact detail lookup. Use search_contacts for filtered queries.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Lists all Recruit CRM users and returns compact summaries of each user
Takes no parameters.
Lists Recruit CRM teams with MCP-side pagination. By default returns team IDs, names, and user IDs. Pass expand=user to return user summaries; include_user_contact_info=true adds user email, contact_number, and avatar.
Takes no parameters.
Lists Recruit CRM candidate questions with MCP-side pagination. Returns compact id and question rows for resolving candidate question IDs.
Takes no parameters.
Lists Recruit CRM hiring pipelines with MCP-side pagination. Returns hiring_pipeline_id and name rows for selecting a job hiring pipeline or listing candidate hiring stages.
Takes no parameters.
Lists Recruit CRM languages with MCP-side pagination and returns the standard proficiency IDs. Use language_id and proficiency_id for candidate language_skills.
Takes no parameters.
Lists Recruit CRM currencies with MCP-side pagination. Returns currency_id, code, country, currency, and symbol rows for candidate and job currency_id fields.
Takes no parameters.
Lists Recruit CRM qualifications with MCP-side pagination. Returns qualification_id and label rows for job qualification_id fields.
Takes no parameters.
Lists Recruit CRM XML job boards for jobs. Returns default_xml_feeds and custom_xml_feeds rows with id and label for job xml_feeds.
Takes no parameters.
Search Recruit CRM hotlists by related_to_type and optional name/shared filters. related_to_type is required. ${unsupportedOwnerFilterGuidance} Broad searches return compact hotlist summaries with related_count only. When name is provided, results also include related_slugs for follow-up workflows.
Takes no parameters.
Creates one Recruit CRM hotlist. Requires name, related_to_type, shared (true for team-shared, false for private), and created_by user id. Resolve user IDs with list_users.
Takes no parameters.
Adds up to 10 Recruit CRM record slugs to an existing hotlist. Duplicate input slugs are ignored. Returns partial-success details with added_slugs and an errors array for any failed additions.
Takes no parameters.
Search Recruit CRM tasks and return compact summaries designed for large result sets. ${myRecordsOwnerFilterGuidance} Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}.
Takes no parameters.
Lists Recruit CRM task types, returning compact id/label rows. Use task_type_id in create_task.
Takes no parameters.
Creates one Recruit CRM task. Requires task_type_id, title, description, reminder, start_date, owner_id, and created_by. Resolve task type IDs with list_task_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact task summary.
Takes no parameters.
Updates one existing Recruit CRM task by task_id. Requires task_id, updated_by, and at least one field to update. Resolve task type IDs with list_task_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact task summary.
Takes no parameters.
Search Recruit CRM meetings and return compact summaries designed for large result sets. ${myRecordsOwnerFilterGuidance} Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}.
Takes no parameters.
Lists Recruit CRM meeting types, returning compact id/label rows. Use meeting_type_id in create_meeting.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Search Recruit CRM notes and return compact summaries designed for large result sets. ${unsupportedOwnerFilterGuidance} Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}.
Takes no parameters.
Lists Recruit CRM note types, returning compact id/label rows. Use note_type_id in create_note.
Takes no parameters.
Creates one Recruit CRM note. Requires note_type_id, description, related_to, related_to_type, and created_by user id. Resolve note type IDs with list_note_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact note summary.
Takes no parameters.
Updates one existing Recruit CRM note by note_id. Requires note_id, updated_by, and at least one field to update. Resolve note type IDs with list_note_types and user IDs with list_users. Description supports basic HTML/rich text. Returns a compact note summary.
Takes no parameters.
Search Recruit CRM call logs and return compact summaries designed for large result sets. ${unsupportedOwnerFilterGuidance} Returns related_to and related_to_type values that can be used to open related entities in Recruit CRM app URLs like https://app.recruitcrm.io/{related_to_type}/{related_to}.
Takes no parameters.
Lists Recruit CRM custom call types, returning compact id/label rows. Use custom_call_type_id in create_call_log.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Fetches full details for up to 10 candidates in parallel by slug. Suitable for retrieving specific candidate records after slug resolution from search_candidates. Not intended for bulk database scans. Returns partial results: failures are reported in the errors array with status_code.
Takes no parameters.
Fetches full details for up to 10 Recruit CRM jobs in parallel by slug. Suitable for retrieving specific job records after slug resolution from search_jobs. Returns full Recruit CRM job payloads with partial results: failures are reported in the errors array with status_code.
Takes no parameters.
Fetches full details for up to 10 companies in parallel by slug. Suitable for retrieving specific company records after slug resolution from search_companies. Not intended for bulk database scans. Returns partial results: failures are reported in the errors array with status_code.
Takes no parameters.
Fetches full details for up to 10 contacts in parallel by slug. Suitable for retrieving specific contact records after slug resolution from search_contacts. Not intended for bulk database scans. Returns partial results: failures are reported in the errors array with status_code.
Takes no parameters.
Fetches assigned candidates for one Recruit CRM job and returns compact assignment summaries. Filter by status_id to narrow to a specific hiring stage; resolve stage IDs with list_candidate_hiring_stages (use the job
Takes no parameters.
Takes no parameters.
Lists Recruit CRM pitch pipeline stages with status_id and label values for resolving stage names used by update_candidate_pitch_stage.
Takes no parameters.
Marks one Recruit CRM candidate as pitched to one contact. Requires candidate_slug, contact_slug, and created_by. Checks existing candidate/contact pitch records unless allow_duplicate=true. This records the pitch in Recruit CRM; the API does not send an email to the candidate or contact.
Takes no parameters.
Updates the pitch stage for one candidate/contact pitch record. Requires candidate_slug, contact_slug, status_id, stage_date, and updated_by. Resolve status_id with list_pitch_stages. remark is optional text.
Takes no parameters.
Fetches pitch history for one Recruit CRM candidate or contact by slug. Set entity_type to candidate for candidate pitch history, or contact for contact pitch history. Returns compact pitch entries without email, phone, resume, or profile image fields.
Takes no parameters.
Fetches contacts where a candidate is pitched or candidates pitched to a contact. Set entity_type to candidate to return contacts for a candidate slug, or contact to return candidates for a contact slug. Returns compact records without email, phone, resume, or profile image fields.
Takes no parameters.
Takes no parameters.
Updates one candidate
Takes no parameters.
Lists Recruit CRM job pipeline statuses (e.g. Open, Closed, On Hold, plus any custom statuses configured for the account). Returns compact rows with id and label for resolving a status name to the numeric job_status_id used in search_jobs.job_status.
Takes no parameters.
Lists Recruit CRM contact pipeline stages (the sales pipeline). Returns compact rows with stage_id and label for resolving a stage name to the numeric stage_id used in create_contact and update_contact.
Takes no parameters.
Lists Recruit CRM off-limit statuses configured for the account. Returns compact rows with id, label, sequence_no, and default for resolving status_id values used by the off-limit mark tools.
Takes no parameters.
Marks up to 25 Recruit CRM candidates as off-limit. Requires candidate_slugs, status_id, and end_date in DD-MM-YYYY format; reason is optional. Returns the updated slug list, status_id, end_date, reason, and API remark.
Takes no parameters.
Marks up to 25 Recruit CRM contacts as off-limit. Requires contact_slugs, status_id, and end_date in DD-MM-YYYY format; reason is optional. Returns the updated slug list, status_id, end_date, reason, and API remark.
Takes no parameters.
Takes no parameters.
Takes no parameters.
Fetch one candidate
Takes no parameters.
List curated custom field metadata for a specific entity type (candidates, contacts, companies, jobs, deals).
Takes no parameters.
Fetch curated details for one custom field by field_id and entity_type, including dropdown or multiselect option values.
Takes no parameters.
Fetches parent-child dependency relationships for custom fields of a given entity type
Takes no parameters.
Takes no parameters.
Diagnoses a single Recruit CRM job
Takes no parameters.
- 10,000 calls a month, included
- 120 calls a minute at peak
- Every tool the listing has
- Cancel any time — the unused days are credited
- Runs behind the gateway, so cancelling stops it
- 50,000 calls a month, included
- 600 calls a minute at peak
- Every tool the listing has
- Cancel any time — the unused days are credited
- Runs behind the gateway, so cancelling stops it
- 250,000 calls a month, included
- 3,000 calls a minute at peak
- Every tool the listing has
- Cancel any time — the unused days are credited
- Runs behind the gateway, so cancelling stops it
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
No call is billed on its own, and this plan carries no monthly call limit. $12 a month covers every tool at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| verification-discount | none | publisher verification (unlinked) — no provenance/repo link, but the shipped source was fully read | −2 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (69 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| search_candidates | no tags | |
| list_candidates | no tags | |
| create_candidate | untrusted-input | |
| update_candidate | untrusted-input | |
| search_jobs | no tags | |
| list_jobs | no tags | |
| create_job | no tags | |
| update_job | no tags | |
| search_companies | no tags | |
| list_companies | no tags | |
| create_company | no tags | |
| update_company | no tags | |
| search_contacts | no tags | |
| list_contacts | no tags | |
| create_contact | no tags | |
| update_contact | no tags | |
| list_users | no tags | |
| list_teams | no tags | |
| list_candidate_questions | no tags | |
| list_hiring_pipelines | no tags | |
| list_languages_and_proficiencies | no tags | |
| list_currencies | no tags | |
| list_qualifications | no tags | |
| list_xml_jobboards | no tags | |
| search_hotlists | no tags | |
| create_hotlist | no tags | |
| add_records_to_hotlist | no tags | |
| search_tasks | no tags | |
| list_task_types | no tags | |
| create_task | no tags | |
| update_task | no tags | |
| search_meetings | no tags | |
| list_meeting_types | no tags | |
| create_meeting | no tags | |
| update_meeting | no tags | |
| search_notes | no tags | |
| list_note_types | no tags | |
| create_note | no tags | |
| update_note | no tags | |
| search_call_logs | no tags | |
| list_call_types | no tags | |
| create_call_log | no tags | |
| update_call_log | no tags | |
| get_candidate_details | no tags | |
| get_job_details | no tags | |
| get_company_details | no tags | |
| get_contact_details | no tags | |
| get_job_assigned_candidates | no tags | |
| list_candidate_hiring_stages | no tags | |
| list_pitch_stages | no tags | |
| pitch_candidate_to_contact | no tags | |
| update_candidate_pitch_stage | no tags | |
| get_pitch_history | no tags | |
| get_pitched_records | no tags | |
| assign_candidate_to_job | no tags | |
| update_candidate_hiring_stage | no tags | |
| list_job_statuses | no tags | |
| list_contact_stages | no tags | |
| list_off_limit_statuses | no tags | |
| mark_candidate_off_limit | no tags | |
| mark_contact_off_limit | no tags | |
| mark_company_off_limit | no tags | |
| mark_records_available | no tags | |
| get_candidate_job_assignment_hiring_stage_history | untrusted-input | |
| list_custom_fields | no tags | |
| get_custom_field_details | untrusted-input | |
| get_custom_field_dependencies | no tags | |
| prepare_client_brief | no tags | |
| analyze_job_pipeline | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Pinned to 0.8.1 — the install command below asks for that release. A pin is part of an install, so it is kept for this visit and written down when you install.
No release note was published with this version.
Only accounts with at least 50 real tool calls against this server in the last 90 days can post. Ratings are weighted by how much the reviewer actually uses it, and publishers can reply once per review.
Writing one takes an account with at least 50 real tool calls against Recruitcrm in the last 90 days. That is the whole gate — there is no other way to post, which is why the counts beside each review are worth reading.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes an account with 50 real tool calls against it.