Kwork について
Kwork は、Kwork のアカウントを MCP クライアントに接続する stdio MCP サーバーです。エージェントが案件、会話、注文、提案を確認でき、書き込みは既定で確認を求め、準備と結果照合の手順を取ります。
主な機能
- 01案件検索と条件指定
- 02会話・注文・提案の閲覧
- 03メッセージと提案の操作
- 04書き込み内容の確認要求
- 05書き込み結果の追跡と照合
活用シーン
- 01予算に合う案件の検索
- 02未読会話や保留中の注文の確認
- 03提案内容を準備してから送信
MCP 対応
MCP サーバーとして、Kwork アカウントの照会・操作ツールを MCP クライアントに提供します。書き込みは確認、実行、無効から選べ、準備・実行・照合の操作があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx kwork-mcpKWORK_EXPECTED_USER_IDKwork user ID to serve; optional when kwork-mcp login bound a single account, required when several are boundKWORK_EXPECTED_USERNAMEOptional second account identity checkKWORK_WRITESSending to Kwork: confirm asks the user before each send (client dialog or chat), auto lets the agent send, off is read-onlyKWORK_SITEKwork site: ru (kwork.ru) or com (kwork.com); kwork.com has no project exchangeKWORK_TIMEOUTKwork request timeout in seconds (1-120)KWORK_STATE_DIRAbsolute private directory shared by gateway processes for the same accountKWORK_PERSIST_TOKENシークレットUse the verified account-scoped credential store; required for normal server startupKWORK_RPS_LIMITShared account-level token refill rateKWORK_BURST_LIMITShared account-level token bucket capacityKWORK_ROUTE_RPS_LIMITShared per-route token refill rateKWORK_ROUTE_BURST_LIMITShared per-route token bucket capacityKWORK_RATE_WAIT_TIMEOUTMaximum seconds to wait for shared rate-limit admissionKWORK_AUTH_LOCK_TIMEOUTシークレットMaximum seconds to wait for account credential-store authentication coordinationKWORK_READ_ATTEMPTSMaximum attempts for retry-safe read requests onlyKWORK_RETRY_BACKOFF_BASEInitial retry backoff for retry-safe reads, in secondsKWORK_RETRY_BACKOFF_MAXMaximum retry backoff for retry-safe reads, in secondsKWORK_CIRCUIT_FAILURE_THRESHOLDShared route failures before opening the circuitKWORK_CIRCUIT_OPEN_SECONDSBase shared circuit-open interval in secondsKWORK_PREPARATION_TTL_SECONDSSafe write preparation lifetimeKWORK_WRITE_LEASE_SECONDSDurable one-writer lease duration in secondsKWORK_RECONCILIATION_MIN_AGE_SECONDSMinimum age before ambiguous-write read-back (1-300 seconds)KWORK_RECONCILIATION_ABSENCE_CONFIRMATIONSComplete absent observations required before a terminal resultKWORK_RECONCILIATION_ABSENCE_INTERVAL_SECONDSMinimum interval between absent observations (1-300 seconds)KWORK_STATE_RETENTION_DAYSRetention for terminal durable write recordsKWORK_LOG_LEVELGateway stderr log level: DEBUG, INFO, WARNING or ERRORローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
22掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
kwork-mcp は、Kwork アカウントを Claude Code、Claude
Desktop、Codex、Cursor などの MCP クライアントに接続します。エージェントは
マーケットプレイスでプロジェクトを検索し、会話、注文、オファーを読み取り、
応募文を作成します。デフォルトでは、正確な文面を確認してあなたが「はい」と
答えた後にのみ、エージェントは Kwork に何かを送信します。
プロジェクトのサイト:simonether.github.io/kwork-mcp。
エージェントに頼めること
- 「予算が 20 000 ₽ 以上の Telegram ボット関連の新着プロジェクトを探して、私に合うものを教えてください。」
- 「未読メッセージがある会話を表示して、返信案を提案してください。」
- 「私の注文の状況を教えてください。対応が必要なものはありますか?」
- 「コネクトはいくつありますか?まだ保留中の応募はありますか?」
- 「プロジェクト 3257238 への応募文を作成してください。15 000 ₽、5 日」—エージェントが正確な文面と価格を表示し、あなたが「はい」と答えた後にのみ送信します。
クイックスタート
macOS または Linux、Python 3.12–3.14、uv が必要です。 Windows はサポートされていません。
1. Kwork にログインする(初回のみ)
通常のターミナルで:
uvx [email protected] login
コマンドは Kwork のログイン名とパスワードを非表示で尋ねます。また、必要に応じて 電話番号の下 4 桁とプロキシも尋ね、見つかったアカウントを表示します:
Найден аккаунт Kwork: your_name (user_id=123456). Привязать его? [y/N]: да
確認後、トークンはお使いのコンピューター上の保護されたストレージ
(~/.local/state/kwork-mcp)に保存されます。ログイン名とパスワードはどこにも
保存されません。最後に、コマンドは Claude Code と Codex 用の接続コマンド、および
Claude Desktop と Cursor 用のブロックを表示します。
2. エージェントを接続する
Claude Code:
claude mcp add kwork --scope user -- uvx [email protected]
Codex:
codex mcp add kwork -- uvx [email protected]
Claude Desktop およびその他のクライアント
Claude Desktop:Settings → Developer → Edit Config を開き、claude_desktop_config.json ファイルを編集します。
ボタンを使わずに Cursor を設定する場合:~/.cursor/mcp.json またはプロジェクトの .cursor/mcp.json を編集します。
{
"mcpServers": {
"kwork": {
"command": "uvx",
"args": ["[email protected]"]
}
}
}
Claude Desktop はターミナルの uvx を認識できないため、login の出力にある
ブロックを使用してください。このブロックには uvx のフルパスがすでに記載されています。
サーバーはログイン済みのアカウントを自動的に検出します。複数のアカウントでログイン
している場合は、-e KWORK_EXPECTED_USER_ID=123456 または JSON の "env" ブロックで
使用するアカウントを指定してください。
ログイン名、パスワード、トークン、プロキシをクライアントの設定に追加しないでください。 これらが含まれていると、サーバーは起動を拒否します。
3. 確認する
クライアントを再起動し、エージェントに「Kwork アカウントのステータスを確認して」と
依頼します。エージェントは account_status を呼び出して、user_id と名前を表示します。
クライアントを使わずに、ターミナルで同じ情報を確認することもできます:
uvx [email protected] status は、Kwork に接続せずに、サーバーがどのアカウントとサイトで
起動するかを表示します。アカウントを切り替えるには、uvx [email protected] logout を
実行してから、もう一度 login を実行してください。
Отправка откликов и сообщений
Отправку на Kwork (отклики, сообщения, удаление офферов, сдача заказа, запуск и
пауза кворков) задаёт переменная KWORK_WRITES:
KWORK_WRITES | Что происходит |
|---|---|
confirm (по умолчанию) | Перед каждой отправкой агент показывает точный текст, цену и получателя и ждёт вашего «да» |
auto | Агент отправляет сам, когда это нужно для вашей задачи, без отдельного подтверждения |
off | Только чтение: инструменты отправки скрыты, агент их не видит |
В режиме confirm сервер в ответе prepare_write и в своих инструкциях
указывает агенту показать вам запрос и отправлять только после вашего «да». Сам
проверить это «да» сервер не может. Вторую кнопку даёт клиент: Claude Code и
Claude Desktop по умолчанию спрашивают разрешение перед инструментом отправки, а в
Codex то же включает default_tools_approval_mode = "writes" в настройках
сервера [mcp_servers.kwork].
Режим выбирается в конфиге клиента, например для Claude Code:
claude mcp remove kwork --scope user
claude mcp add kwork --scope user -e KWORK_WRITES=auto -- uvx [email protected]
В режиме auto от чужих команд в текстах проектов и сообщений защищает только
поведение агента: сервер помечает эти тексты как внешние данные, но проверить,
что агент их не послушал, не может.
Каждая отправка идёт в два шага: сначала агент готовит точный запрос, затем выполняет его. Сервер помнит каждую запись и никогда не повторяет её сам.
Если связь оборвалась в момент отправки, результат становится «неизвестным», и агент сверяет его с Kwork, прежде чем делать что-то ещё. Пока такая запись не сверена, новые отправки для аккаунта заблокированы, чтобы не создать дубль.
kwork.com
По умолчанию сервер работает с kwork.ru. Для kwork.com добавьте в конфиг клиента
KWORK_SITE=com. Например, для Claude Code вторым сервером рядом с kwork.ru:
claude mcp add kwork-com --scope user -e KWORK_SITE=com -- uvx [email protected]
Аккаунт и токен у kwork.ru и kwork.com общие, поэтому заново входить не нужно.
Биржи проектов на kwork.com нет: поиск проектов, избранные категории и отклик на
проект там отвечают site_unsupported. Диалоги, заказы и кворки работают как
обычно, но заказы у каждого сайта свои. Запись, подготовленную для одного сайта,
отправляет и сверяет только сервер того же сайта.
Если что-то не работает
| Что видите | Что делать |
|---|---|
auth_required или auth_expired | Входа нет или он истёк: выполните uvx [email protected] login и перезапустите клиент |
account_binding_required | Вы входили в несколько аккаунтов: укажите нужный в KWORK_EXPECTED_USER_ID или удалите лишний вход командой uvx [email protected] logout <user_id> |
| Непонятно, какой аккаунт и сайт использует сервер | uvx [email protected] status покажет это без запросов к Kwork |
| Сервер не стартует, «некорректная конфигурация: …» | Проверьте названные переменные KWORK_* в конфиге клиента |
| «KWORK_ENABLE_WRITES удалена в 1.5.0» | Замените её на KWORK_WRITES=off, confirm или auto |
write_disabled | Сервер запущен с KWORK_WRITES=off, доступно только чтение |
captcha | Войдите в Kwork в браузере, пройдите капчу, затем повторите login |
| Claude Desktop не видит сервер | Возьмите блок для Claude Desktop из вывода login (в нём полный путь к uvx) или укажите путь из which uvx, затем перезапустите приложение |
ambiguous_write с related_write_id | Отправка с неизвестным результатом блокирует новые. Попросите агента выполнить reconcile_write для этого ID |
| Сверка долго не сходится | Проверьте операцию на сайте Kwork, указанном в поле site у pending-writes, и зафиксируйте исход вручную (команды ниже) |
Ручная фиксация исхода запускается с теми же KWORK_* переменными, что у сервера:
uvx [email protected] pending-writes
uvx [email protected] resolve-write <write_id> succeeded # операция на Kwork прошла
uvx [email protected] 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 loginчерез скрытый ввод и не попадают в конфиг клиента. - Сервер работает только с аккаунтом, который вы подтвердили при входе (если
аккаунтов несколько, с указанным в
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.
Лицензия
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。