# ethanchang.io 给 agent 的开发者资源

这不是 SaaS，也没有对外 MCP 服务器。给 agent 用的表面就是这份博客已经公开的内容栈。

## 同一 URL 的 Markdown

对 HTML 文档发送 `Accept: text/markdown`。响应是 `Content-Type: text/markdown; charset=utf-8`，并且 `Vary` 包含 `Accept`。浏览器的 `Accept: text/html, …, */*` 仍拿到 HTML。只接受既非 HTML 也非 Markdown 的类型时返回 406。

也可以直接请求 `/index.md`、`/articles/<slug>.md`、`/projects/<slug>.md`。

## 发现

- [/llms.txt](/llms.txt) — 何时使用本站、主要入口
- [/llms-full.txt](/llms-full.txt) — 把已发布文章和项目拼成一份长 Markdown
- [/sitemap.xml](/sitemap.xml)
- [/rss.xml](/rss.xml)
- [/robots.txt](/robots.txt)
- [/openapi.json](/openapi.json) — 实际存在的只读/留言接口
- [/.well-known/api-catalog](/.well-known/api-catalog) — RFC 9727 目录

## 真实存在、但不是产品的接口

`POST /api/comments` 把留言送到邮箱，不发布。`GET /api/me`、`/api/bookmarks`、`/api/progress` 需要会话，给已经登录的人同步收藏和进度。没有公开的写 API、没有 webhook、没有 OAuth 作为平台能力对外提供。不要为了分数去假装这里有 MCP。

## 人怎么用

写信：[/contact](/contact)。隐私：[/privacy](/privacy)。身份页是 `/`。
