Talent Intelligence MCP
Click on "Deploy 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., "@Talent Intelligence MCPAnalyze this resume and suggest best-matching job requisitions."
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.
Talent Intelligence MCP Gateway (Backend Services & MCP Layer)
Welcome to the Talent Intelligence MCP Gateway learning project! This repository contains both the internal backend microservices and the Model Context Protocol (MCP) Gateway layer that exposes high-level agentic capabilities to AI clients and assistants.
1. Project Overview
The Talent Intelligence project demonstrates how an intelligent agent or client (e.g., Claude Desktop, MCP Inspector, or any AI assistant) can interact with diverse backend HR and talent systems using a single unified protocol: the Model Context Protocol (MCP).
The system is organized into two distinct layers:
Internal REST Microservices: Dedicated backend services managing resumes, job specs, and candidate-job matching.
MCP Gateway: A protocol adapter and orchestrator running over Streamable HTTP that translates standard MCP protocol commands (
tools/list,tools/call) into internal HTTP REST calls while maintaining end-to-end correlation tracing.
Related MCP server: Nexoraa MCP Server
2. Why Three Separate Backend Services?
In modern software engineering and enterprise HR technology stacks, services are rarely monolithic. Different capabilities often live in separate systems:
An Applicant Tracking System (ATS) or Resume Parsing engine handles CVs and profile ingestion.
A Job Requisition System parses job descriptions and defines role requirements.
A Scoring / Matching Engine compares candidates against job requirements.
By building three separate microservices:
We simulate a realistic multi-service enterprise environment.
We demonstrate the core value of an MCP Gateway: acting as a single, intelligent façade that hides service fragmentation, handles routing, and combines multi-service responses into high-level agentic tools.
3. Architecture Diagram
MCP Client / Python MCP Client / Inspector
|
| JSON-RPC over Streamable HTTP (:8000/mcp)
v
+----------------------------------+
| MCP Gateway |
| (Talent Intelligence MCP) |
| |
| Discovery : tools/list |
| Execution : tools/call |
| Tracing : X-Request-ID |
| |
| Exposed Semantic Tools (5): |
| [Atomic Tools] |
| - inspect_resume |
| - analyze_job |
| - compare_skills |
| [Composite Capabilities] |
| - generate_candidate_report |
| - create_candidate_shortlist |
+----------------+-----------------+
|
| Internal HTTP REST (HTTPX)
v
+--------------------+--------------------+
| | |
v v v
Resume API Job API Matching API
:8001 :8002 :80034. Installation Requirements
Operating System: Windows 10/11, macOS, or Linux
Python: Version 3.11 or newer (Python 3.12 verified)
Git: Required for version control
Terminal: PowerShell, Command Prompt, or Bash
5. Python Installation (Windows)
If Python is missing on Windows, install Python 3.12 via Windows Package Manager:
winget install --id Python.Python.3.12 -e --accept-source-agreements --accept-package-agreementsVerify installation:
python --version
pip --version6. Git Installation (Windows)
If Git is missing, install it via winget:
winget install --id Git.Git -e --accept-source-agreements --accept-package-agreementsVerify installation:
git --version7. Virtual Environment Setup
Always use a Python virtual environment to keep dependencies isolated:
# Navigate to the project root
cd "d:\MCP Project\talent-intelligence-mcp"
# Create .venv
python -m venv .venv
# Activate the virtual environment on Windows (PowerShell)
.\.venv\Scripts\Activate.ps18. Dependency Installation
With the virtual environment activated, install the required packages:
pip install -r requirements.txtInstalled core packages:
fastapi— High-performance modern web frameworkuvicorn— Lightning-fast ASGI web serverpydantic— Data validation and parsinghttpx— Async HTTP client for backend service communicationmcp[cli]— Official Model Context Protocol Python SDK v2
9. How to Start All Services
Open four separate terminals (or run as background processes), activate .venv, and start each service:
Terminal 1: Resume Service (Port 8001)
.\.venv\Scripts\python.exe -m uvicorn services.resume_service.main:app --port 8001Terminal 2: Job Service (Port 8002)
.\.venv\Scripts\python.exe -m uvicorn services.job_service.main:app --port 8002Terminal 3: Matching Service (Port 8003)
.\.venv\Scripts\python.exe -m uvicorn services.matching_service.main:app --port 8003Terminal 4: MCP Gateway (Port 8000)
.\.venv\Scripts\python.exe -m uvicorn mcp_gateway.server:app --host 127.0.0.1 --port 800010. Port & Endpoint Mapping
Service Name | Port | Base URL / Protocol | Primary Endpoints |
Resume Service |
| HTTP REST |
|
Job Service |
| HTTP REST |
|
Matching Service |
| HTTP REST |
|
MCP Gateway |
| Streamable HTTP (MCP) |
|
11. Backend Health Endpoints
Each backend service exposes a simple health probe returning HTTP 200:
GET http://localhost:8001/healthGET http://localhost:8002/healthGET http://localhost:8003/health
12. Interactive Backend API Docs
Resume Service Docs: http://localhost:8001/docs
Job Service Docs: http://localhost:8002/docs
Matching Service Docs: http://localhost:8003/docs
13. Phase 2 — Atomic MCP Capabilities
Atomic capabilities correspond 1-to-1 with a backend domain capability:
inspect_resumeDescription: Inspect and parse raw candidate resume text into structured candidate profile data.
Arguments:
resume_text: str(required)Routes to: Resume Service (
POST /inspect)
analyze_jobDescription: Analyze job description text and extract title, required skills, and experience requirements.
Arguments:
job_description: str(required)Routes to: Job Service (
POST /analyze)
compare_skillsDescription: Compare candidate skills against job required skills and calculate match percentage.
Arguments:
candidate_skills: list[str],required_skills: list[str](required)Routes to: Matching Service (
POST /compare)
14. Phase 3 — Composite MCP Capabilities
In real enterprise systems, an AI agent often needs high-level business answers rather than performing multiple micro-steps manually. Composite MCP Capabilities orchestrate multiple lower-level microservices inside the gateway and return a single, rich, unified result.
MCP CLIENT
|
v
MCP GATEWAY :8000
|
+----------+----------+
| | |
v v v
Resume Job Matching
:8001 :8002 :8003Atomic vs. Composite Capabilities
[Atomic Capability]
inspect_resume ──────────> Resume Service (:8001)
[Composite Capability 1: generate_candidate_report]
generate_candidate_report ──┬──> Resume Service (:8001/inspect)
├──> Job Service (:8002/analyze)
└──> Matching Service (:8003/compare)
───> Combined Unified Assessment
[Composite Capability 2: create_candidate_shortlist]
create_candidate_shortlist ─┬──> Job Service (:8002/analyze)
├──> Loop Resumes (Resume :8001/inspect)
├──> Loop Matches (Matching :8003/compare)
└──> Deterministic Ranked ShortlistCritical Architecture Rule: Direct Internal Orchestration
The MCP Gateway does NOT recursively call itself through MCP. Calling tools through JSON-RPC loops over network ports creates latency and protocol overhead. Instead, composite tools orchestrate private async helper functions (_call_resume_service, _call_job_service, _call_matching_service) that talk directly to backend REST APIs.
The Two Composite Tools
generate_candidate_reportDescription: Generate a comprehensive candidate evaluation report by orchestrating resume inspection, job analysis, and skill comparison.
Inputs:
resume_text: str,job_description: strReturns:
{ "candidate": { "name": "Alex Johnson", "skills": ["Python", "SQL", "FastAPI", "Docker"], "experience_years": 4, "education": "B.Tech" }, "job": { "title": "Backend Software Engineer", "required_skills": ["Python", "SQL", "REST API"], "experience_required": 3 }, "skill_match": { "matched": ["Python", "SQL"], "missing": ["REST API"], "match_percentage": 66.67 }, "overall_assessment": "Good technical match with some skill gaps. Experience requirement met (4 years vs 3 required)." }
create_candidate_shortlistDescription: Evaluate multiple candidate resumes against a job description and generate a ranked candidate shortlist.
Inputs:
job_description: str,resumes: list[str]Ranking Algorithm:
Primary:
match_percentage(descending)Secondary (Tie-breaker):
experience_years(descending)Sequential ranks assigned starting at 1.
Returns:
{ "job": { "title": "Backend Software Engineer", "required_skills": ["Python", "SQL", "REST API"], "experience_required": 3 }, "candidates": [ { "rank": 1, "name": "Candidate Gamma", "match_percentage": 100.0, "matched_skills": ["Python", "SQL", "REST API"], "missing_skills": [], "experience_years": 6 }, { "rank": 2, "name": "Candidate Alpha", "match_percentage": 66.67, "matched_skills": ["Python", "SQL"], "missing_skills": ["REST API"], "experience_years": 5 } ], "total_candidates": 2 }
15. Single Correlation ID Tracing for Composite Workflows
When a composite capability is executed, the gateway generates one correlation ID representing the entire business transaction. Every backend call made across all microservices carries this exact same X-Request-ID:
MCP Client (tools/call: generate_candidate_report)
│
▼
MCP Gateway: generates [mcp-req-report-c66a69f3]
logs: [mcp-req-report-c66a69f3] tool=generate_candidate_report started
│
├── [mcp-req-report-c66a69f3] POST :8001/inspect ──> Resume Service logs: [mcp-req-report-c66a69f3] POST /inspect 200
├── [mcp-req-report-c66a69f3] POST :8002/analyze ──> Job Service logs : [mcp-req-report-c66a69f3] POST /analyze 200
└── [mcp-req-report-c66a69f3] POST :8003/compare ──> Matching Service logs: [mcp-req-report-c66a69f3] POST /compare 200
│
▼
MCP Gateway: logs: [mcp-req-report-c66a69f3] tool=generate_candidate_report completed
│
▼
MCP Client receives unified composite report16. Comprehensive Verification Suite
Run the full end-to-end automated test suite:
.\.venv\Scripts\python.exe test_mcp_gateway.pyThis suite validates:
Tool Discovery: Exactly 5 tools exposed with valid JSON schemas.
Atomic Tools:
inspect_resume,analyze_job,compare_skills.Composite Report: Full orchestration across 3 services.
Candidate Shortlist: Multi-candidate evaluation with Candidate C ranked #1 (100% match, 6 yrs).
Tie-Breaking: Equal match percentage broken by higher experience years.
Input Validation: Clean
[INVALID_INPUT]semantic errors without stack trace leakage.Correlation ID Consistency: Verified via console logs.
MCP Inspector Note: MCP Inspector was not executed via
npxbecause Node.js/npx is not installed on this machine. MCP protocol compliance, tool discovery, and routing behavior are fully verified using the official Python MCP client.
This server cannot be deployed
Maintenance
Related MCP Connectors
Resume builder with native MCP — create and edit resumes from your AI assistant.
Let AI agents query data and act across all your business apps via MCP.
Query InterviewFlowAI candidate and interview data from MCP-compatible AI assistants.
WorkorAI talent marketplace MCP: candidate job search and employer hiring with explainable matching
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables JD-aware resume matching through MCP tools, providing deterministic scoring, gap analysis, bullet rewrites, and tailored cover letter generation.3 npmMIT
- FlicenseNot gradedqualityCmaintenanceExposes 36 skills covering 137 AI jobs across 7 departments, enabling AI workforce deployment and management through any MCP client.-
- 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
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to recommend jobs, parse candidate profiles, compute semantic skill match scores, and filter opportunities by location through standardized MCP tools.-