Search the public stash-box metadata catalogues, and identify a file by its fingerprint.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A stash-box is a shared metadata catalogue: it records scenes, the performers credited on them, the studios that released them, and the tags they are filed under, each curated by submission and review. A catalogue holds no media β a record names where something was published and carries nothing of it β and it identifies a file by the fingerprints computed from it. Five such catalogues run independently, each issuing its own key to a registered account.
This server connects a chat client to all of them at once. You can search the scenes, performers, studios and tags of every catalogue you hold a key for, read one record as a single card assembled from every catalogue that holds it, identify a file from its fingerprints, and ask what each catalogue was measured answering. It needs a key per catalogue, and reads only the catalogues it has one for.
One-click install
Claude Code
Claude Desktop, Cursor, and any client using the standard config format
Node 24 or later is required. Set a key for each catalogue you want read; the others are named as absent from every answer.
-i keeps stdin open, which is where the protocol travels, and -t is left out
because a TTY rewrites the stream. The container needs outbound HTTPS to the
catalogues you hold keys for, and the keys from your environment: no volume, no
port.
Download mcp-stashbox-2.0.1.mcpb from
the latest release
and open it. A client that supports MCP bundles installs it on its own, with no
npm to run. The keys are still set in the client's configuration.
The ordinary path runs from a search to a card: a row carries an id written
instance:uuid, and the record tool reads it on every catalogue that holds it.
| Catalogue | Address | Key |
|---|---|---|
| StashDB | stashdb.org | STASHBOX_STASHDB_KEY |
| TPDB | theporndb.net | STASHBOX_TPDB_KEY |
| FansDB | fansdb.cc | STASHBOX_FANSDB_KEY |
| PMV Stash | pmvstash.org | STASHBOX_PMV_KEY |
| JAVStash | javstash.org | STASHBOX_JAVSTASH_KEY |
They answer different surfaces: StashDB answers every route this server knows,
and the others answer fewer. get_sources states what each was measured
answering and the day it was measured. A catalogue with no key is named as
absent from every answer, so an answer holding rows from some of them is never
read as the whole.
| Tool | What it does |
|---|---|
get_sources | States what each catalogue answers, and which keys are held. |
search_scenes | Searches the scenes of every configured catalogue. |
search_performers | Searches the performers. |
search_studios | Searches the studios. |
search_tags | Searches the tags. |
get_scene | Reads one scene as a single card. |
get_performer | Reads one performer as a single card. |
get_studio | Reads one studio as a single card. |
get_tag | Reads one tag as a single card. |
find_by_fingerprint | Identifies a file from the hashes held for it. |
Every search takes two exclusive paths. query runs each catalogue's own
text index, which reads the words as a union. The typed arguments narrow as an
intersection. Writing both is refused.
get_sourcesStates what each configured catalogue was measured answering, and the day its surface was read. It reaches no catalogue and takes no argument.
In return: one entry per catalogue with its name, its identifier prefix, whether a key is held for it in this install, the variable to set when none is, and the routes it answers. Whether a key is held is a fact about this install and changes nothing about what the catalogue does.
search_scenesSearches the scenes.
| Argument | Type | Required | What it does |
|---|---|---|---|
query | string | no | Words for each catalogue's own text index. |
title | string | no | Words a title carries. |
code | string | no | The studio's own reference for the release. |
alias | string | no | Another title the release is known by. |
date | a calendar day | no | The release date to compare against. |
date_compare | on, before or after | no | How that date is read. |
performer_ids | list of identifiers | no | Performers credited on it. |
studio_ids | list of identifiers | no | Studios that released it. |
parent_studio_id | an identifier | no | A studio the releasing studio sits under. |
tag_ids | list of identifiers | no | Tags it is filed under. |
match | all or any | no | How a list of identifiers is read. |
sort | title, date, duration, trending, popularity, created_at or updated_at | no | The order the catalogue applies. |
direction | asc or desc | no | Which way that order runs. |
page | integer, 1 to 1000 | no | Which page of each catalogue's own order. |
limit | integer, 1 to 100 | no | Rows one page of one catalogue carries. |
sources | list of catalogues | no | Read these catalogues alone. |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-stashbox)<a href="https://allmcps.com/mcp/mcp-stashbox"><img src="https://allmcps.com/api/badge/mcp-stashbox?style=directory" alt="MCP Stashbox on AllMCPs" /></a>