---
title: I put my portfolio behind an MCP server
description: api.heybrahim.com/mcp is a stateless MCP endpoint so any agent can look me up the way a recruiter would.
date: 2026-09-26
tags: mcp, ai-agents, portfolio
kind: short
---

Recruiters read a page. Agents need something they can call. So my portfolio's API now exposes a stateless MCP server over Streamable HTTP, no key required.

The tools are read-only and pull from the live site's own public files (profile.json, llms.txt, the markdown copies), cached for 5 minutes: `get_profile`, `get_availability`, `list_items` for work/projects/notes, `get_item` for a specific one in EN or FR, and `search` for keyword lookups with prose snippets.

The one exception is `request_cv`, which goes through the same `storeRequest` path as the site's form: same validation, same per-IP rate limit. A request made through MCP gets tagged `[via MCP]` so I can tell where it came from. The tool description tells agents to only call it on the user's explicit request, with their own name and email.

Tested locally against the official MCP TypeScript SDK client: all six tools return correct data in both languages, and bad input gets refused cleanly — a path-traversal slug, a one-character name, a malformed email.

Next step is getting it listed in the official MCP registry.
