candidate-eval-api
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@candidate-eval-apiEvaluate candidate C001 for job J100 and show the result"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Candidate Eval API
A lightweight backend service for evaluating candidates against job requirements using FastAPI, asynchronous Python, and MCP (Model Context Protocol).
The project demonstrates how to build a production-style AI/backend service where the same evaluation capabilities can be accessed through both REST APIs and MCP tools.
๐ฏ Project Overview
Candidate Eval API simulates an AI-powered candidate evaluation system.
A client can submit a candidate and job information, trigger an evaluation, and retrieve the evaluation result through REST APIs.
An AI agent can perform similar operations through MCP tools.
โโโโโโโโโโโโโโโโโโโโ
โ Client โ
โโโโโโโโโโฌโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโ
โ FastAPI โ
โ REST APIs โ
โโโโโโโโโโฌโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโ
โ Evaluation โ
โ Service โ
โ โ
โ Async Processing โ
โโโโโโโโโโฌโโโโโโโโโโ
โฒ
โ
โโโโโโโโโโดโโโโโโโโโโ
โ MCP Server โ
โ โ
โ MCP Tools โ
โโโโโโโโโโโโโโโโโโโโRelated MCP server: MCP Job Matching Server
โจ Key Features
REST APIs built with FastAPI
Asynchronous request processing using asyncio
Concurrent execution using
asyncio.gather()Custom FastAPI middleware
Request ID and processing-time tracking
Pydantic request/response validation
In-memory evaluation storage
MCP server with evaluation tools
Shared business logic between REST APIs and MCP
Basic automated testing with pytest
๐ ๏ธ Tech Stack
Technology | Purpose |
Python | Application development |
FastAPI | REST API framework |
Pydantic | Data validation |
asyncio | Asynchronous/concurrent processing |
MCP | AI-agent tool interface |
pytest | Testing |
HTTPX | API testing |
๐ Repository Structure
candidate-eval-api/
โ
โโโ app/
โ โโโ __init__.py
โ โโโ main.py # FastAPI application and REST endpoints
โ โโโ models.py # Pydantic models
โ โโโ service.py # Evaluation business logic
โ โโโ middleware.py # Request middleware
โ โโโ mcp_server.py # MCP server and tools
โ
โโโ tests/
โ โโโ __init__.py # Test package
โ
โโโ requirements.txt
โโโ README.md
โโโ .gitignoreThe application follows a simple separation of concerns:
API Layer
โ
Service Layer
โ
Data / StorageBoth FastAPI and MCP are intended to use the same service layer rather than duplicating business logic.
๐ Getting Started
1. Clone the repository
git clone <repository-url>
cd candidate-eval-api2. Create a virtual environment
Windows
python -m venv .venv
.venv\Scripts\activateLinux / macOS
python -m venv .venv
source .venv/bin/activate3. Install dependencies
pip install -r requirements.txt4. Start the FastAPI application
uvicorn app.main:app --reloadThe API will be available at:
http://127.0.0.1:8000Interactive API documentation:
http://127.0.0.1:8000/docs๐ REST API
The application exposes endpoints for managing candidate evaluations.
Create Evaluation
POST /evaluationsExample request:
{
"candidate_id": "C001",
"job_id": "J100",
"skills": [
"python",
"fastapi",
"aws"
]
}Get Evaluation
GET /evaluations/{evaluation_id}Run Evaluation
POST /evaluations/{evaluation_id}/runRun Batch Evaluation
POST /evaluations/{evaluation_id}/run-batchAPI behavior and implementation are intentionally evolving as the project is developed.
๐ค MCP Interface
The project also exposes candidate evaluation functionality through MCP.
Planned tools include:
evaluate_candidate
Evaluates a candidate against a job and returns an evaluation result.
get_evaluation
Retrieves an existing candidate evaluation.
The MCP interface allows an AI agent to interact with the evaluation service using structured tools rather than directly calling REST endpoints.
โก Async Processing
The evaluation workflow demonstrates asynchronous processing.
Independent evaluation operations such as:
Skill Analysis
Resume Analysis
Experience Analysiscan execute concurrently using:
asyncio.gather()This allows independent I/O-bound operations to execute concurrently instead of sequentially.
๐งฉ Middleware
Custom middleware is used to provide request-level observability.
Each response can include:
X-Request-ID
X-Process-TimeExample log:
GET /evaluations/E001 - 200 - 0.023sThis provides a foundation for request tracing and performance monitoring.
๐งช Testing
Tests are implemented using pytest.
Run the test suite with:
pytest๐บ๏ธ Future Improvements
Potential extensions include:
Persistent database storage
Authentication and authorization
Redis-based caching
Background task processing
Evaluation queues
Retry and timeout handling
Structured logging
Docker containerization
CI/CD pipeline
More comprehensive test coverage
Real LLM-based candidate evaluation
Additional MCP resources and tools
๐ Project Status
๐ง Work in Progress
This project is being developed incrementally to demonstrate practical backend engineering, asynchronous Python, FastAPI, and MCP integration patterns.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
CareerProof MCP gives AI agents direct access to a professional-grade career and workforce intelligence platform. Two namespaces: atlas_* for HR/TA teams (candidate evaluation, batch shortlisting, competency scoring, interview generation, JD analysis, custom eval frameworks, research reports) and ceevee_* for professionals (CV optimization, career positioning, salary intelligence, market reports). Backed by RAG knowledge from 50+ premium research sources (McKinsey, BCG, HBR, Gartner, WEF)
Query professional profiles, search candidates, and get AI-powered summaries and job fit analysis.
WorkorAI talent marketplace MCP: candidate job search and employer hiring with explainable matching
AI agent recruiting: talent pool match, reference checks, credit packs via Stripe MPP
Related MCP Servers
- AlicenseAqualityDmaintenanceManage Job using MCP: Manage Job, Candidates, Resumes, Salaries all within this one MCP tools It can solve problems like: You have 50 resumes to screen. Your AI assistant can reason about candidates, but it can't: Read PDFs/DOCX โ The AI can't open binary files Extract structured data โ Copy-pasting loses formatting, metrics, and context Compare at scale โ No consistent scoring across candida24721MIT
- FlicenseAqualityDmaintenanceAn MCP server that enables AI agents to evaluate candidate-job fit by calculating weighted match scores based on skills and requirements.2-
- AlicenseAqualityBmaintenanceEnables AI assistants to query Moka recruitment system data including candidates, jobs, pipelines, and talent pools through read-only MCP tools.131MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, score, and track job applications from ATS boards via MCP, with explainable matching and an append-only application history.MIT
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/sumitdas1984/TalentLens'
If you have feedback or need assistance with the MCP directory API, please join our Discord server