resume-mcp
The resume-mcp server provides tools to query a candidate's resume programmatically.
get_summary: Returns the candidate's name, professional label, and summary.
get_section: Retrieves a specific section:
work,education,skills, orprojects.search_by_skill: Finds work experiences and projects that mention a given skill (e.g., 'Kafka', 'C#').
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., "@resume-mcp What is your experience with TypeScript?"
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.
resume-mcp
My resume, as a single source of truth with three faces:
a website for humans,
a local (stdio) MCP server for AI agents on your machine,
a hosted (HTTP) MCP server any remote client can connect to,
all reading one resume.json and one shared search function, so nothing drifts.
Live:
Hosted MCP endpoint: https://surya-resume-site.suryakapila.workers.dev/mcp
The point is the shape, not the size: a typed boundary, validated arguments, predictable payloads. The same backend systems I build every day.
Layout
resume.json <- the single source of truth (JSON Resume schema)
shared/search.ts <- searchBySkill(resume, skill), imported by every artifact
server-local/ <- stdio MCP server (Claude Desktop, Claude Code)
site/ <- React Router v7 site + hosted /mcp endpoint, on Cloudflare WorkersEverything reads the one resume.json and the one shared/search.ts, so
the data and the tool logic can never drift between artifacts.
Tools: get_summary · get_section (work | education | skills | projects) · search_by_skill
Resource: resume://full (application/json)
Related MCP server: resume-mcp
1. Local MCP server (stdio)
Exposes the resume as callable tools instead of prose.
Build & run
npm install
npm run build # tsc -> dist/server-local/src/index.js
npm start # runs the stdio serverConnect to Claude Desktop
Add to claude_desktop_config.json, then fully quit and reopen Claude Desktop:
{
"mcpServers": {
"resume": {
"command": "node",
"args": ["/absolute/path/to/resume-mcp/dist/server-local/src/index.js"]
}
}
}Then ask your own Claude, e.g. "use the resume server to search for Kafka".
2. Hosted MCP endpoint (HTTP)
Live at https://surya-resume-site.suryakapila.workers.dev/mcp (Streamable HTTP).
It exposes the same tools and resource as the local server, reads the same
resume.json + shared/search.ts, and needs no clone and no key. It runs as a
Durable Object (site/workers/mcp.ts) mounted into the site Worker.
Connect it from any MCP client:
Claude (Desktop or web): Settings, then Connectors, then Add custom connector, and paste the URL.
Claude Code:
claude mcp add --transport http resume https://surya-resume-site.suryakapila.workers.dev/mcpAnything else: add an MCP server with the Streamable HTTP transport and the URL. Opening the URL in a browser shows a short explainer page, not the raw protocol.
3. The website
An editorial one-pager (the "Classical" design system) that renders from
resume.json and documents the MCP servers.
cd site
npm install
npm run dev # http://localhost:5173 (hot reload)
npm run build # production build
npm run deploy # build + wrangler deploy (needs `wrangler login` first)The site's /resume.json route serves the repo-root resume.json verbatim,
no copy, so the download, the page and the MCP servers always agree.
Surya Prakash Rao Kapila, Hyderabad, India.
Available Tools
3 toolsget_sectionGet sectionA
Return one section of the resume: work, education, skills, or projects.
Inputs: section (required).
get_summaryGet summaryA
Return the candidate's name, label, and professional summary.
Inputs: no named parameters.
search_by_skillSearch by skillB
Find the work experiences and projects where a given skill or technology was used.
Inputs: skill (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool serves a distinct purpose: get_summary returns high-level overview, get_section retrieves a specific section, and search_by_skill finds contextual uses of a skill. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern in lowercase snake_case: get_summary, get_section, search_by_skill. Even with different verbs, the pattern is uniform and predictable.
With 3 tools, the set is well-scoped for a resume MCP server, covering summary, section retrieval, and skill-based search. It is neither too thin nor bloated.
The tool surface fully covers the read-only resume domain: overview, individual sections, and cross-referencing skills. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server for managing career experience data using the JSON Resume schema with custom extensions. It enables AI agents to store, update, and retrieve detailed work history, projects, and achievements to facilitate tailored resume generation.-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides a structured API for AI agents to query a person's resume, including profile, projects, writing, and gated access to experience and skills.MIT
- AlicenseNot gradedqualityDmaintenanceExposes a personalized AI agent that reads your resume and provides intelligent responses about your professional background through a standardized MCP server interface with RAG capabilities.MIT
- AlicenseAqualityDmaintenanceA resume MCP server that enables AI agents to search work history by keyword or meaning, retrieve detailed company info, and send scheduling emails, turning a static resume into interactive tools.3MIT