Skip to main content
Glama

드래그 레이스 MCP 👑

드래그 레이스 지식을 위한 비공식 커뮤니티 기반 MCP(Model Context Protocol) 서버입니다.

drag-race-mcp는 AI 어시스턴트가 MCP 도구를 통해 퀸, 시즌, 에피소드, 팬 로어에 구조적으로 접근할 수 있게 해줍니다.

면책 고지

이 프로젝트는 비공식 팬 프로젝트이며 RuPaul, World of Wonder 또는 드래그 레이스 프랜차이즈와 제휴, 보증, 후원 관계가 없습니다.


MCP 클라이언트로 사용하기

이 패키지는 stdio MCP 서버입니다. 클라이언트가 이 서버를 자식 프로세스로 실행하고 stdin/stdout을 통해 JSON-RPC로 통신합니다. 서버를 직접 시작하지 마세요.

실행 명령(하나 선택):

방법

명령 / 인자

게시된 패키지

npx@tkalejandro/drag-race-mcp

로컬 클론(빌드됨)

nodedist/index.js (pnpm build 먼저 실행)

로컬 클론(개발)

pnpmexec tsx src/index.ts (저장소 루트에서)

Cursor 같은 호스트는 MCP 설정에서 동일한 명령을 연결할 수 있습니다(Test locally with Cursor 참조). 아래는 최소한의 프로그래밍 방식 클라이언트입니다.

TypeScript

npm install @modelcontextprotocol/client
import { Client } from "@modelcontextprotocol/client";
import { StdioClientTransport } from "@modelcontextprotocol/client/stdio";

const client = new Client({ name: "drag-race-client", version: "1.0.0" });

const transport = new StdioClientTransport({
  command: "npx",
  args: ["-y", "@tkalejandro/drag-race-mcp"],
  // Local clone instead:
  // command: "node",
  // args: ["dist/index.js"],
  // cwd: "/path/to/drag-race-mcp",
});

await client.connect(transport);

const { tools } = await client.listTools();
console.log(tools.map((t) => t.name));

const result = await client.callTool({
  name: "search_queens",
  arguments: { query: "jinkx", limit: 5 },
});

for (const block of result.content) {
  if (block.type === "text") console.log(block.text);
}

await client.close();

Python

pip install mcp
# or: uv add mcp
import asyncio

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client


async def main() -> None:
    server = StdioServerParameters(
        command="npx",
        args=["-y", "@tkalejandro/drag-race-mcp"],
        # Local clone instead:
        # command="node",
        # args=["dist/index.js"],
        # cwd="/path/to/drag-race-mcp",
    )

    async with stdio_client(server) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()

            tools = await session.list_tools()
            print([t.name for t in tools.tools])

            result = await session.call_tool(
                "search_queens",
                arguments={"query": "jinkx", "limit": 5},
            )
            for block in result.content:
                if block.type == "text":
                    print(block.text)


asyncio.run(main())

도구 이름과 인자는 MCP tools 표의 내용과 일치합니다(예: get_queen, get_season, get_queen_earnings).


Related MCP server: Pokemon MCP Server

기능

준비 완료

  • 타입이 지정된 지식 모델(시즌, 퀸, 에피소드, 로어)

  • JSON 지식 베이스 + Zod 검증 + 무결성 검사

  • 핵심 MCP 읽기 도구(시즌, 퀸, 에피소드, 로어 목록 / 검색 / 조회)

  • Cursor 친화적인 로컬 MCP 설정 + 워크플로 문서

예정

  • 퀸 비교, 추천, 더 풍부한 통계

  • 더 넓은 프랜차이즈 범위, 추후 선택적 RAG


예시 질문

  • Porkchop 퀸은 누구인가요?

  • 시즌 5와 All Stars에 모두 출전한 퀸은 누구인가요?

  • Jinkx Monsoon과 Bianca Del Rio를 비교해 주세요.

  • 챌린지 우승이 가장 많은 퀸은 누구인가요?

  • 코미디가 많은 시즌을 추천해 주세요.

  • Alyssa Edwards와 Coco Montrese의 라이벌 관계를 설명해 주세요.


데이터 모델(에이전트 및 기여자용)

ID와 카탈로그는 src/kb/catalogs.ts에 있고, 엔티티 형태는 src/kb/schemas/의 Zod 스키마입니다(타입은 z.infer 사용). 모델이 반복적인 산문에 토큰을 낭비하지 않고 사실을 탐색할 수 있도록 설계되었습니다.

