Skip to content

Repository files navigation

kwork-mcp

CI PyPI Python License: MIT

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

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

  • «Найди свежие проекты про Telegram-ботов с бюджетом от 20 000 ₽ и скажи, какие мне подходят».
  • «Покажи диалоги с непрочитанными сообщениями и предложи ответы».
  • «Что с моими заказами? Где что-то ждёт моих действий?»
  • «Сколько у меня коннектов и какие мои отклики ещё висят?»
  • «Подготовь отклик на проект 3257238: 15 000 ₽, 5 дней» — агент покажет точный текст и цену и отправит только после вашего «да».

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

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

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

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

uvx --from kwork-mcp==1.1.0 kwork-mcp-bootstrap

Команда скрыто спросит логин и пароль Kwork, а также, по желанию, последние 4 цифры телефона и прокси. Затем покажет найденный аккаунт:

Найден аккаунт Kwork: your_name (user_id=123456). Привязать его? [y/N]: да

После подтверждения токен сохраняется в защищённое хранилище на вашем компьютере (~/.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.1.0 kwork-mcp
Claude Desktop

Settings → Developer → Edit Config, в claude_desktop_config.json:

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

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

Cursor

Тот же блок mcpServers, что для Claude Desktop, в ~/.cursor/mcp.json или в .cursor/mcp.json проекта.

Codex

В ~/.codex/config.toml:

[mcp_servers.kwork]
command = "uvx"
args = ["--from", "kwork-mcp==1.1.0", "kwork-mcp"]

[mcp_servers.kwork.env]
KWORK_EXPECTED_USER_ID = "123456"
KWORK_PERSIST_TOKEN = "true"
KWORK_ENABLE_WRITES = "false"

Не добавляйте в конфиг клиента логин, пароль, токен или прокси: сервер с ними откажется запускаться. Всё это вводится только через kwork-mcp-bootstrap.

3. Проверьте

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

Отправка откликов и сообщений

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

claude mcp remove kwork --scope user
claude mcp add kwork --scope user \
  -e KWORK_EXPECTED_USER_ID=123456 \
  -e KWORK_PERSIST_TOKEN=true \
  -e KWORK_ENABLE_WRITES=true \
  -- uvx --from kwork-mcp==1.1.0 kwork-mcp

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

Если связь оборвалась в момент отправки, результат становится «неизвестным», и агент сверяет его с Kwork, прежде чем делать что-то ещё. Пока такая запись не сверена, новые отправки для аккаунта заблокированы, чтобы не создать дубль.

Если что-то не работает

Что видите Что делать
auth_required или auth_expired Токен отсутствует или истёк: снова запустите kwork-mcp-bootstrap и перезапустите клиент
Сервер не стартует, «некорректная конфигурация: …» Проверьте названные переменные KWORK_* в конфиге клиента
captcha Войдите в Kwork в браузере, пройдите капчу, затем повторите kwork-mcp-bootstrap
Claude Desktop не видит сервер Укажите полный путь к uvx (which uvx) и перезапустите приложение
ambiguous_write с related_write_id Отправка с неизвестным результатом блокирует новые. Попросите агента выполнить reconcile_write для этого ID
Сверка долго не сходится Проверьте операцию на kwork.ru и зафиксируйте исход вручную (команды ниже)

Ручная фиксация исхода запускается с теми же KWORK_* переменными, что у сервера:

kwork-mcp-bootstrap pending-writes
kwork-mcp-bootstrap resolve-write <write_id> succeeded   # операция на Kwork прошла
kwork-mcp-bootstrap resolve-write <write_id> absent      # операции на Kwork нет

Инструменты

Чтение:

Инструмент Что делает
account_status Какой аккаунт подключён, включена ли запись, есть ли несверенные отправки
get_connects Баланс коннектов
discover_projects, get_project Проекты биржи: избранные категории, вся биржа или выбранные категории, фильтры по цене и откликам
get_exchange_info Сводка по бирже
list_my_offers, get_offer Ваши отклики
list_worker_orders, get_order_details Ваши заказы как продавца
list_dialogs, get_dialog Диалоги и сообщения
list_my_kworks, get_kwork_details Ваши кворки
get_user_info, search_users Профили пользователей
list_categories, list_favorite_categories Категории
list_notifications Уведомления

Запись: prepare_write → commit_write, а также get_write_status и reconcile_write. Поддерживаются отклик на проект, удаление отклика, отправка, правка и удаление сообщения, отметка диалога прочитанным, сдача заказа на проверку и запуск или пауза кворка.

Безопасность

  • Логин, пароль и прокси вводятся только в kwork-mcp-bootstrap через скрытый ввод и не попадают в конфиг клиента.
  • Сервер работает только с аккаунтом, указанным в KWORK_EXPECTED_USER_ID, и проверяет его перед каждой записью.
  • Тексты проектов, профилей и сообщений помечаются как внешние данные, а не инструкции для агента.
  • Токен лежит в файлах с правами 0600. Приложение их не шифрует, поэтому используйте шифрование диска.
  • Лимиты запросов к Kwork общие для всех процессов одного аккаунта.

Подробно: модель безопасности, настройки, архитектура, переход с 0.2.x.

Разработка

git clone https://github.com/simonether/kwork-mcp.git
cd kwork-mcp
uv sync --locked --dev
uv run ruff check . && uv run ruff format --check .
uv run mypy
uv run pytest tests/ -q --cov=kwork_mcp

Для запуска из исходников в конфиге клиента используйте uv --directory /path/to/kwork-mcp run kwork-mcp вместо uvx. Правила для изменений и устройство кода описаны в AGENTS.md.

Лицензия

MIT

About

MCP server for Kwork freelance marketplace

Topics

Resources

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages