Skip to main content
Glama
mbaozi

WebLLMRelay

by mbaozi

WebLLMRelay — веб-MCP-релей для больших языковых моделей

Подключите веб-модели к агенту: через единый MCP-интерфейс, используя веб-логин, вызывайте возможности диалога и генерации изображений больших моделей различных платформ — без API-ключей и без расходов на API. Если веб-поиск — это способ дать агенту «найти информацию», то здесь агент может «спросить эксперта» — делегировать задачу той веб-модели, которая с ней лучше справится.

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

Требования к окружению: Python 3.10+

  1. Установка зависимостей

    python -m pip install -r requirements.txt
  2. Загрузка встроенного браузера (обязательно загрузите в каталог browsers/ проекта — приложение распознаёт только это расположение)

    set PLAYWRIGHT_BROWSERS_PATH=D:\path\to\WebLLMRelay\browsers
    python -m playwright install chromium

    ⚠️ Если не задать PLAYWRIGHT_BROWSERS_PATH, браузер будет загружен в системный кэш, и при запуске появится ошибка «Executable doesn't exist». Для сетей в Китае можно добавить зеркало: set PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright/

  3. Запуск сервиса: start_webllmrelay.bat (если уже запущен — откроется страница; если нет — запустится сервис и откроется страница), или python -m webllmrelay.webui_server --port 8787

  4. Вход на платформу: в WebUI нажмите «Вход через веб» для нужной платформы → войдите в окне встроенного браузера → закройте окно — состояние входа будет автоматически обнаружено и сохранено

  5. Проверка платформы: нажмите «Тест диалога» для проверки текстовых ответов, нажмите «Тест генерации изображений» для проверки генерации (после успеха платформа автоматически помечается как проверенная)

  6. Подключение MCP-клиента: клиент подключается к http://127.0.0.1:8787/mcp (HTTP) или через command (stdio). Конкретная настройка — на странице WebUI в разделе «Подключение MCP-клиента», нажмите «Копировать» и используйте.

Related MCP server: open-use

Инструменты MCP

После подключения три инструмента автоматически становятся доступны агенту. Обычно вызывать вручную не нужно — просто скажите ассистенту на естественном языке, и он сам выберет инструмент; чтобы принудительно использовать инструмент, добавьте > перед сообщением; чтобы отключить инструмент, добавьте !.

Пользователь: «Уточни через Doubao: какие новые возможности в Python 3.13?» Ассистент: вызывает ask_web_llm(platform="doubao", prompt="Какие новые возможности в Python 3.13?")

ask_web_llm — текстовый диалог / делегирование задач

Параметр

Описание

platform

doubao / deepseek / kimi / qwen / zhipu / yuanbao

prompt

Вопрос или задача (вопрос, написание, резюме, перевод, код и т.д.)

conversation_id

Необязательно; пусто = новый диалог, передано = продолжение (сохранение контекста)

Возвращает {"answer", "conversation_id"}.

ask_web_llm_image — генерация изображений

Параметр

Описание

platform

doubao / qwen / zhipu / yuanbao поддерживают генерацию (deepseek / kimi пока не поддерживают)

prompt

Описание изображения (промпт)

conversation_id

Необязательно; если передано, можно продолжить на основе исходного изображения

Возвращает {"images": [{"url", "path"}], "conversation_id"}:

  • url: адрес изображения, предоставляемый локальным сервисом, можно скачать / показать / открыть;

  • path: абсолютный путь к изображению на локальном диске, агент может читать его локально.

Изображения автоматически скачиваются MCP в сессии браузера в generated_images/ (защита от горячих ссылок уже обработана внутри), при кэше более 100 изображений автоматически удаляются самые старые.

list_web_llms — список платформ

Без параметров, возвращает [{"platform", "name", "supports_image", "verified"}], platform — это значение для инструмента вопросов.

Архитектура

webllmrelay/
├── config.py        # ProviderSpec(每平台知识)+ 平台/登录态持久化
├── browser.py       # BrowserManager:会话式浏览器生命周期、死浏览器自动恢复
├── lock.py          # 持久化浏览器 profile 互斥锁
├── adapters.py      # PlatformAdapter 接口 + CssAdapter 默认实现 + 注册表
├── providers.py     # ask_web_llm / ask_web_llm_image / list_web_llms
├── mcp.py           # MCP server 定义与工具注册
├── activity_log.py  # 活动日志(登录 / 测试 / 调用)
├── login_worker.py  # 登录窗口子进程
├── probe.py         # 平台适配诊断 CLI(接入新平台用)
├── webui.py         # FastAPI:平台管理 / 测试 / 日志
├── webui_server.py  # WebUI 启动入口
└── webui_static/    # WebUI 前端页面

Границы требований

  • Одиночный вызов модели: агент сам решает, какую модель спросить, без «сравнения нескольких моделей».

  • Формат ответа: что возвращает веб-страница, то и есть, без форматирования.

  • Вход: выполняется пользователем вручную (WebUI «Вход через веб» открывает окно браузера); состояние входа реально проверяется по индикатору входа каждой платформы, автоматически после закрытия окна входа, вручную — кнопкой «Проверить» на карточке.

  • Браузер: в Release-версии по умолчанию встроен Chromium (поставляется с приложением, без системных зависимостей), в карточке настроек WebUI можно переключиться на системный Edge, данные входа для двух браузеров независимы. По умолчанию браузер виден при работе, можно включить «Скрывать браузер при вызове агентом» для тихой работы.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides AI agents with a real browser environment for web automation, memory, and secure credential management through 15 MCP tools.
    15
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to automate both web browsers and native desktop applications through a unified interface, supporting tasks like browsing, clicking, typing, and file clipboard operations via exposed MCP tools.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP-compatible applications to manage, run, chat with, and generate embeddings from local or cloud LLM models, and to perform web search and content fetching via cloud APIs.
    1,165 npm
    AGPL 3.0