확정 사실

유형

위치

저장 내용

Season

kb/schemas/season.ts

프랜차이즈 시즌 메타데이터, 캐스트 ID, 우승자, 상금, 호스트/심사위원

Queen

kb/schemas/queen.ts

드래그 이름, 별칭, 시즌별 출연 및 우승

Episode

kb/schemas/episode.ts

주별 챌린지, 런웨이, 립싱크, 탈락

Money

kb/schemas/money.ts

상금 기록: { amount, currency, context, isSponsor?, isCharity? } — 시즌 cashPrice, 에피소드 미니/맥시/립싱크 earnings, 퀸 우승에 반영. 비현금 스폰서 상품은 amount: 0 + context 사용, 자선 상금은 isCharity 사용

PersonRef

kb/schemas/person.ts

호스트/심사위원 { name, queenId? }

SeasonId / Currency / LoreTag

kb/catalogs.ts

폐쇄형 카탈로그 + 문자열 ID 별칭

이것들이 순위, 우승, 캐스트 목록, 에피소드 결과의 근거 자료(source of truth) 입니다.

ID로 토큰 크기 최소화

가능한 모든 곳에서 전체 중첩 객체 대신 안정적인 ID로 연결합니다:

ID

예시

참고

SeasonId

US-S17, AS-S10, CVTW-S02

알려진 시즌의 폐쇄형 열거형

EpisodeId

US-S17-E05

{SeasonId}-E{NN}

QueenId

jinkx-monsoon

케밥-케이스 슬러그(개방형 집합, 이후 데이터로 검증)

LoreId

alyssa-coco-rivalry

케밥-케이스 슬러그

왜 ID인가?

  • 도구 응답의 페이로드가 더 작음(castIds 전달, 필요할 때만 확장)

  • 더 안전한 LLM 기여(시즌 텍스트를 다시 쓰는 대신 US-S06 참조)

  • 쉬운 조인: 시즌 → 퀸 ID → 퀸 조회, 퀸 우승 → episodeId → 에피소드 조회

시즌은 castIdsepisodeIds를 저장합니다. 퀸은 episodeId를 가리키는 출연 통계를 저장합니다. 도구(그리고 이후 list_queen_ids)는 모델이 ID를 임의로 만들지 않고 유효한 ID를 발견하도록 돕습니다.

로어가 모델의 역량을 확장

확정 사실은 무슨 일이 일어났는지를 답합니다. 로어왜 중요한지, 어떻게 연결되는지를 답합니다:

Lore {
  id, title, summary, tags,
  queenIds?, seasonIds?, episodeIds?
}

라이벌 관계, 상징적 순간, 코미디 시즌, 드래그 패밀리, 논란 등을 가르치기 위해 로어 항목을 추가하세요. 태그(rivalry, drama, comedy, iconic, …)를 달고 ID를 통해 사실 카탈로그에 다시 연결합니다.

LLM/인간을 위한 기여 루프:

  1. 연결 시 기존 ID 우선 사용

  2. 누락되거나 잘못된 확정 사실 레코드 추가 또는 수정

  3. 서사, 상관관계, 팬 맥락이 필요할 때 로어 추가

이렇게 하면 퀸/시즌 전체 블롭을 모든 곳에 중복하지 않고도 KB가 성장합니다.


데이터 범위

SeasonId에 어떤 데이터가 있는지 추적합니다. 해당 슬라이스가 지식 베이스에 있으면 로 바꾸세요.

의미

Season

시즌 레코드(메타, 캐스트 ID, 우승자, 상금, 호스트/심사위원)

Queens

캐스트의 퀸 레코드(출연, 우승)

Episodes

시즌의 에피소드 레코드

Lore

이 시즌에 연결된 로어 항목이 최소 1개

모든 항목은 빈 상태로 시작합니다. 이것이 기여 맵입니다. 아무 나 골라 채우세요.

챌린지 상금(Money 범위)

에피소드 ✅는 에피소드 레코드가 존재한다는 뜻이지 모든 미니/맥시 상금이 채워졌다는 뜻이 아닙니다. 주간 상금은 챌린지와 립싱크의 선택적 earnings(Money)에 있으며, 퀸의 challengeWins / miniChallengeWins / lipSyncWins가 해당 금액을 반영합니다. 시즌 그랜드 프라이즈는 cashPrice를 사용합니다(모든 시즌에 필수).

  • 출처 우선: 공개 출처에 상금이 명시되지 않은 경우 earnings를 생략합니다(많은 영국 RuPeter 주간에는 현금 항목이 없음).

  • 커리어 합계: MCP 도구 get_queen_earnings 사용(개인 현금 vs 자선 vs 비현금 context 상품).

