Recruit CRM MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SENTRY_DSN | No | Fallback DSN if you already export it globally. RECRUIT_CRM_MCP_SENTRY_DSN takes precedence. | |
| RECRUIT_CRM_API_KEY | Yes | Recruit CRM API token | |
| RECRUIT_CRM_MCP_ENV | No | Sentry environment tag. | production |
| RECRUIT_CRM_MCP_SENTRY_DSN | No | Your own Sentry project DSN. If set, tool-call exceptions and per-tool usage telemetry are auto-reported to that project. | |
| RECRUIT_CRM_MCP_SENTRY_TRACES_RATE | No | Sentry trace sample rate (0.0–1.0). | 1.0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Check that the Recruit CRM MCP server is running and configured. |
| search_candidatesA | Search for candidates by name, email, location, or date range. Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent candidates. Date params use YYYY-MM-DD format. Returns a list of matching candidate summaries. |
| get_candidateB | Get full profile details for a specific candidate by slug or ID. |
| list_jobsA | List job requisitions without any filters. Returns jobs in reverse chronological order. Use search_jobs instead when you need to filter by status or other fields. |
| search_jobsA | Search for jobs by status, name, location, company, date range, or owner. Filters are optional and combined with AND logic. Status accepts a label: 'Open', 'On Hold', 'Closed', 'Placed', 'Canceled', 'Refill'. Date params use YYYY-MM-DD format. Use list_users to find valid owner_id values. With no filters, returns an empty list. |
| get_jobA | Get full details for a specific job by slug or ID. |
| get_assigned_candidatesA | Get candidates assigned to a specific job and their hiring stage. Returns candidate summaries with their current hiring status for the given job. Use status_id to filter by a specific hiring stage. |
| get_contactA | Get full details for a specific contact by slug. |
| search_contactsA | Search for contacts by name, email, company, or date range. Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent contacts. Date params use YYYY-MM-DD format. |
| get_companyA | Get full details for a specific company by slug. |
| search_companiesA | Search for companies by name, date range, or owner. Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent companies. Date params use YYYY-MM-DD format. sort_by accepts 'createdon' or 'updatedon'. sort_order accepts 'asc' or 'desc'. Set exact_search=True for exact name matching (default is fuzzy/like matching). Use list_users to find valid owner_id values. |
| get_noteA | Get full details for a specific note by ID. The |
| search_notesA | Search for notes by date range. Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent notes. Date params use YYYY-MM-DD format. |
| get_taskA | Get full details for a specific task by ID. The |
| search_tasksA | Search for tasks by title, date range, or owner. Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent tasks. Date params use YYYY-MM-DD format. Use list_users to find valid owner_id values. |
| get_meetingA | Get full details for a specific meeting by ID. The |
| search_meetingsA | Search for meetings by title, date range, or owner. Provide at least one filter for targeted results. Filters are combined with AND logic. With no filters, returns a paginated list of recent meetings. Date params use YYYY-MM-DD format. Use list_users to find valid owner_id values. |
| list_usersA | List all team members/users. Useful for discovering owner IDs to use with the search_jobs owner_id filter. Returns id, name, email, and role for each user. |
| list_note_typesA | List all note types available in the account. Returns {id, label} pairs suitable for passing as note_type_id on note writes. |
| list_meeting_typesA | List all meeting types available in the account. Returns {id, label} pairs suitable for passing as meeting_type_id on meeting writes. |
| list_task_typesA | List all task types available in the account. Returns {id, label} pairs suitable for passing as task_type_id on task writes. |
| list_hiring_pipelinesA | List all hiring pipelines configured in the account. Pipeline ID 0 is the master hiring pipeline. Use list_hiring_pipeline_stages with the returned id to inspect stages for a specific pipeline. |
| list_hiring_pipeline_stagesA | List hiring pipeline stages for a given pipeline. Use pipeline_id=0 for the master hiring pipeline. Returns {id, label} stage entries suitable for filtering assigned candidates by hiring stage. |
| list_contact_stagesA | List sales pipeline stages (contact stages). Returns {id, label} pairs for each stage in the sales pipeline. |
| list_industriesA | List all industries available in the account. Returns {id, label} pairs suitable for populating a company's industry_id. |
| list_company_custom_fieldsA | List all company custom fields defined in the account. Returns {id, label} pairs where id is the field_id and label is the field name. |
| list_contact_custom_fieldsA | List all contact custom fields defined in the account. Returns {id, label} pairs where id is the field_id and label is the field name. |
| list_job_custom_fieldsA | List all job custom fields defined in the account. Returns {id, label} pairs where id is the field_id and label is the field name. |
| list_candidate_custom_fieldsA | List all candidate custom fields defined in the account. Returns {id, label} pairs where id is the field_id and label is the field name. |
| log_meetingA | Log a meeting via POST /v1/meetings. Dates use ISO 8601 (e.g. |
| create_noteA | Create a note via POST /v1/notes.
|
| update_noteA | Update an existing note via POST /v1/notes/{id} — partial update. Only provided fields are sent; omitted fields are preserved server-side.
|
| create_taskB | Create a task via POST /v1/tasks.
|
| update_taskA | Update an existing task via partial POST to /v1/tasks/{id}. Only non-None fields are forwarded; omitted fields are preserved.
|
| create_companyA | Create a company via POST /v1/companies.
|
| update_companyA | Update a company via partial POST to /v1/companies/{slug}. Only non-None fields are forwarded; omitted fields are preserved server-side
(the API's required |
| set_company_custom_fieldsA | Set custom-field values on a company without touching any standard fields. Thin wrapper over |
| create_contactA | Create a contact via POST /v1/contacts.
|
| update_contactA | Update a contact via partial POST to /v1/contacts/{slug}. Only non-None fields are forwarded; omitted fields are preserved server-side. |
| set_contact_custom_fieldsB | Set custom-field values on a contact without touching any standard fields. |
| create_jobA | Create a job requisition via POST /v1/jobs. Seven fields are required:
Use |
| update_jobA | Update a job requisition via partial POST to /v1/jobs/{slug}. Only non-None fields are forwarded; omitted fields are preserved server-side. Only the fields most commonly edited are exposed; use the full |
| set_job_custom_fieldsA | Set custom-field values on a job without touching any standard fields. |
| create_candidateC | Create a candidate via POST /v1/candidates.
|
| update_candidateB | Update a candidate via partial POST to /v1/candidates/{slug}. Only non-None fields are forwarded; omitted fields are preserved server-side
(the API's required |
| set_candidate_custom_fieldsB | Set custom-field values on a candidate without touching any standard fields. |
| update_meetingA | Update a meeting via partial POST to /v1/meetings/{id}. Only non-None fields are forwarded; omitted fields are preserved server-side.
Attendee and association lists are joined into comma-separated strings to
match the create-endpoint shape. |
| delete_noteA | Delete a note via DELETE /v1/notes/{id}. Returns a |
| assign_candidateB | Assign a candidate to a job via POST /v1/candidates/{slug}/assign. The target job is passed as a query param. No body is needed. |
| unassign_candidateB | Unassign a candidate from a job via POST /v1/candidates/{slug}/unassign. |
| update_hiring_stageA | Update a candidate's hiring stage for a specific job. POST /v1/candidates/{candidate_slug}/hiring-stages/{job_slug}. Use
|
| upload_fileA | Upload a file to Recruit CRM via POST /v1/files (multipart).
|
| report_issueA | Build a prefilled GitHub issue URL the user can click to report a bug. Use when the user wants to flag unexpected behavior in this MCP server (not a Recruit CRM data issue). Returns a URL that opens the public repo's new-issue form pre-populated with the summary, last error, and environment details — the user clicks it and submits in their browser. Pass any recent exception text via |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ebragas/recruitcrm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server