mcpField
K
Kwork

Kwork

ローカル
github.comビジネス・マーケティング44 週間前に更新

Kwork について

Kwork は、Kwork のアカウントを MCP クライアントに接続する stdio MCP サーバーです。エージェントが案件、会話、注文、提案を確認でき、書き込みは既定で確認を求め、準備と結果照合の手順を取ります。

主な機能

  1. 01案件検索と条件指定
  2. 02会話・注文・提案の閲覧
  3. 03メッセージと提案の操作
  4. 04書き込み内容の確認要求
  5. 05書き込み結果の追跡と照合

活用シーン

  1. 01予算に合う案件の検索
  2. 02未読会話や保留中の注文の確認
  3. 03提案内容を準備してから送信

MCP 対応

MCP サーバーとして、Kwork アカウントの照会・操作ツールを MCP クライアントに提供します。書き込みは確認、実行、無効から選べ、準備・実行・照合の操作があります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"simonether-kwork": {
"command": "uvx",
"args": [
"kwork-mcp"
],
"env": {
"KWORK_EXPECTED_USER_ID": "<KWORK_EXPECTED_USER_ID>",
"KWORK_EXPECTED_USERNAME": "<KWORK_EXPECTED_USERNAME>",
"KWORK_WRITES": "<KWORK_WRITES>",
"KWORK_SITE": "<KWORK_SITE>",
"KWORK_TIMEOUT": "<KWORK_TIMEOUT>",
"KWORK_STATE_DIR": "<KWORK_STATE_DIR>",
"KWORK_PERSIST_TOKEN": "<KWORK_PERSIST_TOKEN>",
"KWORK_RPS_LIMIT": "<KWORK_RPS_LIMIT>",
"KWORK_BURST_LIMIT": "<KWORK_BURST_LIMIT>",
"KWORK_ROUTE_RPS_LIMIT": "<KWORK_ROUTE_RPS_LIMIT>",
"KWORK_ROUTE_BURST_LIMIT": "<KWORK_ROUTE_BURST_LIMIT>",
"KWORK_RATE_WAIT_TIMEOUT": "<KWORK_RATE_WAIT_TIMEOUT>",
"KWORK_AUTH_LOCK_TIMEOUT": "<KWORK_AUTH_LOCK_TIMEOUT>",
"KWORK_READ_ATTEMPTS": "<KWORK_READ_ATTEMPTS>",
"KWORK_RETRY_BACKOFF_BASE": "<KWORK_RETRY_BACKOFF_BASE>",
"KWORK_RETRY_BACKOFF_MAX": "<KWORK_RETRY_BACKOFF_MAX>",
"KWORK_CIRCUIT_FAILURE_THRESHOLD": "<KWORK_CIRCUIT_FAILURE_THRESHOLD>",
"KWORK_CIRCUIT_OPEN_SECONDS": "<KWORK_CIRCUIT_OPEN_SECONDS>",
"KWORK_PREPARATION_TTL_SECONDS": "<KWORK_PREPARATION_TTL_SECONDS>",
"KWORK_WRITE_LEASE_SECONDS": "<KWORK_WRITE_LEASE_SECONDS>",
"KWORK_RECONCILIATION_MIN_AGE_SECONDS": "<KWORK_RECONCILIATION_MIN_AGE_SECONDS>",
"KWORK_RECONCILIATION_ABSENCE_CONFIRMATIONS": "<KWORK_RECONCILIATION_ABSENCE_CONFIRMATIONS>",
"KWORK_RECONCILIATION_ABSENCE_INTERVAL_SECONDS": "<KWORK_RECONCILIATION_ABSENCE_INTERVAL_SECONDS>",
"KWORK_STATE_RETENTION_DAYS": "<KWORK_STATE_RETENTION_DAYS>",
"KWORK_LOG_LEVEL": "<KWORK_LOG_LEVEL>"
}
}
}
}
起動コマンドuvx kwork-mcp
設定が必要な環境変数
KWORK_EXPECTED_USER_IDKwork user ID to serve; optional when kwork-mcp login bound a single account, required when several are bound
KWORK_EXPECTED_USERNAMEOptional second account identity check
KWORK_WRITESSending to Kwork: confirm asks the user before each send (client dialog or chat), auto lets the agent send, off is read-only
KWORK_SITEKwork site: ru (kwork.ru) or com (kwork.com); kwork.com has no project exchange
KWORK_TIMEOUTKwork request timeout in seconds (1-120)
KWORK_STATE_DIRAbsolute private directory shared by gateway processes for the same account
KWORK_PERSIST_TOKENシークレットUse the verified account-scoped credential store; required for normal server startup
KWORK_RPS_LIMITShared account-level token refill rate
KWORK_BURST_LIMITShared account-level token bucket capacity
KWORK_ROUTE_RPS_LIMITShared per-route token refill rate
KWORK_ROUTE_BURST_LIMITShared per-route token bucket capacity
KWORK_RATE_WAIT_TIMEOUTMaximum seconds to wait for shared rate-limit admission
KWORK_AUTH_LOCK_TIMEOUTシークレットMaximum seconds to wait for account credential-store authentication coordination
KWORK_READ_ATTEMPTSMaximum attempts for retry-safe read requests only
KWORK_RETRY_BACKOFF_BASEInitial retry backoff for retry-safe reads, in seconds
KWORK_RETRY_BACKOFF_MAXMaximum retry backoff for retry-safe reads, in seconds
KWORK_CIRCUIT_FAILURE_THRESHOLDShared route failures before opening the circuit
KWORK_CIRCUIT_OPEN_SECONDSBase shared circuit-open interval in seconds
KWORK_PREPARATION_TTL_SECONDSSafe write preparation lifetime
KWORK_WRITE_LEASE_SECONDSDurable one-writer lease duration in seconds
KWORK_RECONCILIATION_MIN_AGE_SECONDSMinimum age before ambiguous-write read-back (1-300 seconds)
KWORK_RECONCILIATION_ABSENCE_CONFIRMATIONSComplete absent observations required before a terminal result
KWORK_RECONCILIATION_ABSENCE_INTERVAL_SECONDSMinimum interval between absent observations (1-300 seconds)
KWORK_STATE_RETENTION_DAYSRetention for terminal durable write records
KWORK_LOG_LEVELGateway stderr log level: DEBUG, INFO, WARNING or ERROR

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypikwork-mcp1.5.2

ツール

22

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

kwork-mcp:Kwork 用 MCP サーバー。エージェントが応募文と返信を作成し、送信するのはあなたです。

CI PyPI Python License: MIT MCP Badge

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]

Cursor: Add to Cursor

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.

Лицензия

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。