Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI → MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE ↗ (opens in a new tab)
  • llms.txt ↗ (opens in a new tab)
  • Catalog JSON ↗ (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub ↗ (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
Ā© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. šŸŽØ Art & Culture
  3. Ao3 MCP
Ao3 MCP logo
Health: ActiveRecent health check succeeded.Last checked 9/20/2026, 6:31:46 PM

Ao3 MCP

User RatingsBe the first to rate and review this MCP server!
View Repository1 GitHub StarsTotal stargazers on GitHub for the source repository (1 stars).Visit Website
ao3fanfictionsearchrecommendationsgemini

Searches AO3, resolves canonical tags, and uses Gemini to read shortlisted fics before recommending them.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.

Add to CursorAdd to VS Code
Automated check passed— started and listed 5 tools correctly (3d ago).
Manual Client & Custom JSON ConfigExpand JSON ā–¾

Client Config & Setup

Configure Environment Variables (API Keys, Tokens, Options):
Add required secrets below — values are included directly in the generated snippet so you can copy and paste with confidence.
Quick Add:
Choose your client or environment
Target File:~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "arturlys-ao3-mcp": {
      "command": "uvx",
      "args": [
        "ao3-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "YOUR_VALUE_HERE",
        "GEMINI_MODEL": "YOUR_VALUE_HERE",
        "GEMINI_MODEL_BACKUP": "YOUR_VALUE_HERE",
        "AO3_MIN_INTERVAL": "YOUR_VALUE_HERE"
      }
    }
  }
}

šŸ’” Paste the JSON block into your client's configuration file under mcpServers, then restart the application.

Install Tool Schemas (5) Directory Badge Claim listing AlternativesšŸŽØ More in Art & Culture

Overview

ArturLys/ao3-mcp MCP server connects MCP clients to Archive of Our Own for filtered work discovery and metadata lookup. It scrapes AO3 HTML because AO3 has no public API, then delegates full-fic analysis to Gemini so the calling agent receives structured reports instead of raw text. Use it for recommendations, comparisons, content questions, or writing research grounded in the actual work. A Gemini API key is required, while AO3 requests are throttled and cached locally for 24 hours.

Use cases

•Search AO3 for works matching fandom, ship, tags, and rating filters
•Compare shortlisted fics using reports from a secondary reader model
•Check a fic's ending, explicitness, plot, or style before recommending it
•Find canonical AO3 tags from partial or informal wording
•Study how fanfic authors handle a trope, scene, or character voice

Key features

•Filtered AO3 work search with query operators and wildcards
•Fuzzy resolution of canonical fandom and tag names
•Work metadata and series information lookup
•Gemini-based reading of up to 20 works
•Structured plot, style, content, and comparison reports
•24-hour local caching of downloaded fic text

Capabilities & Tool Schemas (5) ~3.1k tokensApproximate context cost of this server’s tool schemas (~4 chars/token), before any tool is called. Actual usage depends on your client and model.Verified live Verified liveCaptured by calling this server’s live tools/list endpoint.

Inspect callable tools, capabilities, and parameters exposed to AI agents by Ao3 MCP.

search_works

