homeiammatthiasmenu

Quickstart

# Search the site
curl "https://iammatthias.com/api/search.json?q=cloudflare+workers"

# List one section
curl "https://iammatthias.com/api/content.json?section=recipes"

# Read a document as markdown
curl "https://iammatthias.com/posts/1779066375000-farfield.md"

# The whole corpus in one request
curl "https://iammatthias.com/llms-full.txt"

HTTP endpoints

GET /api/search-corpus.json
Every searchable item on the site (documents and feed posts) as compact text, each carrying its Farfield content hash (cid). Intended for building your own index; the site's own search embeds this locally in the browser.
GET /api/search-vectors.json
Precomputed embedding vectors for the corpus, keyed by cid, with the model name and dimension count. Built at deploy time with the ternlight model.
GET /api/content.json
Every published document as structured JSON: title, section, tags, dates, content hash, canonical URL, and markdown URL. Filterable by section and tag.
GET /api/search.json
Ranked keyword search over titles, excerpts, tags, and body text of every published document and feed post. Returns canonical and markdown URLs per hit.

Full specification: openapi.json. Errors are RFC 9457 problem documents carrying aresolution field that says how to retry.

MCP server

Streamable HTTP at https://iammatthias.com/mcp, no authentication. Add it to any MCP client:

{ "mcpServers": { "iammatthias": { "url": "https://iammatthias.com/mcp" } } }
  • search_site — Search Matthias Jordan's writing, photography notes, and recipes by keyword. Returns titles, excerpts, and both HTML and markdown URLs.
  • get_document — Fetch the full markdown source of one document by its path or slug, with front matter (title, dates, tags, content hash) and images resolved to public URLs.
  • list_sections — List the site's publications (art, posts, recipes, melange, open-source) with descriptions and entry counts.
  • list_recent — List the most recently published documents, newest first, optionally filtered to one section.

Preview the tools without connecting:server-card.json.

Markdown twins

Every content URL has a markdown twin at the same path plus.md, with front matter (title, dates, tags, content hash, canonical URL) and images resolved to public URLs. Section indexes live at /<section>.md, and each section has scoped context at /<section>/llms.txt.

Everything else

  • llms.txt site map — Index of every published document with links to its markdown twin.
  • Full corpus in one file — Every published document, front matter included, in a single markdown file.
  • iammatthias.com MCP server — Streamable HTTP MCP server exposing site search and document retrieval as tools. No authentication required.
  • GraphQL endpoint — Typed, introspectable GraphQL over the same content: search, list, and read documents in one round trip. Relay connections, schema-modeled errors, no authentication.
  • GraphQL schema (SDL) — The GraphQL schema as SDL, for codegen or reading without an introspection query.
  • OpenAPI specification — OpenAPI 3.1 description of the site's public read-only JSON endpoints.
  • XML sitemap — Every indexable URL with last-modified dates.
  • RSS feed — Sitewide RSS with full article bodies; per-section feeds at /<section>/rss.xml.

Caching and etiquette

Every record carries a cid, a CIDv1 content hash: same cid, same bytes, forever. Cache against it rather than refetching. Prefer llms-full.txt to crawling page by page, and send a descriptiveUser-Agent. The site is open source atgithub.com/iammatthias/com.