All posts

Building My Own MCP Server: How I Taught Claude to Manage My Portfolio

9 min read
MCPAIClaudePortfolioNext.jsAutomation

A behind-the-scenes look at how I built a custom MCP server to let Claude manage my resumes and blog posts directly, turning my portfolio into a tool AI can actually use.

For the last few months, I've been deep in job-search mode: tailoring resumes for every single application, writing blog posts about what I'm learning, and constantly context-switching between developer and personal brand manager. At some point I got tired of doing this manually, and I thought: what if Claude could just do this for me, directly?

That's how my Resume and Blog MCP server was born.

What is MCP, anyway?

If you haven't run into it yet, MCP stands for Model Context Protocol. Think of it as a USB-C port for AI: instead of every AI assistant needing a custom, one-off integration for every tool or data source, MCP gives everyone a shared standard. Build one MCP server, and any MCP-compatible AI client, Claude included, can talk to it.

I actually wrote a whole post about this idea a while back if you want the deeper technical picture. But the short version: MCP servers expose tools that a model can call, the same way a human would click a button or run a script.

Why I built one for my own portfolio

My portfolio site already had a bunch of structured data sitting in a database: resumes, blog posts, project details. The problem was that every time I wanted to create a new tailored resume for a job application, or publish a new blog post, I had to log in, open an editor, and manually push everything through the UI.

So I built an MCP server that exposes my portfolio's core actions directly:

  • Creating and updating resumes.
  • Creating, updating, and deleting blog posts.
  • Listing everything that already exists.
  • Fetching a specific resume or post by ID.

Once that server was live, I connected it straight into Claude. Suddenly, instead of clicking through my own admin panel, I could just talk to Claude and say create a tailored resume for this React and TypeScript role, or draft a blog post about this new lesson I learned, and it would happen.

How it actually works under the hood

The server itself is built using Vercel's mcp-handler package, sitting on top of my existing Next.js app. Each tool I expose, like create resume or list blog posts, maps to a function that talks to my database. The MCP handler takes care of the protocol-level plumbing: registering the tools, validating the parameters Claude sends, and returning structured results back.

The genuinely fun part was designing the tool schemas themselves. I had to think carefully about what parameters Claude would actually need, and how to name things so an AI model could reliably guess the right way to call them. It's a strange kind of API design, you're not just writing for other developers anymore, you're writing for a model trying to reason about your system.

What changed once it was working

I now have a system where I fetch a job description, hand it to Claude, and ask it to create a tailored resume variant using a consistent naming convention, something like Company, Stack, Role. Claude pulls my base resume, adjusts the emphasis and skills section to match the posting, and saves it as a new variant, always keeping my original resume untouched as the current one.

For blogging, it's just as direct. I can describe a topic, and Claude drafts the post, tags it appropriately, and publishes it straight to my site through the same MCP connection, no copy pasting between chat windows and my CMS.

The bigger lesson

What surprised me most wasn't the time savings, though those are real. It was realizing how much of my own workflow could be described as a small set of well-defined actions. Once you expose those actions as tools, any capable AI model can pick them up and use them intelligently. My portfolio stopped being just a website that displays information, and became a system that Claude can actually operate.

If you're a developer sitting on some kind of personal system, a portfolio, a notes app, a side project dashboard, this is worth trying. You don't need to build something huge. Pick two or three actions you do repeatedly, wrap them as MCP tools, and see what it feels like to hand them to an AI assistant.

What's next

I'm planning to expand the server further, project management tools, maybe analytics on which resume variants actually get responses. If you build something similar, I'd genuinely love to hear about it.