현재 약 70 / 82개 시즌 팩에 주간 earnings가 일부 있습니다.

아직 주간 earnings 없음(12개) — Fandom이나 에피소드 출처에 Wikipedia가 누락한 상금이 있다면 좋은 기여 대상입니다:

AS-S01, CVTW-S01, CVTW-S02, ES-S05, UK-S02, UK-S03, UK-S04, UK-S05, UK-S07, UKVTW-S01, UKVTW-S02, UKVTW-S03

부실 / 불완전(패턴):

  • 초기 미국 시즌 미니는 종종 어드밴티지만 제공(US-S01S08: 맥시는 대부분 채워짐, 미니는 드묾)

  • UK / UKVTW / CVTW는 전반적으로 부실(배지 또는 문서화되지 않은 주간 현금)

  • 일부 All Stars 팁/맥시 공백 존재(예: AS-S04 팁, AS-S07 / AS-S09 맥시)

  • 여러 국제 팩은 맥시 또는 미니 중 하나만 강함(예: FR 미니 비어있음, BR / MX / TH 부분적)

아래 프랜차이즈 표에 Prize 열을 추가하지 마세요. 상금 깊이는 여기에서 추적하세요.

US — RuPaul's Drag Race

SeasonId

Season

Queens

Episodes

Lore

US-S01

US-S02

US-S03

US-S04

US-S05

US-S06

US-S07

US-S08

US-S09

US-S10

US-S11

US-S12

US-S13

US-S14

US-S15

US-S16

US-S17

US-S18

AS — All Stars

SeasonId

Season

Queens

Episodes

Lore

AS-S01

AS-S02

AS-S03

AS-S04

AS-S05

AS-S06

AS-S07

AS-S08

AS-S09

AS-S10

AS-S11

UK

SeasonId

Season

Queens

Episodes

Lore

UK-S01

UK-S02

UK-S03

UK-S04

UK-S05

UK-S06

UK-S07

UKVTW-S01

UKVTW-S02

UKVTW-S03

Canada

SeasonId

Season

Queens

Episodes

Lore

CA-S01

CA-S02

CA-S03

CA-S04

CA-S05

CA-S06

CVTW-S01

CVTW-S02

CAS-S01

Europe

SeasonId

시즌

에피소드

로어

ES-S01

ES-S02

ES-S03

ES-S04

ES-S05

ESAS-S01

ESAS-S02

FR-S01

FR-S02

FR-S03

FR-S04

IT-S01

IT-S02

IT-S03

DE-S01

NL-S01

NL-S02

BE-S01

BE-S02

SE-S01

라틴 아메리카

SeasonId

시즌

에피소드

로어

MX-S01

MX-S02

MX-S03

MXLR-S01

BR-S01

BR-S02

아시아-태평양 및 글로벌

SeasonId

시즌

에피소드

로어

TH-S01

TH-S02

TH-S03

PH-S01

PH-S02

PH-S03

PH-S04

PHSR-S01

GAS-S01

DU-S01

DU-S02

DU-S03

DU-S04

DUVTW-S01


프로젝트 구조

├── src/
│   ├── index.ts              # MCP entry (stdio)
│   ├── server.ts             # Server + tool registration
│   ├── data/                 # JSON only (no TypeScript)
│   │   ├── queens/           # One JSON file per QueenId
│   │   └── seasons/
│   │       └── US-S01/ … US-S07/, AS-S01/, AS-S02/
│   │           ├── season.json
│   │           ├── episodes.json
│   │           └── lore.json
│   ├── kb/                   # Data layer: catalogs, Zod, load, integrity
│   │   ├── catalogs.ts
│   │   ├── schemas/
│   │   ├── load.ts
│   │   ├── integrity.ts
│   │   └── index.ts
│   ├── services/             # Utilities tools call (not MCP)
│   │   ├── accessors/        # accessors.ts → get* / list*Ids
│   │   ├── seasons/          # list_season_ids.ts
│   │   ├── queens/           # search_queens.ts, list_queen_ids_for_season.ts
│   │   ├── lore/             # search_lore.ts
│   │   └── shared/           # limits.ts
│   └── tools/                # MCP registerTool wrappers only
│       ├── general/          # welcome_user.ts
│       ├── seasons/          # list_season_ids.ts, get_season.ts
│       ├── queens/           # list_queen_ids.ts, search_queens.ts, get_queen.ts, get_queen_earnings.ts
│       ├── episodes/         # get_episode.ts
│       └── lore/             # get_lore.ts, search_lore.ts
│
├── .cursor/
│   ├── mcp.json              # Local Cursor MCP config ADD WHEN YOU NEED IT.
│   └── skills/
│       ├── drag-race-data/   # How to contribute season/queen JSON
│       └── typescript-style/ # Arrow-const functions + TS conventions
│
├── package.json
├── tsconfig.json
└── README.md

