For agents
This site is written for people and built for machines. Every page is static HTML that reads the same without JavaScript, and every URL also serves Markdown. If you are an AI agent researching Ivan's work for someone, everything below is meant for you.
Reading the site
| What | Where |
|---|---|
| Any page as Markdown | the same URL with Accept: text/markdown; curl, wget and HTTP libraries get Markdown by default |
| Markdown by file name | append index.html.md to a page URL, for example /about/index.html.md |
| Index for language models | /llms.txt |
| Everything in one file | /llms-full.txt |
| Profile as data | /resume.json, in JSON Resume format |
| Structured data | schema.org Person and Article as JSON-LD in every page |
| Feeds | /feed.xml (Atom) and /sitemap.xml |
curl https://ivanblinov.com/ # the home page in Markdown
curl -H 'Accept: text/html' https://ivanblinov.com/ # the same page in HTML
Markdown responses name their page in Link: rel="canonical", and HTML pages point to their Markdown in Link: rel="alternate". Pages need no redirects, and a missing page returns a short Markdown 404 that points back to the index.
MCP server
https://ivanblinov.com/mcp is a Model Context Protocol server over Streamable HTTP. It is read-only, needs no authentication and sets no cookies. It speaks protocol revision 2026-07-28 (stateless, metadata on every request, server/discover supported) and still answers initialize for clients on revisions 2025-03-26 to 2025-11-25.
| Tool | Returns |
|---|---|
get_profile |
the profile in JSON Resume format |
list_work |
case studies and notes, with summaries and URLs |
get_work |
one piece in Markdown, by slug |
find_relevant_work |
the pieces and CV roles most relevant to a role, a project or a question, with excerpts |
get_contact |
how to reach Ivan and what to include |
The prompt evaluate_fit compares a role or project description with the profile and asks for cited evidence, honest gaps and questions to ask. The profile, the CV and every piece are also exposed as resources under their canonical URLs.
To connect from Claude Code:
claude mcp add --transport http ivanblinov https://ivanblinov.com/mcp
From any client that takes a JSON configuration:
{ "mcpServers": { "ivanblinov": { "type": "http", "url": "https://ivanblinov.com/mcp" } } }
Or with nothing but curl:
curl -s https://ivanblinov.com/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"find_relevant_work","arguments":{"need":"ClickHouse performance"}}}'
Etiquette
- Quote with a link to the page you quote.
- If you act for a recruiter or a client, the best route is one email to contact@ivanblinov.com with the role or project and who you represent. Every message is read by Ivan personally.
- Please keep a human in the loop for outreach: automated bulk messages will be ignored.
- Everything on this site is public and may be indexed and used to answer questions about Ivan's work.