Kwork
PYPI · KWORK-MCP · SCANNED SEP 21
Kwork freelance marketplace: browse projects, submit offers, manage orders, message clients
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 4 of 32 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (MIT License) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 54 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability75
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 2572 tokens (~91/item across 28 items; 28 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety88
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 2 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "send_order_for_approval" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
- An AI judge read all 28 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Kwork MCP server?
Kwork runs locally as a PyPI package, launched with uvx kwork-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · kwork-mcp
claude mcp add simonether-kwork-mcp -- uvx kwork-mcp
{
"mcpServers": {
"simonether-kwork-mcp": {
"command": "uvx",
"args": [
"kwork-mcp"
]
}
}
} {
"servers": {
"simonether-kwork-mcp": {
"command": "uvx",
"args": [
"kwork-mcp"
]
}
}
} codex mcp add simonether-kwork-mcp -- uvx kwork-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"simonether-kwork-mcp": {
"type": "local",
"command": [
"uvx",
"kwork-mcp"
],
"enabled": true
}
}
} openclaw mcp add simonether-kwork-mcp --command uvx --arg kwork-mcp
mcp_servers:
simonether-kwork-mcp:
command: "uvx"
args: ["kwork-mcp"] {
"McpServers": {
"simonether-kwork-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"kwork-mcp"
]
}
}
} assistant mcp add simonether-kwork-mcp -t stdio -c uvx -a kwork-mcp
{
"mcpServers": {
"simonether-kwork-mcp": {
"command": "uvx",
"args": [
"kwork-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 18 Sept 26 −18
- Malware scan: pass → unverified ▼ security
- Stability: pass → 0.77 functional
- 17 Sept 26 0
- Stability: 0.97 → pass security
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed pypi/kwork-mcp@0.2.3
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 32 packages
| Packages resolved | 32 |
|---|---|
| Stale | 4 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
delete_message ~93
Удалить отправленное сообщение по его message_id. Когда использовать: для удаления ошибочно отправленного сообщения. Возвращает: подтверждение удаления или сообщение об ошибке. Связанные: get_dialog — найти message_id сообщения, edit_message — отредактировать вместо удаления. ВНИМАНИЕ: необратимое действие. Удалить можно только свои сообщения.
| Name | Type | Req | Description |
|---|---|---|---|
| message_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
delete_offer ~71
Удалить ваше предложение с биржи Kwork. Когда использовать: для отмены отправленного предложения. Возвращает: подтверждение удаления. Связанные: list_my_offers — найти ID предложения для удаления. ВНИМАНИЕ: необратимое действие.
| Name | Type | Req | Description |
|---|---|---|---|
| offer_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
edit_message ~105
Редактировать отправленное сообщение по его message_id. Когда использовать: для исправления опечаток или обновления текста отправленного сообщения. Возвращает: подтверждение редактирования или сообщение об ошибке. Связанные: get_dialog — найти message_id сообщения, delete_message — удалить вместо редактирования. ВНИМАНИЕ: можно редактировать только свои сообщения.
| Name | Type | Req | Description |
|---|---|---|---|
| message_id | integer | yes | – |
| text | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_connects ~78
Получить информацию о коннектах (для отклика на проекты биржи). Когда использовать: перед отправкой предложения, чтобы проверить баланс коннектов. Возвращает: количество активных и общее количество коннектов. Связанные: submit_offer — отправка предложения (списывает 1 коннект).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_dialog ~87
Получить сообщения из диалога с пользователем по его username. Когда использовать: для чтения переписки с конкретным пользователем. Возвращает: сообщения в хронологическом порядке (старые сверху). Связанные: list_dialogs — список всех диалогов, send_message — отправить ответ.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | – |
| username | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_exchange_info ~75
Общая статистика биржи Kwork: количество проектов, категории, лимиты. Когда использовать: для получения общей информации о бирже перед работой с проектами. Возвращает: статистику биржи в виде ключ-значение. Связанные: list_projects — список проектов, list_categories — дерево категорий.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_favorite_categories ~64
Получить список избранных категорий текущего пользователя. Когда использовать: для просмотра категорий, на которые подписан пользователь. Возвращает: список избранных категорий с ID и названием. Связанные: list_categories — полное дерево категорий.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_kwork_details ~82
Получить подробную информацию о кворке по его ID. Когда использовать: для просмотра отзывов, FAQ и похожих кворков. Возвращает: отзывы, часто задаваемые вопросы, похожие кворки. Связанные: list_my_kworks — название и цена кворка.
| Name | Type | Req | Description |
|---|---|---|---|
| kwork_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_me ~75
Получить информацию о текущем пользователе Kwork (профиль, рейтинг, баланс). Когда использовать: для проверки своего профиля, баланса, рейтинга. Возвращает: имя, рейтинг, отзывы, уровень, баланс, количество заказов. Связанные: get_connects — баланс коннектов.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_offer ~75
Подробная информация о вашем предложении на бирже Kwork. Когда использовать: для просмотра деталей конкретного предложения. Возвращает: название, статус, цена, срок, проект, описание. Связанные: list_my_offers — список всех предложений, delete_offer — удалить.
| Name | Type | Req | Description |
|---|---|---|---|
| offer_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_order_details ~72
Получить подробную информацию о заказе по его ID. Когда использовать: для просмотра описания, этапов и истории заказа. Возвращает: описание, этапы с прогрессом, историю событий. Связанные: list_worker_orders — список всех заказов.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_project ~78
Подробная информация о проекте на бирже Kwork по его ID. Когда использовать: для изучения конкретного проекта перед отправкой предложения. Возвращает: название, статус, заказчик, бюджет, описание, количество предложений. Связанные: submit_offer — отправить предложение на проект.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_user_info ~113
Получить публичную информацию о пользователе Kwork по ID или username. Когда использовать: для проверки профиля, получения user_id по username перед отправкой сообщения, или просмотра рейтинга собеседника. Возвращает: ID, имя, рейтинг, отзывы, специализация, онлайн-статус. Связанные: search_users — поиск пользователя по запросу, send_message — отправить сообщение (требует user_id или username).
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | – | – | – |
| username | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_categories ~75
Получить дерево всех категорий Kwork (родительские, подкатегории, категории). Когда использовать: для выбора категории при фильтрации проектов или создании кворка. Возвращает: иерархическое дерево категорий с ID. Связанные: list_projects — фильтрация проектов по категории.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_dialogs ~82
Получить список диалогов (личных переписок) на Kwork. Когда использовать: для просмотра списка собеседников и последних сообщений. Возвращает: список собеседников с последним сообщением и счётчиком непрочитанных. Связанные: get_dialog — сообщения конкретного диалога.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_my_kworks ~97
Получить список своих кворков (услуг), сгруппированных по статусу. Когда использовать: для просмотра всех своих услуг и их текущих статусов. Возвращает: кворки, сгруппированные по статусам (активные, на паузе и т.д.). Связанные: get_kwork_details — подробности кворка, start_kwork/pause_kwork — управление.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_my_offers ~102
Список ваших предложений (офферов) на бирже Kwork. Когда использовать: для просмотра отправленных предложений и их статусов. Возвращает: список предложений с ID, названием проекта, статусом, ценой. Связанные: get_offer — подробности предложения, submit_offer — отправить новое. Параметры: - page: номер страницы (по умолчанию 1)
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_notifications ~50
Получить список уведомлений текущего пользователя Kwork. Когда использовать: для просмотра последних уведомлений (заказы, сообщения, системные). Возвращает: список уведомлений с датой и текстом.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_projects ~152
Список проектов на бирже Kwork с фильтрацией. Когда использовать: для поиска подходящих проектов на бирже. Возвращает: список проектов с бюджетом, количеством предложений и описанием. Связанные: get_project — подробности проекта, submit_offer — отправить предложение. Фильтры: категория, бюджет (от/до), процент найма, макс. предложений, текстовый поиск. Без фильтров — проекты из избранных категорий.
| Name | Type | Req | Description |
|---|---|---|---|
| category_id | – | – | – |
| hiring_from | – | – | – |
| max_offers | – | – | – |
| page | integer | – | – |
| price_from | – | – | – |
| price_to | – | – | – |
| query | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_worker_orders ~99
Получить список заказов текущего продавца (все статусы). Когда использовать: для просмотра текущих и прошлых заказов продавца. Возвращает: список заказов с ID, названием, статусом, ценой, покупателем. Связанные: get_order_details — подробности конкретного заказа. Параметры: - page: номер страницы (по умолчанию 1)
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
mark_dialog_read ~84
Пометить все сообщения в диалоге с пользователем как прочитанные. Когда использовать: после прочтения диалога, чтобы убрать счётчик непрочитанных. Возвращает: подтверждение или сообщение об ошибке. Связанные: list_dialogs — увидеть непрочитанные диалоги.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
pause_kwork ~89
Приостановить кворк. Кворк перестанет отображаться покупателям. Когда использовать: для временного скрытия кворка (отпуск, перегрузка). Возвращает: подтверждение приостановки или сообщение об ошибке. Связанные: start_kwork — возобновить кворк.
| Name | Type | Req | Description |
|---|---|---|---|
| kwork_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
search_projects ~83
Поиск проектов на бирже Kwork по текстовому запросу. Когда использовать: для поиска проектов по ключевым словам. Возвращает: список найденных проектов с бюджетом и описанием. Связанные: list_projects — расширенная фильтрация, get_project — подробности.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | – |
| query | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
search_users ~75
Поиск пользователей Kwork по имени или username. Когда использовать: для поиска пользователя, если не известен точный username или user_id. Возвращает: список найденных пользователей с ID, username, рейтингом. Связанные: get_user_info — подробный профиль найденного пользователя.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
send_message ~130
Отправить личное сообщение пользователю Kwork по user_id или username. Когда использовать: для отправки сообщения конкретному пользователю. Можно указать user_id или username — при username система автоматически определит user_id. Возвращает: подтверждение отправки или сообщение об ошибке. Связанные: get_dialog — прочитать переписку перед ответом, get_user_info — узнать user_id по username. ВНИМАНИЕ: сообщение будет реально отправлено пользователю на Kwork.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | – |
| user_id | – | – | – |
| username | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
send_order_for_approval ~106
Отправить выполненную работу на проверку покупателю. Когда использовать: когда работа по заказу завершена и готова к сдаче. Возвращает: подтверждение отправки или сообщение об ошибке. Связанные: get_order_details — проверить статус заказа перед отправкой. ВНИМАНИЕ: необратимое действие — заказ перейдёт в статус «на проверке».
| Name | Type | Req | Description |
|---|---|---|---|
| comment | string | – | – |
| order_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
start_kwork ~97
Активировать приостановленный кворк. Кворк станет виден покупателям. Когда использовать: для возобновления показа кворка после паузы. Возвращает: подтверждение активации или сообщение об ошибке. Связанные: pause_kwork — приостановить кворк, list_my_kworks — список кворков.
| Name | Type | Req | Description |
|---|---|---|---|
| kwork_id | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
submit_offer ~183
Отправить предложение на проект биржи Kwork. Когда использовать: для отклика на подходящий проект на бирже. Возвращает: ID предложения и подтверждение отправки. Связанные: get_project — изучить проект перед откликом, get_connects — проверить баланс коннектов. ВНИМАНИЕ: отправка предложения списывает один коннект. Параметры: - project_id: ID проекта на бирже - title: название вашего предложения (кворка) - description: подробное описание (минимум 150 символов) - price: цена в рублях - duration_days: срок выполнения в днях
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | – |
| duration_days | integer | yes | – |
| price | integer | yes | – |
| project_id | integer | yes | – |
| title | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the Kwork MCP server?
Kwork is an MCP server listed in the public MCP registry as io.github.simonether/kwork-mcp. Kwork freelance marketplace: browse projects, submit offers, manage orders, message clients. This page covers its PyPI package (kwork-mcp).
Is the Kwork MCP server safe to use?
Kwork scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Kwork MCP server expose?
Kwork exposes 28 tools: get_me, get_connects, get_user_info, search_users, list_categories, and 23 more. Their descriptions and schemas cost roughly 2,572 tokens of context every time the server is loaded.
Is the Kwork MCP server still maintained?
Kwork is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.