Skip to main content
Glama

quark-mcp

夸克 MCP Server — через встроенную страницу AI-чата браузера 夸克 (quark.cn/chat, 千问) предоставляет возможность работы с изображениями, вопросов-ответов и генерации изображений по тексту без затрат на API.

На базе CDP + Playwright управляет браузером 夸克 в отдельном профиле: на странице чата загружает изображения, задаёт вопрос и извлекает ответ; API-ключ не требуется.

Возможности

工具

说明

ask_quark

Текстовый вопрос-ответ (повторное использование сессии, поддержка многоходового контекста; new_chat=true открывает новую сессию)

vision_analyze

Распознавание/анализ изображений (загрузка картинки на страницу чата с вопросом и получение ответа)

image_generate

Генерация изображений по тексту (естественный запрос, за раз примерно 4 картинки; сохраняется локально и возвращается путь)

video_analyze

Видеоанализ (скачать/локальный → извлечение кадров с таймкодом → разбивка на плитки → распознавание; опционально локальная транскрипция)

daemon_start

Запускает демон 夸克 (отдельный профиль, порт 9224, идемпотентно)

daemon_status

Проверка состояния демона и статуса входа

daemon_stop

Останавливает демон 夸克

Related MCP server: Percepta MCP Server

Как это работает

Claude Code ──MCP stdio──> server.py ──> quark_mcp/quark_ai.py ──CDP──> 夸克浏览器(独立 profile)
                                         quark_mcp/video_analyze.py         │
                                                                  quark.cn/chat(网页版千问)
  • 夸克 запускается с --remote-debugging-port=9224 в отдельном профиле, статус входа сохраняется.

  • Изображения отправляются через DataTransfer-инъекцию (JS_DROP_IMAGE), а не filechooser; отправка происходит после появления списка вложений.

  • Критерий завершения ответа: в card class AI-ответа [data-chat-answers-wrap] появляется completed.

Требования к окружению

  • Python 3.10+

  • браузер 夸克 (автоматически определяет переменную окружения QUARK_PATH или стандартные пути установки)

  • Для video_analyze нужны ffmpeg/ffprobe (извлечение кадров) + pillow (надписи с таймкодом, сборка плиток) +

  • Опционально: yt-dlp (загрузка онлайн-видео), faster-whisper (transcribe=True для транскрипции аудио)

Установка

pip install fastmcp playwright websocket-client
# 可选功能依赖
pip install pillow           # 视频帧时间戳烧录 + 拼图(video_analyze 必需)
pip install yt-dlp           # 在线视频下载(video_analyze 传 URL 时)
pip install faster-whisper   # 音频转写(transcribe=True)

yt-dlp.exe, установленный через pip, часто ложится в Scripts/ и не попадает в PATH; в коде уже есть подстраховка: если команда yt-dlp не найдена, автоматически используется python -m yt_dlp, так что настраивать PATH не обязательно.

Использование

1. Как MCP-сервер (Claude Code и т. п.)

{
  "mcpServers": {
    "quark-mcp": {
      "command": "python",
      "args": ["/path/to/quark-mcp/server.py"]
    }
  }
}

2. HTTP-режим (отладка)

python server.py --port 8080

3. Прямой запуск через CLI (без MCP)

# 启动 daemon(首次需手动登录一次,登录态持久化)
python quark_mcp/quark_ai.py --start
python quark_mcp/quark_ai.py --status

# 纯文本问答
python quark_mcp/quark_ai.py --ask "帮我解释一下 CDP 是什么"

# 图片识别
python quark_mcp/quark_ai.py --image photo.jpg --question "请描述这张图片"

# 文生图(默认存 ~/.claude/quark-images)
python quark_mcp/quark_ai.py --gen "一只橘猫坐在窗台看夕阳,插画风格"
python quark_mcp/quark_ai.py --gen "复古黄铜怀表" --outdir ./imgs --max-images 2

# 视频分析(本地文件或 URL)
python quark_mcp/video_analyze.py --video demo.mp4
python quark_mcp/video_analyze.py --video demo.mp4 --transcribe

