Weeeking

io.github.OniVev0.5.0更新于 Oct 10, 2026

MCP server for Weeek with full public API coverage: tasks, projects, CRM, time tracking.

概览

AI 生成的概览

让助手读取并在启用写入后修改 Weeek 工作区数据:任务、项目、看板、CRM 商机、联系人和工时记录。

功能
Weeeking 封装 Weeek 公开 API,覆盖官方 OpenAPI 规范中的 157 个操作。它提供 13 个带 action 参数的管理工具组(项目、看板、看板列、自定义字段、项目组合、标签、任务、漏斗、漏斗状态、商机、组织、联系人、货币),以及 12 个日常使用的精选工具,例如上下文、任务搜索、任务获取、评论、附件下载,以及创建、更新、移动、完成任务、设置人员、添加评论和删除评论。MCP 资源与提示提供现成场景,compact 和 fetchAll 等选项可控制大响应。
适用场景
当助手需要在 Weeek 工作区内工作时使用:查询和汇总任务、项目与 CRM 记录、记录工时,或在开启写入后创建和更新任务与评论。适合已把 Weeek 作为任务与 CRM 系统的团队。
运行要求
以 stdio 在本地运行,通常通过 npx weeeking 或下载的二进制文件启动;README 也说明可用 Rust 1.88+ 从源码构建。需要 Weeek API 令牌(WEEEK_API_TOKEN 或 WEEEK_TOKEN,或用 store-token 命令存入系统钥匙串);没有令牌则无法读取。可选设置包括 WEEEK_BASE_URL、WEEEK_LANG、WEEEK_TIMEOUT_MS 和 WEEEK_MAX_RESPONSE_CHARS。仅支持桌面端。
安装前请注意
默认处于只读模式;将 READ_ONLY 设为 false 会开放创建、编辑和删除操作,包括 CRM 变更,请有意开启。Weeek API 令牌以其所有者身份访问,操作会记在该账号名下。README 指出 API 限制:任务描述只能在创建时设置,更新标签会替换整个列表,评论无法编辑。令牌不会被记录到日志。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Weeeking,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Weeeking 🛡️

Русский · English

[CI] [Release] [License: MIT]

Weeek and conquer. MCP-сервер для Weeek с полным покрытием публичного API: 157 операций из официальной OpenAPI-спецификации. Один бинарник на Rust, без Node и внешних зависимостей в рантайме. Релизы — для семи платформ: Windows x64/arm64, Linux x64 (glibc/musl), Linux arm64, macOS arm64/x64.

