Skip to main content
Glama
QUICK_REFERENCE.md5.14 kB
# CATS MCP Server - Quick Reference ## Tool Names & Endpoints ### Candidates ```python list_candidates(limit=20, offset=0, status=None, search=None, job_id=None) # GET /candidates get_candidate(candidate_id) # GET /candidates/{candidate_id} create_candidate(first_name, last_name, email, phone=None, resume_url=None, ...) # POST /candidates update_candidate(candidate_id, first_name=None, last_name=None, email=None, ...) # PUT /candidates/{candidate_id} delete_candidate(candidate_id) # DELETE /candidates/{candidate_id} ``` ### Jobs ```python list_jobs(limit=20, offset=0, status=None, department=None, location=None) # GET /jobs get_job(job_id) # GET /jobs/{job_id} create_job(title, description, department, location, employment_type="full-time", ...) # POST /jobs update_job(job_id, title=None, description=None, status=None, ...) # PUT /jobs/{job_id} delete_job(job_id) # DELETE /jobs/{job_id} ``` ### Applications ```python list_applications(limit=20, offset=0, job_id=None, candidate_id=None, status=None) # GET /applications get_application(application_id) # GET /applications/{application_id} create_application(candidate_id, job_id, cover_letter=None, referral_source=None) # POST /applications update_application_status(application_id, status, notes=None) # PUT /applications/{application_id}/status withdraw_application(application_id, reason=None) # POST /applications/{application_id}/withdraw ``` ### Interviews ```python list_interviews(limit=20, offset=0, application_id=None, candidate_id=None, status=None, interviewer_id=None) # GET /interviews get_interview(interview_id) # GET /interviews/{interview_id} schedule_interview(application_id, scheduled_at, duration_minutes=60, interview_type="technical", interviewer_ids=[], ...) # POST /interviews update_interview(interview_id, scheduled_at=None, status=None, location=None, ...) # PUT /interviews/{interview_id} cancel_interview(interview_id, reason=None) # POST /interviews/{interview_id}/cancel submit_interview_feedback(interview_id, interviewer_id, rating, feedback, recommendation, strengths=None, weaknesses=None) # POST /interviews/{interview_id}/feedback ``` ## Common Workflows ### Hire a Candidate ```python # 1. Search for candidates candidates = await list_candidates(search="john@example.com") # 2. Get candidate details candidate = await get_candidate(candidates["candidates"][0]["id"]) # 3. Find open jobs jobs = await list_jobs(status="open", department="Engineering") # 4. Create application app = await create_application( candidate_id=candidate["id"], job_id=jobs["jobs"][0]["id"] ) # 5. Move to interview await update_application_status(app["id"], "interview") # 6. Schedule interview interview = await schedule_interview( application_id=app["id"], scheduled_at="2025-11-01T14:00:00Z", interviewer_ids=[101, 102] ) # 7. Submit feedback await submit_interview_feedback( interview_id=interview["id"], interviewer_id=101, rating=5, recommendation="strong_hire" ) # 8. Make offer await update_application_status(app["id"], "offer") ``` ### Post a Job ```python # 1. Create job posting job = await create_job( title="Senior Software Engineer", description="We are seeking...", department="Engineering", location="Remote", salary_min=150000, salary_max=200000, status="draft" ) # 2. Review and publish await update_job(job["id"], status="open") # 3. Check applications apps = await list_applications(job_id=job["id"]) # 4. Close when filled await update_job(job["id"], status="filled") ``` ### Manage Interviews ```python # List upcoming interviews upcoming = await list_interviews(status="scheduled") # Reschedule an interview await update_interview( interview_id=123, scheduled_at="2025-11-02T10:00:00Z", status="rescheduled" ) # Cancel if needed await cancel_interview(123, reason="Candidate unavailable") # Get all interviews for a candidate candidate_interviews = await list_interviews(candidate_id=456) ``` ## Status Values ### Candidate - `active` | `archived` | `hired` | `rejected` | `withdrawn` ### Application - `submitted` | `reviewing` | `interview` | `offer` | `accepted` | `rejected` | `withdrawn` ### Job - `draft` | `open` | `closed` | `filled` | `cancelled` ### Interview - `scheduled` | `completed` | `cancelled` | `rescheduled` ## Error Codes - **400**: Bad request - check parameters - **401**: Unauthorized - check API key - **403**: Forbidden - insufficient permissions - **404**: Not found - resource doesn't exist - **429**: Rate limited - slow down requests - **500+**: Server error - retry later ## Environment Setup ```bash # .env file CATS_API_BASE_URL=https://api.your-cats-instance.com/v1 CATS_API_KEY=your_bearer_token_here ``` ## Start Server ```bash cd /home/vanman2025/Projects/ai-dev-marketplace/cats-mcp-server ./start.sh ``` Or: ```bash python server.py ``` Server runs on: `http://localhost:8000` ## Claude Desktop Config ```json { "mcpServers": { "cats-api": { "url": "http://localhost:8000/mcp" } } } ```

Latest Blog Posts

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/vanman2024/cats-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server