Search AO3 for works. All filters optional; combine freely. RECOMMENDATION WORKFLOW — reading before recommending is MANDATORY, and the reading is done by a SEPARATE model, not you. Blurbs are author-written ads; never recommend, rank, or summarize a fic from its blurb alone. Cast a wide net (pages=2-3, i.e. 40-60 blurbs), shortlist the promising ones, then hand the top ≤20 ids to `read_works` — a second AI reads them and reports back. Recommend ONLY fics that came back from `read_works`. Do not read fic text yourself; delegating it is the entire point of this server. SEARCH STRATEGY — searching is cheap and reading is delegated, so the winning move is always to OVER-FETCH and let `read_works` brute-force the shortlist, never to craft one perfect narrow query. Filters multiply: each one you add cuts the pool, and stacked filters routinely cut it to zero. USE WILDCARDS LIBERALLY — abuse them. A `*` matches any run of characters and works in EVERY name field (`fandom`, `relationship`, `character`, `tags`) and in `query`. Wrapping a term in stars is the single best defence against AO3's exact-canonical-name trap: `fandom="Genshin Impact (Video Game)"` returns ZERO (the canonical tag is actually "åŽŸē„ž | Genshin Impact (Video Game)"), but `fandom="*Genshin Impact*"` returns the whole fandom. Likewise `relationship="*Kazuha*Scaramouche*"`, `tags="*Enemies to Lovers*"`. When you don't know the exact canonical name — which is most of the time — reach for a wildcard first instead of guessing the literal string. IF YOU GET 0 (or few) RESULTS, that is almost always your query being too narrow, NOT the content missing from AO3. Recover instead of giving up: - FIRST, wildcard the name fields (`*Genshin Impact*`). This fixes the most common cause — an exact-match field that didn't match the canonical tag — in one retry, without a separate `find_tags` round-trip. - Still unsure of a name? `find_tags` resolves it, or move the idea into `query` as free text (fuzzy, no canonical spelling needed). - Drop filters one at a time and retry: `word_count` first, then `complete_only`, then `rating`. Re-add only what the user insisted on. - Concepts don't need to be tags at all: "slow burn rivals in a bakery" works fine as free-text `query` even if no such tag exists. - Still thin? Search the broad version (fandom + category, sort by kudos), fetch 2-3 pages, and let the blurbs + `read_works` do the filtering. A human reader has to search narrowly because they can only read a few fics; you can read twenty at once, so breadth costs you nothing. Results show numeric work ids, not URLs. When relaying a work to the user, build the link yourself: https://archiveofourown.org/works/{id} Each result shows a kudos-to-hits ratio (k/h) — AO3's most honest quality proxy, since kudos are one-per-reader but hits count every visit. Compare it only within similar works: multi-chapter fics accumulate hits on every chapter visit, so long WIPs run structurally lower ratios than one-shots. Args: query: free-text search. Supports AO3's full operator syntax (case-sensitive, space after colon required where shown): `"exact phrase"`, `AND` / `OR` / `NOT`, `-term` to exclude; `words>10000`, `words:1000-5000`, `kudos>500` (same for hits/ comments/bookmarks); `sort:kudos`, `sort:hits`, `sort:>posted` (oldest first); `otp: true` (exactly one ship, no side pairings); `creators: username` / `-creators: username`; `summary: "phrase"`; `expected_number_of_chapters: 1` (one-shots only); `series.title: *` (part of a series); `language_id: en`. Also supports `*` wildcards, e.g. `*coffee shop*`. āš ļø query is a FULL-TEXT match on the fic body, AND'd with every other filter — so it narrows HARD. Do NOT stuff mood/concept synonyms here ("nuzzle OR forehead kiss OR won't let go"): that demands the prose literally contain one of those strings on top of your tag/fandom filters, and routinely collapses a healthy 60-result search to 0. Concepts belong in `tags` (wildcarded), not here. Use query for author names, quoted title/summary phrases, or the numeric operators above — leave it EMPTY when a tag already covers the vibe. title: words in the work title. author: author/creator name. fandom: fandom name, e.g. "Naruto" (comma-separate several). Exact canonical match — but `*` wildcards work here: prefer "*Genshin Impact*" over the literal name to survive canonical tags with prefixes/aliases (e.g. "åŽŸē„ž | Genshin Impact (Video Game)"). relationship: ship tag. Format: "A/B" romantic, "A & B" platonic, canonical name order, e.g. "Kakashi Hatake/Iruka Umino". Wildcards work: "*Kazuha*Scaramouche*" beats guessing the exact tag order. character: character name(s), comma-separated. Wildcards work here too. tags: freeform tags, comma-separated, EXACT canonical spelling (use find_tags to resolve, or wildcard it: "*Enemies to Lovers*"). Popular canonical tags: Fluff; Angst; Hurt/Comfort; Emotional Hurt/Comfort; Angst with a Happy Ending; Hurt No Comfort; Enemies to Lovers; Friends to Lovers; Enemies to Friends to Lovers; Slow Burn; Mutual Pining; Fake/Pretend Relationship; There Was Only One Bed; Idiots in Love; Getting Together; Established Relationship; First Kiss; Found Family; Fix-It; Time Travel; Kid Fic; Domestic Fluff; Tooth-Rotting Fluff; Crack; Crack Treated Seriously; 5+1 Things; POV Outsider; Soulmates; Smut; Plot What Plot/Porn Without Plot; Alpha/Beta/Omega Dynamics; Dead Dove: Do Not Eat; Canon Compliant; Post-Canon; Alternate Universe - Modern Setting; Alternate Universe - Canon Divergence; Alternate Universe - Coffee Shops & CafĆ©s; Alternate Universe - College/University; Alternate Universe - Soulmates. rating: one of: general, teen, mature, explicit, not rated. categories: comma-separated relationship categories to include: F/F, F/M, Gen, M/M, Multi, Other. Empty = all. complete_only: only finished works. word_count: range like "10000-50000", ">5000" or "<20000". sort_by: relevance | kudos | hits | comments | bookmarks | words | date_updated | date_posted. page: which result page to start from (for paging through results). pages: result pages to fetch, 20 works each (1-5). For a targeted lookup 1 is enough; for a recommendation hunt fetch 2-3 pages (40-60 blurbs) so the read_works shortlist has real competition.

