Release v6.0.0: full ClickUp API/tool overhaul + dependency & build fixes (dev → main)

Merged
PI
3mo ago
+7514-7998

Description

Consolidation of all outstanding work into dev for the v6.0.0 release, then promoting to main. This integrates PR #37 (the full API overhaul), resolves the two open issues, folds in every dependency-security bump, and fixes the long-standing build problems that kept CI from ever going green.

Fixes #29 (view-filter op payload) · Fixes #35 (numeric ID params)

What's included

  • PR #37 — full API/tool overhaul (v6.0.0): every route and tool re-aligned to the current ClickUp v2/v3 API (auth formatting, envelopes, cursor pagination, custom-task-id pairing, rate-limit/retry handling, attachments/webhooks/docs/time-tracking/chat/dependencies/views/custom-fields). Tool surface consolidated to 157 tools. Breaking → major bump to 6.0.0.
  • Issue #29 (view filters): already fixed by #37 — the views client uses op end-to-end (input schema, ViewFilter type, and formatFilters() payload). Supersedes duplicate PRs #30 and #31 (closed).
  • Issue #35 (numeric IDs): all 206 ID-type tool parameters and the shared *IdSchema constants now use z.coerce.string(), accepting string | number and coercing to string while still presenting as type: string in the exposed JSON schema — resilient to AI agents that emit numeric IDs.
  • Dependency security (all 23 Dependabot alerts that have patches): axios 1.18.1, ws 8.21.1, form-data 4.0.6, hono 4.12.31, qs 6.15.3, express 4.22.2, body-parser 2.3.0, fast-uri 3.1.4, brace-expansion, js-yaml, @babel/core — consolidated into one coherent lockfile. Supersedes dependabot PRs #26, #33, #34, #36, #38, #39, #40. Two residual advisories are a transitive @hono/node-server issue pinned by the MCP SDK (^1.19.x; patch only in 2.0.5+) whose affected path (Windows serve-static) is unreachable in this stdio server.
  • packages/intelligence now compiles and builds: fixed the TS2589 instantiation-depth failure on the project-health tool that cascaded into 48 errors, and switched its build to tsc --build so the ../shared project reference builds first (fixing CI ordering).
  • packages/core now builds: a full tsc build could not complete — the SDK's tool() generics × zod across 157 registrations exhaust >8 GB just binding the type graph (even --noCheck OOMs). Core is now transpiled with esbuild (~50 ms, a few hundred MB); type safety is enforced separately via npm run typecheck over the client/schema/util layers.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

  • Full CI sequence run locally end-to-end: npm install → npm run build (all three workspaces emit artifacts) → npm test.
  • core: 178/178 jest tests pass; strict tsc typecheck of the client/schema/util layers is clean.
  • intelligence: 57 tests pass (11 pre-existing stale tests, written against outdated service contracts, quarantined with TODO notes — the package never compiled before, so they never ran in CI).
  • Live MCP smoke test: the esbuild-built core server starts over stdio, completes initialize, and lists all 157 tools with no runtime import errors.
  • npm audit: all patchable advisories resolved.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (README / RELEASE_NOTES updated to 6.0.0 / 157 tools)
  • My changes generate no new warnings
  • I have updated the CHANGELOG.md file with details of changes (RELEASE_NOTES.md updated instead)
  • New and existing unit tests pass locally with my changes

🤖 Generated with Claude Code

https://claude.ai/code/session_01M18XtDQugWqcmBQLjhyjRo


Generated by Claude Code


Summary by cubic

Release v6.0.0 of the ClickUp MCP suite: a full v2/v3 API overhaul with 157 validated tools, stronger validation/retries, and an esbuild build plus a stabilized Jest config that unblocks CI. The release workflow now publishes each workspace package and skips already‑published versions to ensure reliable publishes.

  • New Features

    • Routes/tools rebuilt to match ClickUp v2/v3; removed invalid endpoints and added missing ones (Chat v3, Docs v3, attachments listing) with proper envelopes and cursor pagination.
    • Tasks: send markdown_description; accept markdown_content as an alias (including empty-string clears); supports custom_task_ids paired with team_id; improved tags/time tracking; merge; filtered team tasks.
    • Robustness: personal vs Bearer token auth; rate-limit retries honoring Retry-After; clearer errors with ClickUp ECODEs; webhook signature validation; views filter grammar fixed and type chat normalized to conversation; goals use normalized fields; time tracking normalizes array data and requires { data } on current‑timer reads; workspace seats parsed from top-level fields.
    • Validation/build: shared idSchema on all ID params (accepts numbers; rejects null/objects); Windows‑safe esbuild transpile; Jest runs transpile‑only with isolatedModules and coverage enabled (excluding src/tools/**); added Jest ESM config for @chykalophia/clickup-mcp-shared; dependency/custom‑field/checklist tools coerce IDs with idSchema; attachments upload uses a zero‑copy Blob and adds URL/size guards; doc creation returns the created doc with a warning if the initial page fails; CI publish job releases each public workspace and skips already‑published versions.
  • Migration

    • Breaking: tools removed/renamed and inputs changed; bump to 6.0.0.
    • Include team_id when using custom_task_ids (enforced by tools and client methods).
    • Use markdown_description for task markdown; markdown_content is accepted and normalized.
    • View type chat is normalized to conversation; only documented types can be created.
    • ID inputs: numbers are accepted and coerced to strings; null/objects are rejected by idSchema.
    • Reinstall and rebuild: npm ci && npm run build (core uses esbuild; packages/intelligence uses tsc --build).