关于 ao3-mcp
ao3-mcp 将 Archive of Our Own 接入 MCP 客户端,供读者和写作者搜索同人作品并获取基于全文阅读的分析。它由 Gemini 阅读候选作品,返回情节、风格、内容提示和原文片段,而非只依赖简介。
主要功能
- 01按标签、角色、配对等条件搜索作品
- 02将模糊表达匹配到 AO3 规范标签
- 03读取全文并生成结构化分析报告
- 04提供文风摘录、内容提示和作品比较
- 05缓存作品下载以便再次分析
适用场景
- 01按题材和完成状态筛选同人作品
- 02比较候选作品的情节与写作风格
- 03为创作或角色扮演查找风格参考
MCP 相关
该 MCP 服务向 MCP 客户端提供 AO3 搜索、标签匹配、作品元数据查询和全文分析工具。全文交由 Gemini 阅读,服务返回结构化报告及比较结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | integer | 否 | |
| tags | string | 否 | |
| pages | integer | 否 | |
| query | string | 否 | |
| title | string | 否 | |
| author | string | 否 | |
| fandom | string | 否 | |
| rating | string | 否 | |
| sort_by | string | 否 | |
| character | string | 否 | |
| categories | string | 否 | |
| word_count | string | 否 | |
| relationship | string | 否 | |
| complete_only | boolean | 否 |
详细介绍
ao3-mcp
一个 MCP(Model Context Protocol)服务,可将 AI Agent——Claude、Cursor 或任何 MCP 客户端——连接到 Archive of Our Own。使用完整筛选条件搜索 AO3 同人小说,将模糊措辞解析为规范标签,并获取实际读过的作品再进行推荐。
诀窍在于:你的 Agent 从不读取同人小说文本,而是将阅读任务交给一个低成本的辅助模型(Gemini),由它消化整部作品——甚至是 15 万字的长篇小说——并返回结构化报告。Agent 的上下文始终保持清爽;推荐基于真实文本,而非简介。
agent ──MCP──> server.py
├─ ao3.py AO3 scraping (no public API exists) — throttled and polite
└─ reader.py Gemini reads the fics, reports back: plot, style,
prose samples, content notes, a ranking
为什么它优于基于简介的推荐
AO3 的简介是作者撰写的广告。此服务的工作流是:广泛搜索(40–60 个结果),让阅读模型阅读候选列表——一次调用最多阅读 20 部完整作品——然后只推荐实际读过的作品,并附上原文摘录,从文本本身判断质量。
不只是帮你寻找下一本作品
如果你用 AI 写作——同人小说、原创小说或角色扮演——它还能兼作灵感引擎。在场景进行到一半时,你的 Agent 可以找出真实同人作者如何处理你正在描写的特定情节:
Find three highly-kudosed fics where rivals are forced to share a bed, read them,
and tell me how each one builds the tension — pacing, POV, what they leave unsaid.
阅读模型会返回包含结构、风格点评和原文摘录的报告,让模型了解这个情节套路在实际写作中的呈现方式,而不是凭空想象同人小说应该是什么样子。角色扮演也同样适用:获取那些精准塑造角色语气的作品报告,并将其作为风格参考。
安装
需要 Python 3.10+ 和免费的 Gemini API 密钥:
前往 aistudio.google.com/api-keys,使用任意 Google 账号登录,然后点击 “Create API key”。免费套餐已足够使用——无需设置账单信息。
pip install ao3-mcp
添加到你的 Agent
将 command 指向 ao3-mcp,并使用 --api-key 传入密钥:
{
"mcpServers": {
"ao3": {
"command": "ao3-mcp",
"args": ["--api-key", "YOUR_GEMINI_KEY"]
}
}
}
如果希望密钥不出现在参数列表中,可以移除 --api-key,改为在 env 块中传入密钥——服务会在环境变量中读取 GEMINI_API_KEY,作为备用选项:
"env": { "GEMINI_API_KEY": "YOUR_GEMINI_KEY" }
Claude Code
claude mcp add ao3 -- ao3-mcp --api-key YOUR_GEMINI_KEY
Cursor
Cursor Settings → MCP → New MCP Server,粘贴上面的 JSON 配置。
Google Antigravity
将上面的 JSON 配置添加到 .gemini/antigravity/mcp_config.json。
VS Code / Copilot
code --add-mcp '{"name":"ao3","command":"ao3-mcp","args":["--api-key","YOUR_GEMINI_KEY"]}'
然后直接这样提问:
Find me a completed enemies-to-lovers longfic in <fandom>, read the top candidates, and tell me which is best written.
启动参数
| 参数 | 环境变量 | 默认值 | 作用 |
|---|---|---|---|
--api-key | GEMINI_API_KEY | — | Gemini API 密钥(必需)。 |
--model | GEMINI_MODEL | gemini-flash-latest | 阅读模型使用的模型。 |
--backup-model | GEMINI_MODEL_BACKUP | gemini-flash-lite-latest | 主模型受到速率限制时使用的备用模型。 |
--min-interval | AO3_MIN_INTERVAL | 0.6 | 两次 AO3 请求之间的最小间隔秒数。 |
工具
| 工具 | 功能 |
|---|---|
search_works | 搜索 AO3:同人圈、配对、角色、标签、分级、字数、完结状态和排序。每页 20 条结果,每次调用最多 5 页。query 字段支持 AO3 的完整搜索运算符语法(words>10000、kudos>500、sort:kudos 等)。 |
find_tags | 实时自动补全——将模糊措辞匹配到 AO3 的规范标签、同人圈、配对或角色名称。 |
get_work | 获取单篇作品的完整元数据卡片:标签、统计数据、摘要和系列信息。 |
read_works | 使用次级模型阅读 1–20 篇完整同人小说,并为每篇返回一份结构化报告,包括情节、角色、风格、原文摘录、内容提示,以及根据你的问题进行的比较排名。 |
同人小说下载内容会在本地缓存 24 小时,因此带着新问题重新阅读作品不会产生新的 AO3 请求。
须知
- AO3 没有 API——本工具会抓取其(简洁的)HTML,每次只发送一个请求,默认每 0.6 秒 限制一次(可通过
--min-interval调整),并遵循Retry-After。AO3 由志愿者运营,因此刻意保持礼貌。 - Cloudflare: AO3 会拦截普通 HTTP 客户端。本工具使用带有移动版 Safari TLS 指纹的
curl_cffi,截至撰写本文时仍可通过。如果请求开始因 403 和cf-mitigated: challenge而失败,请修改ao3.py中的IMPERSONATE。 - 隐私: 同人小说文本会发送到 Google 的 Gemini API 进行阅读;除此之外,任何内容都不会离开你的设备,也不会收集遥测数据。
- 成人内容: AO3 托管各种分级的作品。服务会传递你的搜索范围所涵盖的内容——使用
rating筛选条件和 AO3 的警告标签来控制抓取内容。
按需定制
这是一个小型、用途单一的服务——只有几百行易读代码,没有框架魔法。你可以 Fork 并随意修改:重写阅读器的提示词、换用其他模型、调整请求间隔或添加工具。这正是推荐的使用方式。
从源代码运行:
git clone https://github.com/ArturLys/ao3-mcp.git
cd ao3-mcp
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python smoke_test.py YOUR_GEMINI_KEY # end-to-end check: search → download → digest
python server.py --api-key YOUR_GEMINI_KEY # or point your client's command at this
致谢
- AO3 访问方案基于 wendytg 的 ao3_api。
- 所有同人作品均归 Archive of Our Own 上的作者所有;该网站是 Organization for Transformative Works 的项目。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。