MCP-сервер для Kwork: агент готовит, отправляете вы

Подключает ваш аккаунт Kwork к ИИ-агенту: Claude Code, Claude Desktop, Codex, Cursor и другим MCP-клиентам. Агент ищет проекты на бирже, читает диалоги, заказы и отклики, готовит ответы. Отправить что-то на Kwork он может, только если вы включили запись, и только после вашего подтверждения.

uvx --from kwork-mcp==1.3.0 kwork-mcp-bootstrap

Бесплатно, лицензия MIT. Работает на macOS и Linux с Python 3.12–3.14. Версия 1.3.0, 22 инструмента, kwork.ru и kwork.com. Пакет на PyPI.

Пример сессии агента запись включена

выПодготовь отклик на проект 3257238: 15 000 ₽, 5 дней

агентget_project 3257238ok

prepare_write submit_offerok

Отклик подготовлен. Проверьте текст и цену.

Черновик отклика Подготовлено
Проект
3257238
Заголовок
Telegram-бот для записи клиентов
Текст
Здравствуйте! Разберу ваш проект и сделаю бота на aiogram: запись по свободным слотам, напоминания клиентам, выгрузка в таблицу. Срок 5 дней, один круг правок включён.
Цена
15 000 ₽
Срок
5 дней
Хэш
7f3a91…c91e

На Kwork пока ничего не отправлено. Запрос уйдёт только после вашего подтверждения.

Что можно попросить у агента

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

  • «Найди свежие проекты про Telegram-ботов с бюджетом от 20 000 ₽ и скажи, какие мне подходят»

    discover_projectsget_project

  • «Покажи диалоги с непрочитанными сообщениями и предложи ответы»

    list_dialogsget_dialog

  • «Что с моими заказами? Где что-то ждёт моих действий?»

    list_worker_ordersget_order_details

  • «Сколько у меня коннектов и какие мои отклики ещё висят?»

    get_connectslist_my_offers

  • «Подготовь отклик на проект 3257238: 15 000 ₽, 5 дней»Агент покажет точный текст и цену и отправит только после вашего «да».

    get_projectprepare_writecommit_write

Почему агенту можно доверить аккаунт

Отклик тратит коннект, а сообщение клиент видит сразу. Поэтому любая запись проходит через журнал: сервер устроен так, чтобы агент не мог ни отправить лишнего, ни отправить дважды.

  1. Подготовка

    prepare_write

    Делает агент. Сервер проверяет условия и запоминает точный запрос: текст, цену, получателя. На Kwork ничего не уходит.

  2. Подтверждение

    commit_write

    После вашего «да». Сервер заново проверяет условия и один раз вызывает Kwork. Автоматических повторов нет.

  3. Сверка

    reconcile_write

    Только при обрыве связи. Если исход неизвестен, агент сверяет его с Kwork, а новые отправки ждут.

Чем заканчивается подтверждение

succeeded
Kwork принял запрос, результат подтверждён.
failed_known
Kwork отказал, и это точно известно. Ничего не отправлено.
submission_unknown
Связь оборвалась в момент отправки. Запись блокирует новые отправки, пока её не сверят.

По умолчанию только чтение

Пока в конфиге стоит KWORK_ENABLE_WRITES=false, агент ничего не отправляет на Kwork.

Пароль не попадает в конфиг

Логин и пароль вводятся один раз через скрытый ввод и нигде не сохраняются. Токен лежит на вашем компьютере в файлах с правами 0600.

Только ваш аккаунт

Сервер работает с аккаунтом из KWORK_EXPECTED_USER_ID и проверяет его перед каждой записью.

Чужой текст не команда

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

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