JSON 팩트는 src/data/ 아래에 있습니다 (퀸은 전역, 시즌은 src/data/seasons/<SeasonId>/). src/kb/ 레이어는 Zod + Maps를 통해 이를 검증하고 인덱싱합니다. 에이전트와 함께 기여할 때는 .cursor/skills/drag-race-data/를 참조하세요.

데이터 검증

src/data/ 아래에서 무엇이든 추가하거나 편집한 후에는 다음을 실행하세요:

pnpm test

이 명령은 모든 JSON 파일을 Zod로 로드하고, 잘못된 필드와 중복 ID를 거부하며, 파일 + 필드 경로와 함께 실패합니다. git commit은 Husky pre-commit 훅을 통해 동일한 검사를 실행합니다 — 커밋 전에 문제를 발견할 수 있도록 편집 중에도 직접 테스트를 실행하세요. 새로 클론한 후에는 pnpm install을 한 번 실행하여 Husky가 훅을 설치하도록 하세요.


Cursor로 로컬 테스트

이것은 Agent 채팅(이와 같은)이 drag-race-mcp의 도구를 보고 호출할 수 있는 방법입니다.

1. 사전 요구 사항 설치 및 실행

pnpm install

터미널 프로세스를 직접 실행해 둘 필요는 없습니다. Cursor가 .cursor/mcp.json을 사용하여 MCP 서버를 시작합니다.

2. 프로젝트 MCP 구성

이 저장소에는 이미 .cursor/mcp.json이 포함되어 있습니다:

{
  "mcpServers": {
    "drag-race-mcp": {
      "command": "pnpm",
      "args": [
        "--dir",
        "/ABS/PATH/TO/drag-race-mcp",
        "exec",
        "tsx",
        "src/index.ts"
      ]
    }
  }
}

--dir 경로가 다르다면 사용자 머신의 클론 경로로 업데이트하세요.

Cursor는 작업 공간이 열려 있을 때 .cursor/mcp.json에서 프로젝트 MCP 구성을 로드합니다. 원한다면 동일한 서버를 Cursor 설정 → MCP (사용자 수준)에 추가할 수도 있습니다.

3. 서버 활성화 / 새로고침

  1. Cursor 설정 → MCP 열기

  2. drag-race-mcp 찾기

  3. 연결되는지 확인 (오류 상태 없음). 코드나 구성을 변경했다면 새로고침/재시작 사용

  4. 이 작업 공간에서 새 Agent 채팅을 열어 도구 목록을 가져오도록 하세요

4. 도구 스모크 테스트

에이전트에게 다음과 같이 요청하세요:

welcome_user 도구를 제 이름으로 호출해 주세요.

MCP가 올바르게 연결되어 있으면 에이전트가 welcome_user를 호출하고 이 서버에서 환영 문자열을 반환합니다.

이것은 개발에서 사용되는 것과 동일한 경로입니다: Cursor가 MCP를 통해 서버의 도구를 발견하고, 모델이 이를 호출할 수 있습니다 (도구 나열 → 선택 → 인수로 실행 → 결과 읽기).

5. 도구 추가 후

  1. 서버에 도구 등록 (src/tools/general/welcome_user.ts 참조)

  2. Cursor에서 MCP 서버 재시작/새로고침

  3. 새 Agent 채팅 시작

  4. 에이전트에게 새 도구를 이름으로 사용하도록 요청하거나 작업을 설명하고 도구를 선택하게 하세요

  • 도구 description과 Zod .describe(...) 텍스트는 모델이 읽는 내용입니다 — 명확하게 유지하세요

  • 도구가 표시되지 않으면: MCP 오류 로그, mcp.json의 경로, 그리고 pnpm exec tsx src/index.ts가 터미널에서 깨끗하게 실행되는지 확인하세요

  • MCP 재시작 후에는 새 채팅을 선호하여 도구 카탈로그가 최신 상태가 되도록 하세요


