Skip to main content
Glama
AI1379
by AI1379

mihoyo-mcp

Ein eigenständiger MCP-Server für MiHoYo-Spiele – ausgelegt für Miyoushe (CN-Server) und HoYoLAB (Global-Server), basierend auf seriaati/genshin.py (MIT). Er kann von jedem MCP-Client (nahida-bot, Claude Desktop, Codex …) direkt verwendet werden.

Designgrenzen

MCP regelt, „wie mit MiHoYo gesprochen wird“; der Client regelt, „wann gefragt wird und wem das Ergebnis danach mitgeteilt wird.“

  • Planung (Cron), Schwellenwertstrategien, Nachrichten-Push → Client (nahida-bot hat bereits Scheduler / Channel)

  • Login, Speicherung der Zugangsdaten, API-Aufrufe, Alarm-Deduplizierung → dieser Dienst

  • Zugangsdaten verlassen nie die Sicherheitsgrenze: Cookies liegen vollständig im Dienst (Fernet-Verschlüsselung), Tool-Ergebnisse enthalten nur account_id, im Agent-Kontext erscheinen keine Tokens

                ┌─────────────────────┐
                │     nahida-bot      │
                │  Cron / Scheduler   │
                │       │             │
                │       ▼             │
                │  MCP Client ───────────────┐
                │       ▼             │     │ MCP (stdio)
                │  QQ Channel         │     ▼
                └─────────────────────┘ ┌──────────────────┐
                                       │    mihoyo-mcp     │
                                       │ QR login          │
                                       │ credential vault  │
                                       │ daily notes       │
                                       │ alert dedup state │
                                       └────────┬──────────┘
                                                │
                                         genshin.py
                                                │
                                     米游社 / HoYoLAB API

Related MCP server: Xiaohongshu MCP Server

Aktuelle Funktionen

Funktion

Status

Miyoushe-QR-Login (nicht blockierender Start/Poll)

✅ Nutzt die Web-QR-Kette von genshin.py

Mehrere Konten + Spielkonten-Erkennung (uid)

Echtzeit-Notiz für Honkai: Star Rail

starrail_daily_note

Echtzeit-Notiz für Genshin

genshin_daily_note

Echtzeit-Notiz für Zenless Zone Zero

zzz_daily_note

Star-Rail-Benachrichtigungsprüfung (Deduplizierung über mehrere Abrufe)

starrail_check_alerts

HoYoLAB-Login

⏳ Noch nicht angebunden (siehe Roadmap)

Tool-Übersicht

Tool

Beschreibung

auth_start_qr_login(platform)

Erstellt die QR-Anmeldung, liefert login_url + base64-PNG-QR-Code + session_id

auth_poll_qr_login(session_id)

Pollt den QR-Status: pending / scanned / confirmed (nach Bestätigung werden Anmeldeinformationen automatisch gespeichert und Spielkonten ermittelt)

auth_status()

Anzahl angemeldeter Konten und wartende Login-Sitzungen

accounts_list()

Listet Konten und deren Spielkonten (uid) auf, ohne Zugangsdaten

accounts_refresh(account_id?)

Ermittelt die Spielkonten eines Kontos neu

starrail_daily_note(account_id?)

Trailblaze-Kraft (inkl. Reserve), tägliches Training, Simulated Universe, Expeditionen

genshin_daily_note(account_id?)

Harz, Serenitea-Topf-Münzen, Tagesaufträge, Expeditionen

zzz_daily_note(account_id?)

Energie, Aktivität, Video-Laden usw.

starrail_check_alerts(account_id?, stamina_threshold=200)

Gibt nur „meldenswürdige Änderungen“ zurück; leere Liste = Ruhe bewahren

account_id kann weggelassen werden, wenn nur ein Konto vorhanden ist.

Namenskonvention: Im Entwurf wurden punktierte Namen wie mihoyo.auth.start_qr_login verwendet; die MCP-Spezifikation (SEP-986) verlangt aber, dass Toolnamenchild ^[a-zA-Z0-9_-]{1,64}$ passen. Punkte würden dazu führen, dass einige Clients das Laden verweigern. Daher wird die flache Snake-Case-Namensgebung benutzt, mit Präfixen wie auth_ / accounts_ / starrail_ als Namensraum.

Warum check_alerts in der MCP ist

Die Ressourcen-Schwellenwertlogik (217 >= 200 && recovery <= 1800) muss keine LLM-Tokens verbrauchen, während „Expeditionen zurück“ bei jedem Abruf erneut gemeldet wird, inakzeptabel ist. Der Status der Alarm-Deduplizierung (armed/re-arm) gehört zum Integrationszustand von Mioshe-In Munishe und damit natürlich in diesen Dienst. Der Cron des Clients braucht nur noch:

starrail_check_alerts() → alerts == [] → 静默
                      → alerts != [] → 推送消息

Schnellstart

uv sync                       # 安装依赖
uv run pytest                 # 运行测试
uv run python scripts/smoke_stdio.py   # stdio 握手冒烟测试
uv run mihoyo-mcp             # 启动 stdio server

Beispielkonfiguration für Clients (Claude Desktop / beliebige stdio-MCP-fähige Clients, bel):

