ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

MCP Stashbox

โดย smeet666รุ่น 2.1.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.smeet666/mcp-stashbox

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Search scenes, performers, studios and tags across the public stash-box catalogues.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: ค้นข้อมูลและความจำของ AI

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: STASHBOX_STASHDB_KEY, STASHBOX_TPDB_KEY, STASHBOX_FANSDB_KEY, STASHBOX_PMV_KEY, STASHBOX_JAVSTASH_KEY, SB_USER_AGENT, SB_MIN_INTERVAL_MS, SB_TIMEOUT_MS, SB_MAX_RETRIES, SB_CACHE_TTL_MS, SB_CACHE_MAX_ENTRIES, SB_LOG_LEVEL

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ดาวน์โหลดไฟล์ .mcpb ของผู้ทำ

ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add stashbox --env STASHBOX_STASHDB_KEY='ใส่ค่าของคุณ' --env STASHBOX_TPDB_KEY='ใส่ค่าของคุณ' --env STASHBOX_FANSDB_KEY='ใส่ค่าของคุณ' --env STASHBOX_PMV_KEY='ใส่ค่าของคุณ' --env STASHBOX_JAVSTASH_KEY='ใส่ค่าของคุณ' --env SB_USER_AGENT='ใส่ค่าของคุณ' --env SB_MIN_INTERVAL_MS='ใส่ค่าของคุณ' --env SB_TIMEOUT_MS='ใส่ค่าของคุณ' --env SB_MAX_RETRIES='ใส่ค่าของคุณ' --env SB_CACHE_TTL_MS='ใส่ค่าของคุณ' --env SB_CACHE_MAX_ENTRIES='ใส่ค่าของคุณ' --env SB_LOG_LEVEL='ใส่ค่าของคุณ' -- npx -y mcp-stashbox

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "stashbox": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-stashbox"
      ],
      "env": {
        "STASHBOX_STASHDB_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_TPDB_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_FANSDB_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_PMV_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_JAVSTASH_KEY": "ใส่ค่าของคุณ",
        "SB_USER_AGENT": "ใส่ค่าของคุณ",
        "SB_MIN_INTERVAL_MS": "ใส่ค่าของคุณ",
        "SB_TIMEOUT_MS": "ใส่ค่าของคุณ",
        "SB_MAX_RETRIES": "ใส่ค่าของคุณ",
        "SB_CACHE_TTL_MS": "ใส่ค่าของคุณ",
        "SB_CACHE_MAX_ENTRIES": "ใส่ค่าของคุณ",
        "SB_LOG_LEVEL": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "stashbox": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-stashbox"
      ],
      "env": {
        "STASHBOX_STASHDB_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_TPDB_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_FANSDB_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_PMV_KEY": "ใส่ค่าของคุณ",
        "STASHBOX_JAVSTASH_KEY": "ใส่ค่าของคุณ",
        "SB_USER_AGENT": "ใส่ค่าของคุณ",
        "SB_MIN_INTERVAL_MS": "ใส่ค่าของคุณ",
        "SB_TIMEOUT_MS": "ใส่ค่าของคุณ",
        "SB_MAX_RETRIES": "ใส่ค่าของคุณ",
        "SB_CACHE_TTL_MS": "ใส่ค่าของคุณ",
        "SB_CACHE_MAX_ENTRIES": "ใส่ค่าของคุณ",
        "SB_LOG_LEVEL": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • STASHBOX_STASHDB_KEY env
    API key for StashDB. A catalogue with no key is named as absent from every answer.
  • STASHBOX_TPDB_KEY env
    API key for ThePornDB. A catalogue with no key is named as absent from every answer.
  • STASHBOX_FANSDB_KEY env
    API key for FansDB. A catalogue with no key is named as absent from every answer.
  • STASHBOX_PMV_KEY env
    API key for PMV Stash. A catalogue with no key is named as absent from every answer.
  • STASHBOX_JAVSTASH_KEY env
    API key for JAVStash. A catalogue with no key is named as absent from every answer.
  • SB_USER_AGENT env
    Identify your own client. This project's identifier and a contact address stay appended, so a catalogue can always reach a human.
  • SB_MIN_INTERVAL_MS env
    Minimum milliseconds between requests to one catalogue. Default and floor 1000, ceiling 60000. The floor cannot be lowered.
  • SB_TIMEOUT_MS env
    Deadline for one request, in milliseconds. Default 20000.
  • SB_MAX_RETRIES env
    Retries on a busy catalogue. Default 3.
  • SB_CACHE_TTL_MS env
    In-memory cache lifetime, in milliseconds. Default 300000. Set 0 to turn it off.
  • SB_CACHE_MAX_ENTRIES env
    In-memory cache size, in entries. Default 500.
  • SB_LOG_LEVEL env
    error, info or debug. Default error. Logs go to stderr.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub smeet666 ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด ค้นข้อมูลและความจำของ AIi

  • ดาวมากกว่า 0% ของอีก 7259 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 81% ของอีก 7259 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 7259 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

MCP Stashbox ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.1.0) เข้า registry 8 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js, MCPB ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Context7, Codebase Memory, Exa

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Context7