MCP 도구

도구

설명

welcome_user

스모크 테스트 / 인사

list_season_ids

로드된 시즌 나열; 선택적 region (us, uk, canada, europe, latam_br, asia_pacific, specials)

get_season

시즌 레코드 + 연결된 ID

list_queen_ids

하나의 seasonId에 대한 캐스트 퀸 ID (필수)

search_queens

이름/별칭으로 퀸 검색 (기본 제한 20, 최대 50)

get_queen

전체 퀸 레코드

get_queen_earnings

경력 상금 내역 (현금, 자선, 비현금)

get_episode

에피소드 상세

get_lore

ID별 로어 항목

search_lore

쿼리, 태그, 퀸 및/또는 시즌으로 로어 검색

계획 (v2+): compare_queens, recommend_season, 통계 집계.


로드맵

v1

  • 안정적인 TypeScript 인터페이스 (ID + 확정 사실 + 로어)

  • JSON 데이터 + Zod 스키마

  • 핵심 읽기 도구 (퀸 / 시즌 / 에피소드 / 로어)

  • 로컬 Cursor 워크플로 문서화

v2

  • 더 풍부한 검색 및 통계

  • 추천

  • 데이터의 더 넓은 프랜차이즈 범위

v3

  • 의미 검색 (RAG)

  • 커뮤니티 평점 / 더 풍부한 메타데이터


기여

기여를 환영합니다 — 특히 **데이터 범위**의 공백을 채우는 것을 환영합니다:

  • 잘못된 확정 사실 수정

  • 누락된 퀸 / 시즌 / 에피소드 추가 (ID 규칙 사용)

  • 기존 ID를 연결하는 로어 추가

  • 챌린지 상금 (머니 범위) 아래에 나열된 시즌에 대해 누락된 챌린지 / 립싱크 earnings 채우기 (및 퀸 승리 행 미러링); .cursor/skills/drag-race-data/SKILL.md 머니 규칙 따르기

  • 슬라이스가 완료되면 이 README에서 해당 셀을 로 표시

  • 새 MCP 도구 및 문서

풀 리퀘스트 및 커밋

main에 직접 푸시하지 마세요 (브랜치 보호). 브랜치에서 작업하고 PR을 여세요.

브랜치 이름

  • feat/... — 새 기능 (타입, 도구, 시즌 데이터)

  • fix/... — 버그 수정

  • docs/... — README / 주석만

  • chore/... — 도구, 의존성, 정리

커밋 / PR 제목 (Conventional Commits 스타일)

접두사

용도

feat:

새 기능 또는 새 에이전트 동작을 가능하게 하는 데이터/타입

fix:

버그 수정

docs:

문서만

chore:

유지 관리 (의존성, 구성, 포맷팅)

refactor:

동작 변경 없는 코드 변경

예시:

  • feat: add Season and SeasonId types

  • feat: add US-S06 season + cast data

  • fix: correct porkchopIds for US-S01

  • docs: update data coverage checklist

PR 본문이유에 대한 간단한 요약과 작은 테스트 계획 (예: tsc, 어떤 범위 셀이 변경되었는지, MCP 도구 스모크 테스트).

이슈 또는 PR을 열어주세요.


라이선스

MIT


감사의 말

커뮤니티에 의해, 커뮤니티를 위해 만들어졌습니다. Drag Race 팬, MCP 빌더, AI 애호가 여러분 — 모두 환영합니다.

고지 사항: Drag Race MCP는 비공식 팬 프로젝트입니다. RuPaul, World of Wonder 또는 Drag Race 프랜차이즈와 제휴, 보증, 후원 관계가 없습니다.

A
license - permissive license
C
quality
B
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
Release cycle
0Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    An MCP server that provides detailed Pokémon information by integrating with the PokeAPI, allowing users to fetch comprehensive data about Pokémon and simulate battles.
    2
    2
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides standardized access to Pokemon data, allowing users to search, compare, and retrieve detailed information about Pokemon through natural language tools.
    5

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tkalejandro/drag-race-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server