Возможности

  • 13 админ-групп с action — weeek_project, weeek_board, weeek_board_column, weeek_custom_fields, weeek_portfolio, weeek_tags, weeek_task (таймеры, записи времени, вложения, родитель…), weeek_funnels, weeek_funnel_statuses, weeek_deals, weeek_organizations, weeek_contacts, weeek_currencies.
  • 12 curated-тулов для повседневной работы: weeek_context, weeek_search_tasks, weeek_get_task, weeek_list_comments, weeek_download_attachment + записи (weeek_create_task, weeek_update_task, weeek_move_task, weeek_complete_task, weeek_set_task_people, weeek_add_comment, weeek_delete_comment).
  • READ_ONLY по умолчанию: изменяющие действия не регистрируются, пока не выставлено READ_ONLY=false.
  • Ресурсы и промпты MCP: weeek://me и weeek://projects читаются клиентом без tool-call; промпты «Мои задачи на сегодня» и «Итоги недели» — готовые сценарии для агента.
  • Эргономика LLM: compact=true убирает null и пустые значения (включая пустые элементы массивов) из тяжёлых ответов; fetchAll=true (+maxItems) собирает страницы задач и комментариев (страница по умолчанию 100, не более 50 страниц) с флагом truncated.
  • Надёжность: ретраи 429 и 502/503/504 с Retry-After и экспоненциальным бэкоффом (429 — для любого метода, 502/503/504 и сетевые сбои — только для GET/HEAD; таймауты не повторяются); WEEEK_LOG=debug — HTTP-логи в stderr (метод, путь, статус, длительность; без токена).
  • Кодогенератор спеки: tools/update_spec.py тянет OpenAPI с developers.weeek.net и генерирует src/spec_generated.rs — статические данные (&'static str), которые компилируются в бинарник; в рантайме нет ни JSON, ни парсинга, чанк спеки в репозитории не сохраняется.

Сборка

Требуется Rust 1.88+ (MSVC toolchain на Windows).

bash
cargo build --release# → target/release/weeeking.exe (Windows) / target/release/weeeking (Linux, macOS)

Релизы

Готовые бинарники — в GitHub Releases: архивы weeeking-<версия>-<платформа> и сырые бинарники для npm-обёртки; рядом — файлы .sha256, хэши также перечислены в описании релиза.

ПлатформаАрхивСырой бинарник
Windows x64weeeking-<версия>-win-x64.zipweeeking-<версия>-win-x64.exe
Windows arm64weeeking-<версия>-win-arm64.zipweeeking-<версия>-win-arm64.exe
Linux x64 (glibc)weeeking-<версия>-linux-x64.tar.gzweeeking-<версия>-linux-x64
Linux x64 (musl, static)weeeking-<версия>-linux-musl-x64.tar.gzweeeking-<версия>-linux-musl-x64
Linux arm64weeeking-<версия>-linux-arm64.tar.gzweeeking-<версия>-linux-arm64
macOS arm64weeeking-<версия>-osx-arm64.tar.gzweeeking-<версия>-osx-arm64
macOS x64weeeking-<версия>-osx-x64.tar.gzweeeking-<версия>-osx-x64
bash
# проверка контрольной суммыcertutil -hashfile weeeking-<версия>-win-x64.zip SHA256          # Windowssha256sum -c weeeking-<версия>-linux-x64.tar.gz.sha256           # Linux

Каждый файл релиза подписан GitHub-аттестацией (Sigstore) — проверяемое происхождение сборки:

bash
gh attestation verify weeeking-<версия>-win-x64.exe -R OniVe/weeeking

npm (npx)

bash
npx -y weeeking     # MCP-сервер по stdio; бинарник скачается и проверится по sha256

Пакет weeeking — тонкая обёртка: берёт нативный бинарник нужной платформы (Windows x64/arm64, Linux x64 gnu/musl, Linux arm64, macOS arm64/x64) из GitHub Releases этой же версии. Публикуется через npm trusted publishing (OIDC, с provenance).

Сервер также опубликован в официальном MCP Registry — io.github.OniVe/weeeking; оттуда его подхватывают каталог GitHub MCP и агрегаторы.

На macOS скачанный через браузер бинарник может ловить карантин Gatekeeper — снимите его (xattr -d com.apple.quarantine <файл>) или ставьте через npx/curl.

Переменные окружения

ПеременнаяПо умолчаниюОписание
WEEEK_API_TOKEN—Токен из Weeek (Настройки workspace → API). Без него чтения невозможны.
READ_ONLYtruefalse/0 — открыть изменяющие операции (создание, правка, удаление, CRM).
WEEEK_LANGruЯзык пользовательских текстов (ru/en): справка, описания инструментов, промпты, ошибки.
WEEEK_BASE_URLhttps://api.weeek.net/public/v1Свой прокси/хост при необходимости.
WEEEK_TIMEOUT_MS30000Таймаут запроса.
WEEEK_MAX_RESPONSE_CHARS60000Обрезка больших ответов.
WEEEK_DISABLE_KEYCHAIN—1 — не читать токен из системного хранилища.
WEEEK_KEYCHAIN_ACCOUNTapi-tokenИмя записи в системном хранилище (для нескольких аккаунтов).
WEEEK_MAX_ATTACHMENT_BYTES67108864 (64 МиБ)Лимит скачивания вложения (защита от гигантских ответов).
WEEEK_RETRY_MAX2Дополнительные попытки при 429, 502/503/504 и сетевых сбоях (0–5); таймауты не повторяются.
WEEEK_RETRY_BASE_MS300База экспоненциального бэкоффа (потолок 5 с; Retry-After учитывается, потолок 30 с).
WEEEK_LOG—debug — подробные HTTP-логи в stderr (метод, путь, статус, мс; токен не логируется).

Откуда берётся токен

  1. WEEEK_API_TOKEN (или WEEEK_TOKEN) из окружения — приоритет всегда за ним.
  2. В системном хранилище — запись сервиса weeek-mcp с именем WEEEK_KEYCHAIN_ACCOUNT (по умолчанию api-token): Windows Credential Manager (target api-token.weeek-mcp), macOS Keychain, Linux Secret Service (GNOME Keyring/KWallet через D-Bus); сохраняется командой weeeking store-token. Значение никогда не логируется.
  3. Если пусто — сервер поднимается, но вызовы возвращают isError с подсказкой.

Системное хранилище работает на всех платформах; на headless-Linux без D-Bus его нет — задайте токен переменными окружения WEEEK_API_TOKEN или WEEEK_TOKEN.

Несколько аккаунтов Weeek

Личность действий (автор комментариев, задач) определяется токеном: API всегда действует от владельца токена. Для второго пользователя нужен его собственный токен (создаётся в Настройках workspace → API; доступ к разделу есть у супер-админов и админов).

text
# 1) Сохранить токен второго аккаунта (ввод скрыт, в argv токен не попадает)weeeking store-token --account api-token-anna
# 2) Запуск сервера под этим аккаунтом$env:WEEEK_KEYCHAIN_ACCOUNT = "api-token-anna"; weeeking   # PowerShell (Windows)WEEEK_KEYCHAIN_ACCOUNT=api-token-anna weeeking             # bash/zsh (macOS, Linux)

Пример второго инстанса в конфиге OpenCode (нативная форма V2):

jsonc
"mcp": {  "servers": {    "weeek-anna": {      "type": "local",      "command": ["C:\\путь\\weeeking.exe"],      "environment": {        "WEEEK_KEYCHAIN_ACCOUNT": "api-token-anna",        "READ_ONLY": "false"      }    }  }}

Агент сможет выбирать, от кого действовать: тулы weeek-anna_* пишут от Анны, weeek_* — от основного аккаунта. Удалить запись из хранилища: Windows — cmdkey /delete:api-token-anna.weeek-mcp; macOS — security delete-generic-password -s weeek-mcp -a api-token-anna; Linux — средствами вашего хранилища (GNOME Keyring / KWallet).

На headless-Linux без D-Bus системного хранилища нет: мультиаккаунт — отдельный инстанс сервера с собственным WEEEK_API_TOKEN в окружении.

CLI

text
weeeking                                запустить MCP-сервер (stdio)weeeking store-token [--account <имя>]  сохранить токен в системное хранилищеweeeking --help                         справка

Подключение (OpenCode)

Нативная форма OpenCode V2 — серверы живут в mcp.servers:

jsonc
"mcp": {  "servers": {    "weeek": {      "type": "local",      "command": ["C:\\путь\\weeeking.exe"],   // на любой ОС: ["npx", "-y", "weeeking"]      "environment": { "READ_ONLY": "false" }    }  }}

Добавить из CLI: opencode mcp add weeek -- npx -y weeeking (с --global — для всех проектов). Отключить сервер, не удаляя из конфига: "disabled": true (нативная V2-форма; V1-форма "mcp": { "weeek": { … } } с enabled тоже поддерживается).

Любой другой MCP-клиент: команда — путь к бинарнику (или npx -y weeeking), транспорт — stdio.

Обновление спецификации

bash
pip install quickjs            # зависимость кодогенератора (один раз)python tools/update_spec.py    # developers.weeek.net → src/spec_generated.rs (кодогенерация)cargo fmt && cargo build --release

Разработка

bash
cargo fmtcargo clippy --all-targetscargo test                   # unit + mock-сюита (HTTP против эмулятора) + smoke

Приёмочный smoke против живого API (перед релизом; read-only по умолчанию):

bash
python tools/live_smoke.pypython tools/live_smoke.py --write-test <PROJECT_ID>   # + цикл мутаций в sandbox-проекте

Пересборка при работающем OpenCode (exe залочен запущенным MCP-сервером):

bash
python tools\rebuild.py

Ограничения API Weeek (важно агенту)

  • Описание задачи задаётся только при создании — позже не изменить.
  • tags в weeek_update_task заменяет весь список — сначала прочитайте задачу.
  • Комментарии можно создать и удалить, но не отредактировать.

Лицензия

MIT

来源:README.md,提交 8a2ee07

工具

0
工具元数据尚未被收录。

版本历史

1
  1. v0.5.0最新Oct 10, 2026