โดย upstash

ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว

บนเครื่องหรือคลาวด์★ 64,224MITอัปเดต เมื่อวาน
ติดตั้ง

Codebase Memory

โดย DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

รันบนเครื่อง★ 48,148MITอัปเดต 20 วันที่ผ่านมา
ติดตั้ง

Exa

โดย exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

รันบนคลาวด์★ 5,213MITอัปเดต เดือนที่แล้ว
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

mcp-stashbox

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.

_Version française_


Install

One-click install

Claude Code

claude mcp add stashbox --env STASHBOX_STASHDB_KEY=your-key -- npx -y mcp-stashbox

Claude Desktop, Cursor, and any client using the standard config format

{

"mcpServers": { "stashbox": { "command": "npx", "args": ["-y", "mcp-stashbox"], "env": { "STASHBOX_STASHDB_KEY": "your-key" } } } }

Node 24 or later is required. Set a key for each catalogue you want read; the others are named as absent from every answer.

With Docker
{

"mcpServers": { "stashbox": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "STASHBOX_STASHDB_KEY", "ghcr.io/smeet666/mcp-stashbox:2.1.0" ] } } }

-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.

Bundle, without npm

Download mcp-stashbox-2.1.0.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.

What you can ask

  • "Which catalogues am I actually reading?"
  • "Find the performers credited under that name."
  • "Read me that studio's record."
  • "What is this file? Here is its MD5."
  • "Which scenes did those two perform in together?"

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.

The catalogues

CatalogueAddressKey
StashDBstashdb.orgSTASHBOX_STASHDB_KEY
TPDBtheporndb.netSTASHBOX_TPDB_KEY
FansDBfansdb.ccSTASHBOX_FANSDB_KEY
PMV Stashpmvstash.orgSTASHBOX_PMV_KEY
JAVStashjavstash.orgSTASHBOX_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.

Tools

ToolWhat it does
get_sourcesStates what each catalogue answers, and which keys are held.
search_scenesSearches the scenes of every configured catalogue.
search_performersSearches the performers.
search_studiosSearches the studios.
search_tagsSearches the tags.
get_sceneReads one scene as a single card.
get_performerReads one performer as a single card.
get_studioReads one studio as a single card.
get_tagReads one tag as a single card.
find_by_fingerprintIdentifies 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_sources

States 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_scenes

Searches the scenes.

ArgumentTypeRequiredWhat it does
querystringnoWords for each catalogue's own text index.
titlestringnoWords a title carries.
codestringnoThe studio's own reference for the release.
aliasstringnoAnother title the release is known by.
datea calendar daynoThe release date to compare against.
date_compareon, before or afternoHow that date is read.
performer_idslist of identifiersnoPerformers credited on it.
studio_idslist of identifiersnoStudios that released it.
parent_studio_idan identifiernoA studio the releasing studio sits under.
tag_idslist of identifiersnoTags it is filed under.
matchall or anynoHow a list of identifiers is read.
sorttitle, date, duration, trending, popularity, created_at or updated_atnoThe order the catalogue applies.
directionasc or descnoWhich way that order runs.
pageinteger, 1 to 1000noWhich page of each catalogue's own order.
limitinteger, 1 to 100noRows one page of one catalogue carries.
sourceslist of cataloguesnoRead these catalogues alone.

In return: rows carrying the id written instance:uuid, which get_scene takes, and what names the record. A row leaves the synopsis, the link lists and the editing stamps to the card, since none of those separates two releases. The answer says per catalogue which of three it met: a failure, a catalogue nobody asked, or an emptiness it established. Counts are never added across catalogues. A search written with words alone reads the first rows each text index answers with, since those routes take no page.

search_performers

Searches the performers.

ArgumentTypeRequiredWhat it does
querystringnoWords for each catalogue's own text index.
namestringnoWords a name carries.
aliasstringnoAnother name they are known by.
disambiguationstringnoWhat the catalogue adds to tell two apart.
genderone of the values the catalogue records

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx