Skip to main content
ashish.kumar
All projects

Portfolio MCP Server

Exposing this site's data as MCP tools any AI client can query.

Cloudflare Workers · MCP SDK · TypeScript · Zod

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 7 tools (get_experience, get_projects, get_skills, get_about, get_contact_info, list_blog_posts, get_blog_post) 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.

Results

7
MCP tools covering experience, projects, skills, and writing
2
transports — remote (Streamable HTTP/SSE) and local (stdio)
5 min
edge cache — new site data propagates with no server redeploy

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.