Примечания по генерации изображений

  • Модель: следует модели по умолчанию на странице диалога 夸克 (千问), её нельзя изменить.

  • Запуск: отдельной кнопки/переключателя «генерации изображений» нет, генерация срабатывает от обычного словесного запроса (в промпте нужно явно написать, что рисовать).

  • Пропорции: в веб-версии нет селектора пропорций, поэтому пропорции нужно описать словами в промпте (например, «горизонтальная композиция 16:9»).

  • Результат: за раз получается примерно 4 картинки, примерно 960×1280.

  • Загрузка: CDN-URL подписаны auth_key, поэтому картинки нужно тянуть через контекст браузера (page.request), обычный urllib даст 403.

# 返回结构
{"ok": True,
 "images": ["C:/Users/.../.claude/quark-images/quark_20260823-103519_1.png", ...],
 "text": "已生成 2 张图片, 保存至 ...",
 "meta": {"found": 4, "details": [{"path": ..., "bytes": ..., "width": 960, "height": 1280}],
          "model": "千问(夸克对话页默认)"}}

Конфигурация

  • Путь к 夸克: установите переменную окружения QUARK_PATH с указанием исполняемого файла.

  • Порт CDP: по умолчанию 9224 — см. CDP_PORT в quark_ai.py (порт разнесён с doubao-mcp, чтобы использовать 9223, можно сосуществовать).

  • Вход: отдельный профиль находится в ~/.claude/quark-ai-profile; после первого daemon_start нужно один раз войти в систему вручную.

  • Каталог для картинок: по умолчанию ~/.claude/quark-images, можно переопределить через outdir.

Часто задаваемые вопросы

  • Код выхода 1 (CDP недоступен / не найден 夸克): демон не запущен — сначала выполните daemon_start; либо задайте QUARK_PATH.

  • Код выхода 2 (не выполнен вход): откройте страницу диалога и один раз войдите вручную.

  • Код выхода 3 (проблема с изображением): не существует указанного пути или не удалось загрузить изображение.

  • Код выхода 4 (сбой взаимодействия): не найдено поле ввода / кнопка отправки, обычно из-за изменения страницы.

  • Код выхода 5 (таймаут): ответ генерируется долго, увеличьте timeout (для генерации изображений по умолчанию 300 с).

  • Код выхода 6 (пустой результат): ответ пуст или не создано ни одного изображения, возможно риск-контроль или фильтрация контента.

Зависимость от структуры страницы

Чисто веб-операции означают, что при изменении структуры страницы интерфейса 夸克 может сломаться. Проверено на текущем наборе зависимостей (SEL в quark_ai.py, на базе 夸克 7.1.2.956 / Chromium 144 + веб-версия 4.0.0):

用途

选择器

Поле ввода

textarea (обычный textarea, не contenteditable)

Отправка

.submit-button

Роль ответа AI

[data-chat-answers-wrap]

Роль вопроса пользователя

[data-chat-question-wrap]

Признак завершения

в class элемента [class*="answer-common-card"] появляется completed

Вложение

[class*="upload-file-list"] (появляется только после монтирования вложения)

Два подводных камня:

  1. Признак завершения — это completed на карточке ответа, а не .qk-markdown -> qk-markdown-complete. Второй вариант на веб-версии отсутствует — он используется в клиентской панели; если скопировать его, результат всегда будет считаться «не завершённым».

  2. В генерации изображений нужно ждать стабилизации набора подписанных URL картинок, а опираться только на completed нельзя: текст завершается раньше, а финальные изображения появляются ещё через ~45 секунд, когда заменяется плейсхолдер-анимация. Только если после completed подождать ещё IMAGE_GRACE (120 секунд) и картинки всё ещё нет, можно считать, что в этом раунде изображений нет.

License

MIT

A
license - permissive license
Not graded
quality - not tested
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

View all related MCP servers

Related MCP Connectors

  • LLM chat, text summarization and AI image generation

  • AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

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/007bba/quark-mcp'

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