For agents

This site is built to be read by AI agents as easily as by people. Everything here is public and free to use.

Try the Agent switch at the top of any page to see the Markdown an agent gets from that URL.

Endpoints

/llms.txt
Index of the site in the llms.txt format.
/llms-full.txt
The whole site — profile, resume, every post — in one Markdown file.
/resume.json
Resume in the JSON Resume schema.
/resume.md
Resume as Markdown.
/writing.md
Index of posts as Markdown. Every page has a twin at its path plus .md.
/rss.xml
RSS feed of new writing.
/sitemap-index.xml
Sitemap.

Content negotiation

Send Accept: text/markdown to any page and you get the Markdown version from the same URL.

curl -s -H 'accept: text/markdown' https://derikcallahan.com/resume

MCP server

A read-only Model Context Protocol server runs at /api/mcp, using stateless Streamable HTTP. Its tools are get_profile, get_resume, list_posts, get_post, and search, and every post is also available as a resource.

Add it to an MCP client:

{
  "mcpServers": {
    "derik-callahan": {
      "type": "http",
      "url": "https://derikcallahan.com/api/mcp"
    }
  }
}

Or call it directly:

curl -s https://derikcallahan.com/api/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

For Claude Code: claude mcp add --transport http derik-callahan https://derikcallahan.com/api/mcp

Notes for summarizers