Нужны macOS или Linux, Python 3.12–3.14 и uv. Windows не поддерживается.

  1. Войдите в Kwork (один раз)

    Запустите в обычном терминале:

    терминал
    uvx --from kwork-mcp==1.3.0 kwork-mcp-bootstrap

    Команда скрыто спросит логин и пароль Kwork, покажет найденный аккаунт и после подтверждения сохранит токен в ~/.local/state/kwork-mcp. В конце она выведет ваш user_id: он нужен на следующем шаге.

  2. Подключите агента

    Подставится во все команды ниже.

    Замените 123456 на свой user_id и выберите клиент.

    Claude Code

    терминал
    claude mcp add kwork --scope user \
      -e KWORK_EXPECTED_USER_ID=123456 \
      -e KWORK_PERSIST_TOKEN=true \
      -e KWORK_ENABLE_WRITES=false \
      -- uvx --from kwork-mcp==1.3.0 kwork-mcp

    Codex

    ~/.codex/config.toml
    [mcp_servers.kwork]
    command = "uvx"
    args = ["--from", "kwork-mcp==1.3.0", "kwork-mcp"]
    
    [mcp_servers.kwork.env]
    KWORK_EXPECTED_USER_ID = "123456"
    KWORK_PERSIST_TOKEN = "true"
    KWORK_ENABLE_WRITES = "false"

    Claude Desktop и Cursor

    Claude Desktop: Settings → Developer → Edit Config, файл claude_desktop_config.json. Cursor: ~/.cursor/mcp.json или .cursor/mcp.json проекта.

    mcp.json
    {
      "mcpServers": {
        "kwork": {
          "command": "uvx",
          "args": ["--from", "kwork-mcp==1.3.0", "kwork-mcp"],
          "env": {
            "KWORK_EXPECTED_USER_ID": "123456",
            "KWORK_PERSIST_TOKEN": "true",
            "KWORK_ENABLE_WRITES": "false"
          }
        }
      }
    }

    Если Claude Desktop не находит uvx, укажите полный путь из which uvx.

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

  3. Проверьте

    Перезапустите клиент и попросите агента: «проверь статус аккаунта Kwork». Он покажет ваш user_id и имя.

    Чтобы агент мог отправлять отклики и сообщения, замените в конфиге KWORK_ENABLE_WRITES=false на true и перезапустите клиент. Подробности, решение проблем и ручная сверка отправок описаны в README.

22 инструмента

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

18 инструментов чтения4 инструмента записи

ОбластьИнструментыЧто делают
Аккаунт account_statusget_connects Какой аккаунт подключён, включена ли запись, есть ли несверенные отправки. Баланс коннектов.
Биржа проектов discover_projectsget_projectget_exchange_info Проекты биржи: избранные категории, вся биржа или выбранные категории, фильтры по цене и откликам. Сводка по бирже.
Отклики list_my_offersget_offer Ваши отклики.
Заказы list_worker_ordersget_order_details Ваши заказы как продавца.
Диалоги list_dialogsget_dialog Диалоги и сообщения.
Кворки list_my_kworksget_kwork_details Ваши кворки.
Пользователи get_user_infosearch_users Профили пользователей.
Категории и уведомления list_categorieslist_favorite_categorieslist_notifications Категории, избранные категории и уведомления.
Запись prepare_writecommit_writeget_write_statusreconcile_write Отклик на проект и его удаление, отправка, правка и удаление сообщения, отметка диалога прочитанным, сдача заказа на проверку, запуск и пауза кворка.

kwork.ru и kwork.com

По умолчанию сервер работает с kwork.ru. Аккаунт и токен у сайтов общие, входить заново не нужно.

Возможностьkwork.rukwork.com
Как выбрать сайтпо умолчаниюдобавьте KWORK_SITE=com
Биржа проектов и отклики на проектыЕстьНет
Диалоги, заказы и кворкиЕстьЕсть

На kwork.com проект по ID по-прежнему можно прочитать, а диалоги, заказы и кворки работают как обычно.

Вопросы

Это официальный инструмент Kwork?

Нет. Это независимый проект с открытым кодом под лицензией MIT. Kwork его не выпускает и не поддерживает.

Может ли агент откликнуться на проект без меня?

Нет. Запись выключена по умолчанию. Когда вы её включаете, агент сначала показывает точный текст, цену и получателя, и запрос уходит на Kwork только после вашего подтверждения.

Что будет, если связь оборвётся при отправке?

Сервер не повторит запись сам и не угадает исход. Новые отправки для аккаунта ждут, пока агент не сверит результат с Kwork или вы не разберёте запись вручную командой kwork-mcp-bootstrap resolve-write.

Где хранятся логин и пароль?

Нигде. Их спрашивает только kwork-mcp-bootstrap через скрытый ввод, а на диск сохраняется токен в ~/.local/state/kwork-mcp с правами 0600. Токен не шифруется, поэтому включите шифрование диска.

Какие клиенты поддерживаются?

Claude Code, Claude Desktop, Codex, Cursor и другие MCP-клиенты, которые умеют запускать локальный сервер через stdio.

Работает ли на Windows?

Нет, только macOS и Linux.

Сколько стоит?

Нисколько: kwork-mcp распространяется бесплатно под лицензией MIT.