API ВЕГА

@dreamworkhq/mcp

MCP-сервер для Dreamwork: инструменты поиска работы для AI-агентов. Любой MCP-клиент (Claude Desktop, Cursor, MCP Inspector) может использовать его, чтобы находить вакансии, ранжировать их, адаптировать материалы для отклика, подавать заявки и отслеживать результаты для одного человека с течением времени.

Этот сервер — тонкий шлюз: он обращается к Dreamwork API по HTTPS и не имеет собственного доступа к базе данных. Используется транспорт stdio, а stdout содержит только JSON-RPC-фреймы.

Установка

Устанавливать ничего не нужно. MCP-клиенты запускают сервер по запросу с помощью npx. В примерах ниже используется npx -y @dreamworkhq/mcp.

Для начала не нужны ни ключ, ни аккаунт. Если DREAMWORK_API_KEY не задан, сервер

запускается в бесплатном гостевом режиме, в котором агент может искать и просматривать все вакансии.

Блоки env ниже необязательны: добавьте ключ, если нужны инструменты аккаунта

(см. раздел «Гостевой режим и API-ключи»).

Настройка

Claude Desktop

Добавьте запись в файл claude_desktop_config.json

(~/Library/Application Support/Claude/claude_desktop_config.json в macOS):

{
  "mcpServers": {
    "dreamwork": {
      "command": "npx",
      "args": ["-y", "@dreamworkhq/mcp"],
      "env": {
        "DREAMWORK_API_KEY": "sk_..."
      }
    }
  }
}

После изменения конфигурации перезапустите Claude Desktop. Укажите учётные данные в блоке env. Не запускайте command через оболочку или загрузчик переменных окружения, например dotenvx run -- …: на сервере stdio любой текст, который такая обёртка выводит в stdout, нарушает поток JSON-RPC и приводит к зависанию вызовов инструментов.

Cursor и другие клиенты

Подойдёт любой MCP-клиент с поддержкой stdio. В Cursor используется та же конфигурация, что и выше: укажите команду npx -y @dreamworkhq/mcp и передайте DREAMWORK_API_KEY через переменные окружения. Чтобы проверить настройку с помощью Inspector:

DREAMWORK_API_KEY=sk_... npx @modelcontextprotocol/inspector npx -y @dreamworkhq/mcp

Размещённая конечная точка

Dreamwork также предоставляет эти инструменты через Streamable HTTP по адресу

https://mcp.dreamworkhq.com/mcp. В claude.ai, Claude Desktop или ChatGPT

добавьте этот URL как пользовательский коннектор и войдите в Dreamwork. Устанавливать ничего не нужно, ключ вводить тоже не придётся. На экране согласия можно выбрать разрешения, которые получит коннектор.

Клиенты, поддерживающие передачу заголовков запросов, могут вместо этого отправлять API-ключ на тот же URL.

В Claude Code:

claude mcp add --transport http dreamwork https://mcp.dreamworkhq.com/mcp \
  --header "Authorization: Bearer sk_..."

Гостевой режим и API-ключи

Гостевой режим бесплатный, аккаунт не требуется. Если ключ не задан, сервер запускается в гостевом режиме и предоставляет общедоступные инструменты только для чтения: browse_listings,

get_listing, get_platform_context и get_upgrade_link. Сервер сообщает агенту о гостевом режиме, чтобы тот мог объяснить, какие функции доступны. В ответ на вызов инструментов аккаунта сервер возвращает краткое сообщение «No API key» с инструкциями по получению ключа.

Для API-ключа нужен бесплатный аккаунт. Ключ требуется для подбора вакансий с учётом вашего резюме, сохранённых вакансий, адаптированных материалов, воронки, переписки с рекрутерами и подачи заявок.

Ключ может создать любой аккаунт Dreamwork, в том числе на бесплатном тарифе. Тариф определяет лимит запросов и доступный объём использования ключа. Войдите на

dreamworkhq.com, откройте Profile, затем MCP (или нажмите кнопку Get a key на странице Agents), задайте ключ в переменной DREAMWORK_API_KEY (формат sk_...) и перезапустите MCP-клиент.

При создании ключа выберите разрешённые действия: чтение, запись, подача заявок и отправка писем. По умолчанию на странице профиля выбраны все четыре разрешения. Снимите отметки с тех действий, которые агенту выполнять не следует. Ключ может предоставлять меньше прав, чем есть у вас, но не больше.

Переменные окружения

