The MCP Server Behind Janisheck.com

The MCP Server Behind Janisheck.com

The MCP Server Behind Janisheck.com

MAY 06, 2026

Most personal sites give agents HTML and hope for the best. This one runs an MCP server. Any agent that speaks Model Context Protocol can plug in and query me directly — no scraping, no parsing, no guessing what I do.

I covered the full agent-discovery stack in an earlier post. This one goes deep on just the MCP layer — what's exposed, how it works, and why it's the most useful thing I've shipped on this site.

The janisheck.com MCP server

What MCP Actually Is

Model Context Protocol is Anthropic's open standard for plugging tools and data into AI agents. JSON-RPC 2.0 over HTTP. The agent calls resources/list, resources/read, tools/list, and tools/call. The server returns structured data the model can reason about.

It's the agent version of an OpenAPI spec — except the spec is consumed at runtime by Claude or any other MCP-aware client. The agent discovers what's available and calls what it needs.

Six Resources

The server exposes six profile resources at profile:// URIs. summary, skills, experience, projects, recommendations, availability. Each one returns clean JSON.

Plus 270-plus blog posts at blog:// URIs. An agent can list them all, read any single post, or search across the whole archive without ever touching the rendered HTML.

No auth. No API keys. Anonymous read access for everything. The whole point is to be cheap to query.

Four Tools

searchProjects filters my work by technology or industry. searchBlog ranks posts by keyword across the full archive. getContactInfo returns email, LinkedIn, GitHub, location, and current availability.

And the fourth — the one I'm most proud of — is evaluateFit.

evaluateFit, the Built-In Recruiter

Send a job description. The tool flattens my full profile into a prompt, runs it through gpt-5-nano, and returns structured JSON: a fit score from 0 to 100, matching skills, relevant experience, gaps, standout strengths, and a recommendation tier — strong, good, partial, or weak match.

An AI recruiting agent can evaluate my candidacy for a role in a single round-trip. No human in the loop. No scraping resume PDFs. No "let me forward this to my colleague and circle back."

There's a fallback. If the OpenAI key is missing, or the call exceeds 22 seconds — Netlify edge functions get killed at 30 — the tool falls back to a deterministic match against my skill graph. The agent always gets a JSON response. It might be less nuanced, but it never gets a CDN timeout page instead of a result.

Belt, suspenders, and a backup belt.

Try It Right Now

No setup. The tester below sends real JSON-RPC requests to the live server. Pick a method, hit Send, watch what comes back.

Same widget lives full-screen at /mcp-test if you want more room.

How to Connect

The endpoint is https://www.janisheck.com/api/mcp. POST JSON-RPC requests. Add it to Claude Desktop with a five-line config block — full reference lives at /mcp-docs. Every method, every input schema, every response shape — documented against the running server, not a marketing pitch.

Real Numbers

Over 120,000 requests served. CORS open. Anonymous. Free. Most of those calls are agents probing resources/list and tools/list to see what's there. A nontrivial slice are real evaluateFit calls running real job descriptions.

I don't always know who's calling. That's the point. The infrastructure works whether I'm watching or not.

Why This Matters

An MCP server changes what a personal site is. It stops being a brochure and starts being an interface. The same way an API turned every SaaS company into a building block, MCP turns a person into one.

A recruiter's agent can score me before any human reads my resume. A founder's agent can check my project history against their stack before booking an intro. A hiring manager's agent can pull my availability before a calendar invite goes out.

None of those people need to load my site. They just need to know it speaks the protocol.

Mine does.