mcpField
A
ao3-mcp

ao3-mcp

本地服务
github.com/ArturLys游戏娱乐313 周前更新

关于 ao3-mcp

ao3-mcp 将 Archive of Our Own 接入 MCP 客户端,供读者和写作者搜索同人作品并获取基于全文阅读的分析。它由 Gemini 阅读候选作品,返回情节、风格、内容提示和原文片段,而非只依赖简介。

主要功能

  1. 01按标签、角色、配对等条件搜索作品
  2. 02将模糊表达匹配到 AO3 规范标签
  3. 03读取全文并生成结构化分析报告
  4. 04提供文风摘录、内容提示和作品比较
  5. 05缓存作品下载以便再次分析

适用场景

  1. 01按题材和完成状态筛选同人作品
  2. 02比较候选作品的情节与写作风格
  3. 03为创作或角色扮演查找风格参考

MCP 相关

该 MCP 服务向 MCP 客户端提供 AO3 搜索、标签匹配、作品元数据查询和全文分析工具。全文交由 Gemini 阅读,服务返回结构化报告及比较结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"arturlys-ao3": {
"command": "uvx",
"args": [
"ao3-mcp"
],
"env": {
"GEMINI_API_KEY": "<GEMINI_API_KEY>"
}
}
}
}
启动命令uvx ao3-mcp
需要配置的环境变量
GEMINI_API_KEY密钥Gemini API key (free from https://aistudio.google.com/api-keys)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiao3-mcp0.1.2

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
pageinteger否
tagsstring否
pagesinteger否
querystring否
titlestring否
authorstring否
fandomstring否
ratingstring否
sort_bystring否
characterstring否
categoriesstring否
word_countstring否
relationshipstring否
complete_onlyboolean否

详细介绍

ao3-mcp

PyPI CI Python 3.10+ License: MIT

ao3-mcp MCP server

一个 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-keyGEMINI_API_KEY—Gemini API 密钥(必需)。
--modelGEMINI_MODELgemini-flash-latest阅读模型使用的模型。
--backup-modelGEMINI_MODEL_BACKUPgemini-flash-lite-latest主模型受到速率限制时使用的备用模型。
--min-intervalAO3_MIN_INTERVAL0.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

致谢

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。