ПеременнаяОбязательнаЗначение по умолчаниюНазначение
DREAMWORK_API_KEYДля инструментов аккаунтанетAPI-ключ (sk_...). Открывает доступ к воронке, резюме, подаче заявок, поиску контактов, профилю и собеседованиям.
DREAMWORK_API_URLНетhttps://api.dreamworkhq.comПереопределяет конечную точку API (для локальной разработки или собственного хостинга).
DREAMWORK_UNREAD_NOTICESНетonЗначение off (а также 0/false/no) отключает добавление к результатам инструментов уведомления о непрочитанных письмах от рекрутеров. Проверка выполняется не чаще одного раза в пять минут и не помечает письма как прочитанные.

JOBLESS_API_TOKEN и JOBLESS_API_URL по-прежнему поддерживаются как псевдонимы для обратной совместимости с DREAMWORK_API_KEY и DREAMWORK_API_URL. В новых конфигурациях используйте имена DREAMWORK_.

Телеметрия

Для измерения использования при первом запуске сервер создаёт анонимный случайный идентификатор установки (UUID) и сохраняет его в каталоге состояния вашей ОС

($XDG_STATE_HOME/dreamwork/install-id, ~/.local/state/dreamwork/install-id в

Linux/macOS или %LOCALAPPDATA%\dreamwork\install-id в Windows). Это случайное

значение, которое не формируется на основе имени хоста, имени пользователя или каких-либо характеристик устройства. Идентификатор учитывает уникальные установки, использующие гостевой (неавторизованный) режим. Он создаётся во время работы на вашем устройстве, а не при сборке или публикации.

Отключить телеметрию можно, задав одну из переменных окружения:

  • DREAMWORK_TELEMETRY=0 (также принимаются значения false/no/off)

  • DO_NOT_TRACK=1 (стандартный способ отказаться от отслеживания; также принимаются значения true/yes/on)

При отключённой телеметрии идентификатор установки не создаётся, не считывается и не отправляется.

Инструменты

Типичный сценарий: просмотреть общедоступный каталог, сохранить вакансии в воронку, адаптировать материалы, подать заявки, а затем отслеживать ответы и собеседования. Сначала вызовите

get_platform_context. Этот инструмент описывает возможности Dreamwork и помогает агенту выбрать подходящий сценарий.

Общедоступные инструменты (ключ не нужен):

browse_listings, get_listing, get_platform_context, get_upgrade_link

Действия ассистента: для каждой возможности в реестре ассистента Dreamwork предусмотрен отдельный инструмент. Все они проходят через ту же последовательность проверок авторизации и журнал подтверждений, что и встроенный в сайт ассистент. При первом вызове инструмента, выполняющего действие с последствиями, выполнение приостанавливается: инструмент возвращает сводку и confirmationToken. Чтобы продолжить, отправьте этот токен повторно с теми же аргументами.

apply, cancel_apply, confirm_hypothesis, dismiss_match, edit_answer, edit_cover_letter, edit_resume, forget_hypothesis, format_resume, generate_pack, get_application_documents, get_application_readiness, get_application_status, get_autopilot_settings, get_autopilot_status, get_career_record, get_communication_preferences, get_inbox, get_job, get_pack_status, get_pipeline, get_preferences, get_resume_download_link, get_task, get_unread_reminders, get_updates_since, get_usage, import_job, list_matches, list_tasks, mark_applied_offsite, mark_messages_read, move_pipeline, parse_preferences_text, prepare_applications, remember_hypothesis, replace_application_document, reply_to_recruiter, restore_material, save_application_answers, save_job, set_autopilot, start_checkout, strengthen_application, undo_last, update_autopilot_settings, update_communication_preferences, update_preferences

Прямые инструменты продукта: маршруты, за которыми не закреплено действие из реестра.

add_contact, add_jobs, generate_outreach, generate_resume, get_application_materials, get_generated_resumes, get_profile, get_stats, list_contacts, list_interviews, reopen_application_materials, update_application_materials, update_profile, upload_resume

Сервер также предоставляет пять промптов, которые хосты, например Claude Desktop и

Claude Code, отображают как команды: morning_brief (что изменилось с момента последней проверки), find_and_prepare (поиск вакансий, выбор и подготовка материалов), apply_to_prepared (заполнение недостающих ответов, проверка и подача заявки с подтверждением), interview_prep и autopilot_setup.

Примечания к некоторым инструментам:

  • Ни один инструмент не отправляет письма и не подаёт заявки при первом вызове. Инструменты apply,

reply_to_recruiter, set_autopilot, update_autopilot_settings и

start_checkout возвращают статус held, сводку и confirmationToken. Действие выполняется только после повторной передачи этого токена с теми же аргументами.

  • В версии 1.3.0 удалены инструменты из версии 1.2.0, заменённые действиями реестра: search_jobs и

list_applications (используйте get_pipeline; для поиска по каталогу — browse_listings), apply_to_job (apply), add_listing_to_pipeline (save_job), skip_job (dismiss_match) и send_outreach. Ответы рекрутерам и повторная подача заявок выполняются через reply_to_recruiter и apply.

  • В выпусках после версии 1.5.1 больше нет инструментов list_escalations и

