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