find_tags

Resolve fuzzy wording to canonical AO3 tag names (live autocomplete). Use before search_works when unsure of exact spelling — e.g. "coffee shop" resolves to "Alternate Universe - Coffee Shops & CafĆ©s". Args: term: partial/fuzzy tag text, e.g. "enemies to", "coffee", "kakashi". kind: what to complete: tag | fandom | relationship | character.

get_work

Get the full metadata card for one work: tags, stats, summary, series info. Args: work_id: the numeric AO3 work id (from search results or a URL like archiveofourown.org/works/12345).

read_works

Have the mini reader (a separate AI) read full fics and report on each. Works for a single fic or up to 20 at once. You never receive fic text — only structured reader reports, one per work. The reader answers your query directly (anything works: "is the ending happy?", "how explicit is it?", "which of these should I read first?") plus gives a general digest of plot, characters, style, and content notes. When given several fics, it ends with a comparison section ranking them against your query. This is the ONLY approved way to read a fic. A separate model does the reading so a whole novel never touches your context. You MUST send fics here before you recommend, rank, summarize, or judge them — search blurbs are not enough, and reading raw text yourself defeats the entire point of this server. Shortlist from blurbs, read here, then recommend. Reading depth: a single-fic call sends the reader up to ~150k words (whole novels fit); in a batch each fic is capped at ~100k characters. If a long fic's report matters, read it alone. Batches that exceed the token budget are split internally, then a final reduce pass still produces ONE global comparison across the whole batch. Content refusals: the reader is Gemini, which has a non-configurable safety filter that occasionally refuses explicit or extreme fics — that fic's report comes back as "(mini reader returned no text …)". The server already retries once on the backup model, but the block is intermittent, so if a fic you care about is refused: read it ALONE (a single fic isn't dragged down by an extreme one sharing its batch), or just retry. In a mixed batch, one refused fic does not sink the others — their reports still return. Args: work_ids: 1-20 numeric AO3 work ids (from search results or URLs). query: the question to answer about each fic.

get_work_text

āš ļø NOT RECOMMENDED — escape hatch only. Returns the raw full text of ONE fic directly to you, bypassing the mini reader. Prefer `read_works` in almost every case. A fic can run 150k+ words; pulling that into your own context buries everything else, burns your tokens, and throws away the whole reason this server exists — delegating reading to a cheap second model. `read_works` hands you a structured report plus verbatim prose samples, which is enough to judge, compare, and recommend a fic without the fic ever entering your context. Only reach for this when you genuinely need exact wording a report can't carry — e.g. the user explicitly asks you to quote or close-read a specific passage. If you just want to know what a fic is like or whether it's good: use `read_works` instead. Args: work_id: the numeric AO3 work id. max_words: cap the text to the first N words (0 = whole fic). Set a limit to sample a fic's opening instead of dumping the entire thing into your context — a few thousand words is usually plenty to judge voice.

How Ao3 MCP works

What ArturLys/ao3-mcp MCP server does

ArturLys/ao3-mcp MCP server exposes Archive of Our Own search and reading workflows through MCP. It can locate works using fandom, relationship, character, tag, rating, completion, word-count, and sorting filters. Search results contain numeric work IDs, which can be turned into AO3 URLs with the /works/{id} pattern.

The server is designed to support recommendations based on the fic itself rather than its summary. A secondary Gemini model reads selected works and returns reports covering plot, characters, style, content notes, and prose samples. For a group of works, the report also compares or ranks them against a supplied question.

How it works

AO3 access is performed by scraping HTML, as AO3 does not provide a public API. Requests are spaced by a configurable minimum interval and the server honors Retry-After responses. Downloads are cached locally for 24 hours, so asking new questions about an already downloaded work does not require another AO3 request.

The intended flow is to search broadly, select up to 20 work IDs, and call read_works with a question. The agent receives reader reports, not the full fic text. A single-work request can send up to roughly 150,000 words to the reader; batched works have a lower per-work character cap. get_work_text exists as an escape hatch for one work, but it bypasses delegation and can consume substantial context.

Setup and configuration

Install the package with Python 3.10 or newer:

Terminal
pip install ao3-mcp

Running ArturLys/ao3-mcp MCP server requires a Gemini API key. Supply it with --api-key or set GEMINI_API_KEY. The default reader model is gemini-flash-latest; GEMINI_MODEL and GEMINI_MODEL_BACKUP can change the primary and fallback models. AO3_MIN_INTERVAL changes the default 0.6-second delay between AO3 requests.

MCP clients should launch the ao3-mcp command and pass the key as an argument or environment variable. The README specifically documents configurations for Claude, Cursor, Google Antigravity, and VS Code/Copilot.

Tools and capabilities

  • search_works: Search AO3 with optional filters, AO3 query operators, wildcards, and up to five pages of 20 results.
  • find_tags: Use live autocomplete to resolve fuzzy wording to canonical fandom, relationship, character, or tag names.
  • get_work: Retrieve a work's metadata, including tags, statistics, summary, and series details.
  • read_works: Ask Gemini to read one to 20 works and return per-work reports plus batch comparisons.
  • get_work_text: Retrieve raw text for one work with an optional word limit when exact wording or close reading is necessary.

Limitations and notes

Fic text is sent to Google's Gemini API for reading; the README states that no other data leaves the local machine and that the server has no telemetry. Gemini's safety filter may refuse some explicit or extreme works, although the server retries with a backup model. AO3 content spans all ratings, so callers should use the rating and warning-related filters when controlling what gets fetched.

Cloudflare challenges can cause AO3 requests to fail. The implementation uses curl_cffi with a mobile-Safari TLS fingerprint, but the README notes that the impersonation setting may need adjustment if AO3 returns a challenge response. ArturLys/ao3-mcp MCP server is released under the MIT license.

Read the full README →View source on GitHub →

Related MCP Servers

View all in Art & Culture View all alternatives
  • Gemini Image logoGemini Image

    Google Gemini image generation, editing, and local processing via MCP

    šŸŽØ Art & Culture3 views
    Compare vs Gemini Image →
  • Video Editing MCP logoVideo Editing MCP

    Add, Analyze, Search, and Generate Video Edits from your Video Jungle Collection

    šŸŽØ Art & Culture2 views
    Compare vs Video Editing MCP →
  • MCP Open Library logoMCP Open Library

    A MCP server for the Open Library API that enables AI assistants to search for book information.

    šŸŽØ Art & Culture5 views
    Compare vs MCP Open Library →
  • Metmuseum MCP logoMetmuseum MCP

    Metropolitan Museum of Art Collection API integration to search and display artworks in the collection.

    šŸŽØ Art & Culture5 views
    Compare vs Metmuseum MCP →

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars
1
Stargazers on the source repository.
Last commit
1mo ago
Most recent push to the default branch.
Availability
100%
Our rolling endpoint + install checks that succeeded.
Install check
Passed
Our sandbox started it and listed its tools.
Tools exposed
5
Callable tools this server registers over MCP.
Directory activity
3 installs
Config copies, upvotes, and views on AllMCPs.

Reviews

No reviews yet — be the first to share how this listing worked for you.

Frequently Asked Questions about Ao3 MCP

Install Python 3.10 or newer, then run `pip install ao3-mcp`. Launch the installed `ao3-mcp` command from your MCP client.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewAo3 MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/arturlys-ao3-mcp?style=directory)](https://allmcps.com/mcp/arturlys-ao3-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/arturlys-ao3-mcp"><img src="https://allmcps.com/api/badge/arturlys-ao3-mcp?style=directory" alt="Ao3 MCP on AllMCPs" /></a>

Technical Specs & Signals

CategoryšŸŽØArt & Culture
PricingFree
More technical detailsExpand ā–¾
TransportSTDIO
RuntimePython
AuthAPI key
LicenseMIT
ClientsClaude Desktop, Cursor
Last updatedSep 3, 2026
4/5 checks healthy over the last 41d
Views8
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs3
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
GitHub stars1
GitHub Star CountTotal stargazers on GitHub representing community popularity (1 stars).
Last commit1mo ago
Last Repository CommitThe most recent commit or push recorded for this server's GitHub repository.Last commit on Jul 28, 2026
69Quality signal: Great Ā· 69/100How this signal is calculated ā–¾
Server availability25/25
Verified ownership10/20
Documentation & tools30/30
Adoption & activity3/15
Community engagement1/10

A guidance signal from public completeness & health data — not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 25d ago via OSV.dev Ā· ao3-mcp (PyPI)

ā˜… FeaturedMoxie Docs MCP logo

Moxie Docs MCP

MCP & Agent Skills for Automated Documentation, and codebase conventions + context

Explore Server →

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to unlock edit access and the Official badge — proof is checked automatically, then reviewed by our team.

Free dofollow backlink: add your website and place the AllMCPs badge on it — no claim needed. We detect it automatically and keep it verified as long as the badge stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in šŸŽØ Art & Culture →Alternatives to Ao3 MCP →Install in Claude DesktopInstall in CursorInstall in VS Code