resolve_escalation; их также нет в размещённой версии сервера. Dreamwork больше не передаёт вам заявку на рассмотрение в виде эскалации, поэтому просматривать и обрабатывать такие эскалации не требуется.

  • Инструменты update_application_materials и reopen_application_materials доступны участникам группы поэтапного внедрения Applications, которым API предоставляет доступ. Для остальных пользователей API возвращает собственное сообщение об отказе.

  • get_stats собирает статистику по воронке вошедшего в систему кандидата, поэтому, как и для остальных инструментов этой категории, для него нужен ключ.

Основные области доступа

Ключ API содержит области доступа, которые выбираются при его создании:

Область доступаЧто она разрешает
readВсе действия для чтения: совпадения, этапы процесса, входящие сообщения, статус, использование и квитанции
writeНедорогие операции записи, выполняемые через очередь: сохранение, отклонение, перемещение, редактирование материалов, изменение предпочтений и создание ссылок для оформления заказа
applyОтправку заявки, отмену заявки, отправка которой ещё не завершена, и Autopilot
sendОтправку писем рекрутеру

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

write — минимально необходимая область доступа для внесения изменений: ключ без неё отклоняется при любом

запросе, кроме GET, HEAD и OPTIONS. Поэтому ключ только для чтения не позволит изменить профиль или переместить карточку,

обратившись напрямую к маршруту. Ключ без apply отклоняется при вызове apply, а также при

запросах к POST /jobs/:id/apply, маршрутам turbo-apply и маршрутам эскалации. Ключ

без send отклоняется при вызове reply_to_recruiter, а также при запросах к

POST /outreach/send и POST /conversations/:id/reply. Прямой вызов возвращает 403 с

кодом api_key_scope_required, указанием необходимой области доступа и сообщением о дальнейших действиях;

действие ассистента возвращает action_not_authorized с теми же рекомендациями.

Ключ не может управлять другими ключами, менять токен сессии или удалять аккаунт.

При таких запросах всегда возвращается 403 session_required, независимо от имеющихся у ключа областей доступа.

На странице профиля по умолчанию выбраны все четыре области доступа. Если в запросе на создание ключа

области не указаны, ему назначаются read и write. Ключ, созданный до появления областей доступа,

сохраняет все прежние возможности.

Устранение неполадок

  • Вызовы инструментов зависают или завершаются по тайм-ауту, но рукопожатие проходит успешно. Возможно,

    в stdout выводятся данные, не соответствующие формату JSON-RPC. Убедитесь, что command не обёрнут в

    env-loader или shell, выводящий приветственное сообщение, и обновите версию до последней

    (npx -y @dreamworkhq/mcp@latest; если кэширована старая сборка, очистите кэш npx командой rm -rf ~/.npm/_npx).

    В stdout должны передаваться только кадры протокола. Все журналы сервера выводятся в stderr.

  • Каждый инструмент для работы с аккаунтом сообщает "No API key". Переменная DREAMWORK_API_KEY не

    передаётся процессу. Проверьте, указана ли она в блоке env конфигурации клиента.

  • Каждый инструмент для работы с аккаунтом сообщает "API key rejected". Ключ дошёл до сервера,

    но срок его действия истёк или он был отозван. Создайте новый ключ в разделе «Профиль», затем откройте MCP,

    замените значение DREAMWORK_API_KEY на новый ключ и перезапустите MCP-клиент.

  • При вызове Apply возвращается missing_onboarding_fields или missing_profile_fields.

    Инструмент указывает отсутствующие поля и путь в Dreamwork, по которому можно их заполнить.

    Укажите недостающие данные в Dreamwork и повторите запрос. Неудачный запрос не запустил подачу заявки.

Разработка

pnpm --filter @dreamworkhq/mcp check   # typecheck
pnpm --filter @dreamworkhq/mcp build   # emit dist/
pnpm --filter @dreamworkhq/mcp test    # unit tests

Точка входа stdio находится в src/stdio.ts; определения инструментов — в

src/mcp.ts; HTTP-клиент для API — в src/client.ts.

Сервер получает конфигурацию только из переменных окружения процесса. Он не

загружает файл .env. Для локальной разработки задайте переменные в shell, например:

DREAMWORK_API_URL=http://127.0.0.1:3000 pnpm --filter @dreamworkhq/mcp stdio.

Решения о границах пакетов, соглашения о регистрации инструментов

(registerDreamworkTool), правила обработки ошибок и версионирования, а также отложенные условия проверки

описаны в ARCHITECTURE.md. Каталог инструментов выше

проверяется на соответствие зарегистрированным инструментам с помощью test/tool-catalog.test.ts.

Лицензия

MIT