Portfolio MCP Server
Exposing this site's data as MCP tools any AI client can query.
Cloudflare Workers · MCP SDK · TypeScript · Zod
Results
- 10
- MCP tools covering experience, projects, hiring info, quality metrics, and writing
- 2
- transports — remote (Streamable HTTP/SSE) and local (stdio)
- 5 min
- edge cache — new site data propagates with no server redeploy
Problem
Recruiters and AI assistants can only learn about a candidate by scraping HTML — brittle, lossy, and disconnected from whatever the candidate actually maintains. I wanted any MCP-aware AI client to be able to query my experience, projects, and skills as accurate, structured data instead.
Approach
- Built a Cloudflare Worker using the agents SDK's McpAgent, exposing 10 tools (experience, projects, skills, background, contact, hiring logistics, quality metrics, mentoring, and the blog) over both Streamable HTTP and legacy SSE.
- Added a prebuild step to this site that exports the same data.ts/posts.ts modules it renders from as static JSON — single source of truth, no duplicated resume data between the site and the server.
- Validated every fetched payload with Zod schemas, since the data crosses a network boundary between two separately deployed repos.
- Shipped both a remote transport (zero-install, via Claude Code/Desktop) and a bundled stdio entry point for local use.
How it flows
Site build
lib/data.ts
JSON export
public/data/*.json
Cloudflare Worker
fetch + 5min cache
MCP client
Claude, Cursor…
From the code
export function registerPortfolioTools(server: McpServer) {
server.registerTool(
"get_experience",
{
title: "Get work experience",
description:
"Ashish Kumar's work experience history — company, role, dates, responsibilities, quantified results, and business impact for each position.",
},
async () => jsonResult(await getExperience())
);
// … 6 more tools
}Outcome
A deployed MCP server that any MCP client can query for structured information about my background — verified end-to-end with the MCP Inspector CLI against both transports before calling it done.
Business Impact
A working demonstration of the exact skill I'm selling — deliberate AI-tooling integration — not just a bullet point claiming I know MCP.