{
  "mcpServers": {
    "mihoyo": {
      "command": "uv",
      "args": ["run", "--directory", "D:/Projects/mihoyo-mcp", "mihoyo-mcp"]
    }
  }
}

Konfiguration (Umgebungsvariablen)

Variable

Standard

Beschreibung

MIHOYO_MCP_DATA_DIR

~/.mihoyo-mcp

Datenverzeichnis (Konten / Zugangsinn / Alarmstatus)

MIHOYO_MCP_FERNET_KEY

automatisch erzeugt

Verschlüsselungsschlüssel für Zugangsdaten; in Produktion in einen Secret Store legen

MIHOYO_MCP_STAMINA_THRESHOLD

200

Standard-Balkenschwelle für starrail_check_alerts

MIHOYO_MCP_LOG_LEVEL

INFO

Protokollier (Logs gehen nach stderr, stdout bleibt MCP-Protokoll reserviert)

Datenordner-Inhalt:

~/.mihoyo-mcp/
├── accounts.json     # 公开账号元数据(无秘密)
├── credentials.enc   # Fernet 加密的 Cookie/token 库
├── alert_state.json  # 告警去重状态
└── fernet.key        # 未设置环境变量时自动生成的 key(带告警日志)

Verzeichnisstruktur

src/mihoyo_mcp/
├── server.py          # MCPServer 装配 + stdio 入口
├── config.py          # 环境变量配置
├── context.py         # AppContext 单例装配
├── errors.py          # 领域错误(映射为 MCP tool error)
├── accounts/          # 账号模型 / 注册表 / 加密凭据库
├── auth/              # 扫码登录(start/poll 会话)
├── games/             # genshin.py 客户端工厂 + 便笺获取/归一化
├── alerts/            # 告警去重状态机(纯逻辑,可测)
└── tools/             # MCP 工具注册(auth / accounts / notes)

Login-Ablauf (Miyoushe)

  1. auth_start_qr_login("miyoushe") → sende dem Benutzer den QR-Code, der aus qr_png_base64 (oder login_url) erzeugt wird

  2. Der Benutzer scannt den QR-Code mit der Miyoushe-App und bestätigt auf dem Telefon

  3. auth_poll_qr_login(session_id) pollt solange, bis confirmed

  4. Der Dienst speichert intern die v2-Cookies (account_id_v2 / account_mid_v2 / ltoken_v2 / cookie_token_v2 …) and er ermittelt automatisch die Spielkonten; danach ist für den Agenten nur eine account_id wie miyoushe:123456 sichtbar

Roadmap

Priorität sortiert nach abnehmenden Projekten (nahida-bot-channel #57 etc.):

  1. ✅ Account / Auth – Miyoushe-Tool-Login, Multi-Konto, Rollenerkennung

  2. ✅ Daily Note + Alerts – EDT / Genshin / ZZZ-Notizen, check_alerts

  3. ⏳ HoYoLAB-Login – E-Mail/Passwort (von genshin.py unterstützt) oder OS-QR-Scan (Endpoint noch zu verifizieren)

  4. Check-in / Einlösungscodes (check_in / codes.list / codes.redeem)

  5. Profile / Charakterverkart (Enka, Panel-Query)

  6. Spielressourcen / Build / Aufbauberechnung (hakush.in / Yatta / Ambr)

  7. Gakya import & statistics

  8. Renderer (optional Bildkartengenerierung, falls Tools liefern temporary-data + eigener Renderer tool)

Referenzprojekte und Lizenzen

Projekt

Lizenz

Rolle in dieses Projekt

seriaati/genshin.py

MIT

Direkte Abhängigkeit: API-Wrapper, DS, Cookies, QR-Login

seriaati/hoyo-buddy

GPL-3.0

Architekturort-Referenz (Konten/Zugangsdaten/Alerts), kopiert keinen Code

Ljzd-PRO/nonebot-plugin-mystool

MIT

Referenz für das Verhalten (Fehlerbehandlung, Fallstricke bei Notizfeldern)

UIGF-org/mihoyo-api-collect

CC BY-NC 4.0

Protokoll-Nachschlagewerk, nur zur Abfrage/Verifizierung, dont re implement

[nraschen-orz/March](https://github.com/Marchen-or`or in private)

not tagged

Referenz for modern Chinese-Nenoscha-Lok,L_login

Dieses Projekt ist unter MIT License (Linkvaluelicensstat) erlaubt.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Discord using personal user tokens instead of bot applications, allowing for seamless message management and server exploration. It provides tools for reading history, sending messages, and searching across channels and DMs directly through MCP-compatible clients.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to interact with Xiaohongshu to publish image notes, search content, and manage account details. It uses Playwright to securely handle session authentication and API signatures through the platform's internal network context.
    2
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server enabling LLMs to interact with the NodeSeek forum, supporting account status retrieval, daily check-in, post browsing, reading, replying, and posting.
    4
  • A
    license
    Not graded
    quality
    C
    maintenance
    A MCP server that exposes QQ bot capabilities over Streamable HTTP, enabling clients to query bot status, read group and friend info, fetch chat history, and send group/private text messages.
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.

  • MCP server for GLM chat completions using Zhipu AI models via AceDataCloud

  • MCP server for AI dialogue using various LLM models via AceDataCloud

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/AI1379/mihoyo-mcp'

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