The repository measures it — five tasks come back from the raw API as roughly 12,000 tokens of nested JSON, and the same five render as a compact table at roughly 150. Flattening happens by default and --output json is there when you need everything. The tool filter is the other thing worth setting deliberately: the read and safe profiles are enforced at call time, not just hidden from the tool list, so a filtered destructive call is rejected rather than merely undiscoverable. Note the maintainer's own advice — with 144 tool schemas loading per session, the CLI path costs less context than MCP if your agent can run shell commands.
A Rust CLI for the ClickUp API with a built-in MCP server, covering every endpoint and returning flattened, compact output built for agents working inside a context window.
- 144 MCP tools covering 100% of the ClickUp API, all prefixed clickup_
- Tasks: clickup_task_list, clickup_task_search, clickup_task_get, clickup_task_create, clickup_task_update and clickup_task_move
- Comments and docs: clickup_comment_create, clickup_comment_list, clickup_doc_list, clickup_doc_edit_page and clickup_doc_embed_image
- Chat, views, templates, attachments and audit logs, plus clickup_whoami to confirm which account the token belongs to
- Pagination on 15 of the tools, across ClickUp's four different pagination styles, with an all flag to walk the whole set
- Tool filtering at startup — a read or safe profile, or explicit allow and deny lists by group or tool name
- Two binaries with identical behaviour: clickup-cli and the shorter clkup
A ClickUp API token, set with the setup command or passed as CLICKUP_TOKEN. Install from npm, Homebrew, crates.io, the AUR, a prebuilt binary for your platform, or run the Docker image with mcp serve. Building from crates.io needs Rust 1.70 or newer.
Build from source — clone the repository and build it, then point your client at the binary
