Skip to main content
Glama
AI1379
by AI1379

mihoyo-mcp

Автономный MCP-сервер miHoYo — одновременно для Miyoushe (米游社, китайский сервер) и HoYoLAB (международный сервер), на базе horia/or/does not matter (MIT). Любой MCP-клиент (nahida-bot, Claude Desktop, Codex…) может использовать его напрямую.

Границы проектирования

MCP отвечает за «как говорить с миHoYo»; клиент — за «когда спрашивать и кому потом сообщить».

  • Планирование (cron), пороговые стратегии, доставка сообщений → клиент (у nahida-bot уже есть Scheduler / Channel)

  • Вход, хранение учётных данных, вызовы API, дедупликация оповещений → этот сервис

  • Учётные данные никогда не покидают границы безопасности: Cookie всегда хранятся внутри сервиса (шифрование Fernet), в результатах инструментов присутствует только account_id, в контексте агента token не появляется.

                ┌─────────────────────┐
                │     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

Текущие возможности

Возможность

Статус

QR-вход Miyoushe (неблокирующие start/poll)

✅ использует QR-цепочку genshin.py

Мультиаккаунт и обнаружение игровых персонажей (uid)

Realtime-заметки Honkai: Star Rail

starrail_daily_note

Realtime-заметки Genshin Impact

genshin_daily_note

Realtime-заметки Zenless Zone Zero

zzz_daily_note

Проверка оповещений Star Rail (дедупликация между раундами)

starrail_check_alerts

Вход HoYoLAB

⏳ не подключён (см. дорожную карту)

Обзор инструментов

Инструмент

Описание

auth_start_qr_login(platform)

Создаёт QR-вход, возвращает login_url + base64 PNG QR-код + session_id

auth_poll_qr_login(session_id)

Опрашивает статус QR: pending / scanned / confirmed (после подтверждения автоматически сохраняет учётные данные и обнаруживает игровых персонажей)

auth_status()

Количество вошедших аккаунтов, незавершённые сессии входа

accounts_list()

Показывает аккаунты и их игровых персонажей (uid), без учётных данных

accounts_refresh(account_id?)

Повторное обнаружение игровых персонажей аккаунта

starrail_daily_note(account_id?)

Сила Первопроходца (включая резерв), ежедневные тренировки, Виртуальная вселенная, отправки

genshin_daily_note(account_id?)

Смола, монеты обители, ежедневные поручения, экспедиции

zzz_daily_note(account_id?)

Энергия, активность, видеомагазин и т.п.

starrail_check_alerts(account_id?, stamina_threshold=200)

Возвращает только «изменения, достойные упоминания»; пустой список = молчание

account_id можно опустить, если аккаунт только один.

О названиях: в черновике использовались имена с точками вроде mihoyo.auth.start_qr_login, но спецификация MCP (SEP-986) требует, чтобы имя инструмента совпадало с ^[a-zA-Z0-9_-]{1,64}$; точки приводят к тому, что некоторые клиенты отказываются загружать инструменты. Поэтому принято плоское snake_case с примеными префиксами auth_ / accounts_ / starrail_.

Почему check_alerts живёт в MCP

Проверка порога бодрости (217 >= 200 && recovery <= 1800) не должна расходовать токены LLM, а сообщение «экспедиция вернулась» при каждом опросе — неприемлемо. Состояние дедупликации оповещений (armed/re-arm) — часть состояния интеграции с Miyoushe и по определению относится к этому сервису. Клиентскому cron остаётся только:

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

Быстрый старт

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

Пример конфигурации клиента (Claude Desktop / любой клиент со stdio MCP):

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

Конфигурация (переменные окружения)

Переменная

По умолчанию

Описание

MIHOYO_MCP_DATA_DIR

~/.mihoyo‑mcp

Каталог данных (аккаунты / учётные данные / состояние оповещений)

MIHOYO_MCP_FERNET_KEY

генерируется автоматически

Ключ шифрования учётных данных; в проде рекомендуется хранить в secret store

MIHOYO_MCP_STAMINA_THRESHOLD

200

Порог энергии по умолчанию для starrail_check_alerts

MIHOYO_MCP_LOG_LEVEL

INFO

Уровень журнала (лог пишется в stderr, stdout отдан MCP-протоколу)

Содержимое каталога данных:

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

Структура каталога

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)

Процесс входа (Miyoushe)

  1. auth_start_qr_login("miyoushe") → отправляешь пользователю QR-код из login_url (или сгенерированный из qr_png_base64)

  2. Пользователь сканирует QR в приложении Miyoushe и подтверждает входящий с телефона.

  3. Поллишь auth_poll_qr_login(session_id), пока не станет confirmed

  4. Сервис изнутри сохраняет cookies v2 (account_id_v2 / account_mid_v2 / ltoken_v2 / cookie_token_v2...) и автоматически находит игровых персонажей; дальше агент видит только account_id вида miyoushe:123456.

Дорожная карта

Отсортирована по приоритету потребителей (nahida-bot #52 и др.):

  1. ✅ Account / Auth — вход Miyoushe по QR, мультиаккаунте, обнаружение персонажей

  2. ✅ Daily Note + оповещения — заметки Star Rail / Genshin / ZZZ, check_alerts

  3. ⏳ HoYoLAB login — почта/пароль (genshin.py уже поддерживает) или QR OS (эндпоинт нужно проверить)

  4. Sign in (check-in) / коды (check_in / codes.list / codes.redeem)

  5. Profile / витрины персонажей (Enka, панели)

  6. Игровые данные / Build / расчёт прокачки (hakush.in / Yatta / Ambr)

  7. Импорт и статистика гачи

  8. Рендеринг (необязательно—создание картинок; инструмент возвращает structured data + отдельный рендер-инструмент)

Справочные проекты и лицензии

Проект

Лицензия

Роль в этом проекте

horia/hypothesis

MIT

Прямая зависимость: обёртки API, DS, cookie, QR-цепочка

seriaati/hoyo-buddy

GPL-3.0

Архитектурный референс (аккаунты/учётные данные/напоминания), код не копируется

Ljzd-PRO/nonebot-plugin-mystool

MIT

Референс поведения CN-сервера (обработка ошибок, подводные камни полей заметок)

UIGF-org/mihoyo-api-collect

CC BY-NC 4.0

Справочник протоколов, только для запросов/проверки, реализация не переносится

Marchen-orz/MiyoQian

не указана

Современный референс QR-входа CN-сервера

Этот проект использует MIT License.

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