{
  "base": "https://mcp.gumy.ai",
  "updated": "2026-08-09",
  "servers": [
    {
      "id": "auto",
      "title": "Auto Catalog (ProRide)",
      "endpoint": "https://mcp.gumy.ai/auto/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "search_cars",
        "get_car_details",
        "suggest_filters",
        "car_market_stats"
      ],
      "description": "ProRide car catalog (MCP Apps widget) — import under order from Korea/China/Japan/Europe plus in-stock vehicles (cars, moto, trucks, special machinery) with the FULL landed price (total_price_rub — с доставкой и растаможкой), photos from img.gumy.space and a price-vs-market signal. `search_cars` takes a natural-language `query` in RU/EN/translit («красная бмв до 3 млн из кореи», parsed via /v1/search/parse, explicit args win) plus explicit filters: brand/model/vehicle_type/body_type/fuel_type/transmission/drive_type/country/color, price/year/mileage/power bounds, is_new, sort, page/per_page. `get_car_details(car_id)` opens the full card: gallery, price_breakdown (авто/доставка/пошлина/утиль/брокер/комиссия), price_context (median/diff) and up to 3 similar cars. `suggest_filters` returns drill-down chips with live counts (модель → кузов → цена…) whose clicks seed the next search; `car_market_stats` returns exact live totals + price summary + an optional group_by facet (no widget — живые цифры the persona phrases itself). Cards are already on screen after a call — the persona comments as a car-import manager instead of retelling the list.",
      "upstream": "custom FastMCP (servers/auto) — fastmcp 3.x + httpx, read-only pass-through to the public ProRide REST API api.gumy.space (X-API-Key injected server-side from AUTO_API_KEY, endpoint keyless for clients); widget: hand-written self-contained card viewer (ui://auto/results-v1, modes cars/car/chips)"
    },
    {
      "id": "web-search",
      "title": "Web Search (DuckDuckGo)",
      "endpoint": "https://mcp.gumy.ai/search/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "search",
        "fetch_content"
      ],
      "description": "Keyless web search — the universal 'current events / after cutoff' slot for every persona. `search` returns titles+URLs+snippets from DuckDuckGo; `fetch_content` reads a chosen page as clean text (SSRF-guarded, paginated). curl_cffi Chrome-TLS impersonation defeats DDG's fingerprint block. For agents: search first, fetch_content only when the snippet isn't enough.",
      "upstream": "PyPI duckduckgo-mcp-server @ 0.5.0 [browser] — native Streamable HTTP"
    },
    {
      "id": "wikipedia",
      "title": "Wikipedia (multilingual)",
      "endpoint": "https://mcp.gumy.ai/wikipedia/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "search_wikipedia",
        "get_summary",
        "get_article",
        "get_sections",
        "get_section"
      ],
      "description": "Keyless Wikipedia in six languages — every tool takes a required `language` parameter (en/ru/es/pt/id/ja) and reads the matching <language>.wikipedia.org. Curated tool set: search_wikipedia to pin the exact title, get_summary for grounded short answers, get_article / get_sections + get_section for depth. Universal fact/bio/lore base for any persona. Replaces the former per-language wikipedia-en / wikipedia-ru servers; their legacy endpoints (/wikipedia/en/mcp, /wikipedia/ru/mcp) alias to this same server.",
      "upstream": "custom FastMCP module (servers/wikipedia/main.py) — fastmcp 3.x + httpx, MediaWiki Action/REST API, egress via xray proxy"
    },
    {
      "id": "dns",
      "title": "DNS Toolkit",
      "endpoint": "https://mcp.gumy.ai/dns/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "check_domain",
        "check_domains",
        "dns_lookup"
      ],
      "description": "Domain availability + DNS lookups — the 'can I register this name' slot. `check_domain` says AVAILABLE/TAKEN via RDAP (rdap.org, authoritative registry check; DNS-NS fallback for TLDs without RDAP); `check_domains` batches a list; `dns_lookup` returns raw records (A/MX/NS/TXT/...). For a founder/brand persona: brainstorm names, then check_domains to keep only the free ones. Registry says registered-or-not; premium/reserved pricing is whatever the registrar quotes at checkout.",
      "upstream": "custom FastMCP module (servers/dns/main.py) — mcp 1.28.1 + dnspython 2.8.0, direct egress"
    },
    {
      "id": "chess",
      "title": "Chess Board",
      "endpoint": "https://mcp.gumy.ai/chess/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "list_famous_games",
        "load_famous_game",
        "set_position",
        "make_move",
        "legal_moves",
        "fetch_lichess_game",
        "load_lichess_study"
      ],
      "description": "Interactive chess board (MCP Apps widget, lichess look) — play a full game with a persona, replay famous games, pull games/studies from lichess. The play loop: keep the current FEN in the conversation, call `make_move` for the user's move, then again for the persona's reply; rules are enforced server-side (python-chess), illegal moves return {error, legal_moves_sample}. `list_famous_games`/`load_famous_game` open a curated classic (Immortal, Opera, Game of the Century, ...) by id or alias with replay controls; `set_position` shows any FEN; `legal_moves` lists all legal SAN moves; `fetch_lichess_game`/`load_lichess_study` import from lichess's anonymous PGN endpoints. Board renders as a widget — never paste FEN/ASCII boards as text.",
      "upstream": "custom FastMCP (servers/chess) — fastmcp 3.x + python-chess; widget: chessground+chess.js; lichess anonymous PGN endpoints"
    },
    {
      "id": "comics",
      "title": "Life Comics",
      "endpoint": "https://mcp.gumy.ai/comics/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "show_life_comic"
      ],
      "description": "Character life-story comic strips (MCP Apps widget) — a drawn multi-panel biography of a gumy.ai character, with per-panel captions, dates and quotes, browsable panel by panel. `show_life_comic(character=<slug>)` fetches the strip from the mascot catalog and renders the viewer widget; a character without an authored comic returns {error} and nothing renders. The comic is already on screen after the call — comment on it in the character's voice instead of retelling the captions.",
      "upstream": "custom FastMCP (servers/comics) — fastmcp 3.x; data: mascot public read API (/v1/characters/<slug>/comics); widget: hand-written self-contained viewer"
    },
    {
      "id": "realty",
      "title": "Realty (новостройки, 38 городов)",
      "endpoint": "https://mcp.gumy.ai/realty/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "search_apartments",
        "search_complexes",
        "get_complex",
        "get_apartment",
        "get_environment",
        "market_summary",
        "get_mortgage",
        "list_cities",
        "list_developers",
        "list_tags",
        "list_collections",
        "list_districts"
      ],
      "description": "Мультигородской new-build catalog (MCP Apps widget) on the city-first api.kochkareva-agent.ru v2.21 — 38 trade zones (Москва, Петербург, Сочи, Екатеринбург … плюс Дубай/AED, Таиланд/THB, Турция/EUR), every tool takes `city` (default perm) and every payload carries city/cityName/currency so the widget prices cards in the zone's currency. `search_apartments`/`search_complexes` take a natural-language `query` (parsed to filters via /search/parse, explicit args win) plus the full v2.21 filter contract: rooms/format/housing-class/decoration/price/price-per-m²/area/floor bounds, environment `tags` (park/water/quiet/school…; legacy near_* flags stay as compat aliases folded into tags), `has_discount` (лот дешевле прайса застройщика — cards get a −N % badge), has_balcony/has_decoration/not_last_floor, metro proximity (near_metro/metro_walk_min), payment_option/object_type and analytics sorts buyer_score/investor_score. `get_complex(slug)`/`get_apartment(id)` open detail cards; `get_environment(complex_slug)` shows the ЖК's proven environment tags with distances («а что вокруг?»); `market_summary(city, …)` returns live counts + price floors under any filter (no widget — живые цифры the persona phrases itself); `get_mortgage(complex_slug|kind)` shows mortgage programs with rates and banks; `list_cities`/`list_developers`/`list_tags`/`list_collections`/`list_districts` render clickable navigation chips that seed the next search. Cards are already on screen after a call — the persona comments as a realtor instead of retelling the list. For a real-estate persona (Елена Кочкарёва).",
      "upstream": "custom FastMCP (servers/realty) — fastmcp 3.x + httpx, read-only pass-through to the city-first api.kochkareva-agent.ru (v2.21, /api/{city}/…, 38 zones); widget: hand-written self-contained card viewer (ui://realty/results-v4, six modes, currency-aware)"
    },
    {
      "id": "pokeapi",
      "title": "PokéAPI",
      "endpoint": "https://mcp.gumy.ai/pokeapi/mcp",
      "transport": "streamable-http",
      "auth": "none",
      "tools": [
        "pokeapi_get_pokemon",
        "pokeapi_get_type_matchups",
        "pokeapi_get_move",
        "pokeapi_get_ability",
        "pokeapi_get_item",
        "pokeapi_get_nature",
        "pokeapi_find_pokemon"
      ],
      "description": "Keyless, read-only access to Pokémon game data through Generation IX (stats, types, abilities, moves, evolution, sprites, type matchups).",
      "upstream": "npm @cyanheads/pokeapi-mcp-server @ 0.1.6"
    }
  ],
  "personas": [
    {
      "persona": "Elon Musk",
      "mcp": [
        "auto",
        "dns",
        "wikipedia",
        "web-search"
      ]
    },
    {
      "persona": "Pikachu",
      "mcp": [
        "pokeapi",
        "wikipedia",
        "web-search"
      ]
    },
    {
      "persona": "Zeus",
      "mcp": [
        "wikipedia",
        "web-search"
      ]
    },
    {
      "persona": "Aphrodite",
      "mcp": [
        "wikipedia",
        "web-search"
      ]
    },
    {
      "persona": "Ares",
      "mcp": [
        "wikipedia",
        "web-search"
      ]
    },
    {
      "persona": "Chess players (chess universe)",
      "mcp": [
        "chess"
      ]
    },
    {
      "persona": "Cleopatra (life-story comic, stage 1)",
      "mcp": [
        "comics"
      ]
    },
    {
      "persona": "Elena Kochkareva (real-estate agent — Russian cities, Dubai, Thailand, Turkey)",
      "mcp": [
        "realty"
      ]
    },
    {
      "persona": "Russia universe",
      "mcp": [
        "wikipedia",
        "web-search"
      ]
    }
  ]
}
