Gentic ClickUp — Documentation
Connect any AI agent to your ClickUp Docs. List and search your wikis, create new Docs, and add or edit pages in markdown — all through the Model Context Protocol. Your agent reads and writes your ClickUp knowledge base directly, using the ClickUp key you connect once in your dashboard.
1. Getting Started
Sign Up & Get Your API Key
Before you can use Gentic ClickUp, you need an API key to authenticate your requests.
- Go to gentic.co/clickup and create an account.
- Create an organization from your dashboard. API keys and billing are scoped to the organization.
- Generate an API key and use it as a Bearer token in your MCP client.
2. Connecting to the MCP Server
The server is available at https://mcp.gentic.co/clickup. For Claude Code:
claude mcp add gentic-clickup \
--transport http \
https://mcp.gentic.co/clickup \
--header "Authorization: Bearer YOUR_API_KEY"For Claude Web and ChatGPT you can also connect via OAuth — no API key needed. See the connect section on the landing page for other MCP clients (n8n, OpenClaw).
3. Agent Skill
For the best results, pair the MCP server with the Gentic ClickUp agent skill. The MCP server gives your agent tool access; the skill teaches it the optimal workflow order. Both the raw SKILL.md and a ready-to-upload .skill bundle are generated on demand from the live manifest, so they always reflect the current tools and pricing.
Add the skill directly via URL:
https://gentic.co/clickup/SKILL.mdOr upload a .skill bundle to Claude Managed Agents:
https://gentic.co/clickup/gentic-clickup.skillDownload this file and upload it wherever Claude Managed Agents asks for a .skill file. It's a zip bundle generated on demand from the latest SKILL.md.
4. When to Apply
- User wants to create a new Doc (wiki) in ClickUp.
- User wants to add a page to an existing ClickUp Doc.
- User wants to edit, append to, or rewrite a page in a ClickUp Doc.
- User wants to find or search their ClickUp Docs, or read a page's content.
- User wants meeting notes, specs, research, or generated content saved into their ClickUp wiki.
- User asks whether ClickUp is connected or which workspaces are available.
5. Workflow
1. Check the connection first with `clickup_connection_status`
Call `clickup_connection_status` before anything else — it verifies the org's stored ClickUp key and returns `{ connected: true, workspaces: [{id, name}], updated_at }`. Use a workspace `id` as the `workspace_id` for every other tool. If it returns `{ connected: false }`, tell the user to connect ClickUp in the Gentic dashboard (Integrations → ClickUp) rather than guessing. Free.
2. Find the Doc with `clickup_list_docs`
Pass a `workspace_id` and optionally a `search` query to filter by name. Returns `{ docs, next_cursor }`; each doc's `id` is the `doc_id` you pass to `clickup_list_pages` and `clickup_create_page`. Paginate by passing a prior `next_cursor` back as `cursor`. Free.
3. Create a Doc with `clickup_create_doc`
Pass `workspace_id` and a `name`. ClickUp adds one empty initial page by default (write to it with `clickup_create_page` / `clickup_update_page` using the returned doc id). Optionally place it under a container with `parent_id` + `parent_type` (4=Space, 5=Folder, 6=List, 7=Everything, 12=Workspace); omit to create it at the workspace's Everything level. Returns `{ id, name }`. Free.
4. Read pages with `clickup_list_pages`
Pass `workspace_id` and `doc_id` to get the page tree; each page has an `id` (use it as `page_id` for updates), a `name`, and — by default — its markdown `content`. Set `content_format` to `text/plain` for plain text. Free. Use this to locate the page you want to edit.
5. Write pages with `clickup_create_page` / `clickup_update_page`
`clickup_create_page` adds a new page — pass `workspace_id`, `doc_id`, a `name`, and `content` (markdown by default); nest under a page with `parent_page_id`. `clickup_update_page` edits an existing page by `page_id`: set the `name`/`sub_title` and/or `content`, and choose `content_edit_mode` — `replace` (default, overwrite the body), `append`, or `prepend`. Both are Free. Prefer `update_page` over adding a duplicate page.
6. Confirm what changed
After a write, tell the user exactly what happened — the Doc and page names, whether you created or edited, and (for updates) whether you replaced, appended, or prepended. Don't dump raw JSON; summarize the change and offer the next step (another page, a sub-page, or a follow-up edit).
6. Tool Reference
6 tools, rendered live from the Gentic MCP manifest. Parameter tables come directly from each tool's JSON Schema.
clickup_connection_status
Check whether the calling organization has connected ClickUp. When connected, verifies the stored API key against ClickUp and returns `{ connected: true, workspaces: [{id, name}], updated_at }` — use a workspace `id` as the `workspace_id` for the other ClickUp tools. Returns `{ connected: false }` (with a hint) when no key is configured or the key is rejected. Free. Call this first to give the user actionable guidance when the integration is missing.
This tool takes no parameters.
clickup_create_doc
Create a new Doc (wiki) in a ClickUp workspace. Pass `workspace_id` and a `name`. By default ClickUp adds one empty initial page (write to it with clickup_create_page / clickup_update_page using the returned doc id). Optionally place the doc under a container via `parent_id` + `parent_type` (type: 4=Space, 5=Folder, 6=List, 7=Everything, 12=Workspace); omit to create it at the workspace's Everything level. Returns `{ id, name }`. Free.
| Parameter | Type | Description |
|---|---|---|
workspace_idrequired | string | The ClickUp Workspace (team) id. |
namerequired | string | The title of the new Doc. |
parent_id | string | Optional container id to nest the doc under (a Space/Folder/List id). Requires parent_type. |
parent_type | integer | Type of parent_id: 4=Space, 5=Folder, 6=List, 7=Everything, 12=Workspace. -9007199254740991 – 9007199254740991 |
visibility | string | Doc visibility. Defaults to ClickUp's workspace default. enum: PUBLIC, PRIVATE, PERSONAL, HIDDEN |
create_page | boolean | Whether to auto-create an initial empty page. Defaults to true. |
clickup_create_page
Add a new page to a ClickUp Doc (wiki). Pass `workspace_id`, `doc_id` (from clickup_list_docs), a page `name`, and the `content` (markdown by default — `content_format` defaults to text/md). Nest under an existing page with `parent_page_id`. Returns `{ id, name }` for the created page. Free. Use clickup_update_page to edit an existing page instead of adding a new one.
| Parameter | Type | Description |
|---|---|---|
workspace_idrequired | string | The ClickUp Workspace (team) id. |
doc_idrequired | string | The Doc id to add the page to. |
namerequired | string | The title of the new page. |
content | string | Page body. Markdown by default (see content_format). |
content_format | string | Format of `content`. Defaults to text/md (markdown). enum: text/md, text/plain |
parent_page_id | string | Optional id of an existing page to nest this new page under. |
sub_title | string | Optional page subtitle. |
clickup_list_docs
List or search Docs (wikis) in a ClickUp workspace. Pass a `workspace_id` (from clickup_connection_status) and optionally a `search` query to filter by name. Returns `{ docs, next_cursor }` where each doc has an `id` (use it as `doc_id` for clickup_list_pages / clickup_create_page). Paginate by passing a prior `next_cursor` back as `cursor`. Free.
| Parameter | Type | Description |
|---|---|---|
workspace_idrequired | string | The ClickUp Workspace (team) id — get it from clickup_connection_status. |
search | string | Optional text to filter docs by name. |
limit | integer | Max docs to return this page (1–100). 1 – 100 |
cursor | string | Resume cursor — pass a prior call's `next_cursor` to page further. |
clickup_list_pages
List the pages inside a ClickUp Doc. Pass `workspace_id` and `doc_id` (from clickup_list_docs). Returns the page tree; each page has an `id` (use it as `page_id` for clickup_update_page), a `name`, and — by default — its markdown `content`. Set `content_format` to `text/plain` for plain text, or omit content-heavy output by requesting the doc's structure. Free.
| Parameter | Type | Description |
|---|---|---|
workspace_idrequired | string | The ClickUp Workspace (team) id. |
doc_idrequired | string | The Doc id to list pages for (from clickup_list_docs). |
content_format | string | Format for returned page content. Defaults to text/md (markdown). enum: text/md, text/plain |
clickup_update_page
Edit an existing page in a ClickUp Doc (wiki). Pass `workspace_id`, `doc_id`, and `page_id` (from clickup_list_pages). Update the `name`/`sub_title` and/or the `content`. `content_edit_mode` controls how `content` is applied: `replace` (default — overwrite the whole page body), `append`, or `prepend`. `content_format` defaults to text/md (markdown). Free.
| Parameter | Type | Description |
|---|---|---|
workspace_idrequired | string | The ClickUp Workspace (team) id. |
doc_idrequired | string | The Doc id the page belongs to. |
page_idrequired | string | The page id to edit (from clickup_list_pages). |
name | string | New page title (optional). |
sub_title | string | New page subtitle (optional). |
content | string | New page body. Markdown by default (see content_format). |
content_format | string | Format of `content`. Defaults to text/md (markdown). enum: text/md, text/plain |
content_edit_mode | string | How to apply `content`: replace (default, overwrite), append, or prepend. enum: replace, append, prepend |
7. Pricing
Pricing is pulled live from the Gentic MCP manifest. All prices are per call and deducted from your Gentic credits.
| Tool | Cost |
|---|---|
| clickup_connection_status | Free |
| clickup_create_doc | Free |
| clickup_create_page | Free |
| clickup_list_docs | Free |
| clickup_list_pages | Free |
| clickup_update_page | Free |
8. Notes
- Free: all six ClickUp tools are free to call. You only pay for other Gentic MCP servers you use alongside it.
- Organization-scoped: the ClickUp key comes from the org's connected integration (Gentic dashboard → Integrations → ClickUp). Connect it once; the server reads it server-side and your agent never handles it.
- Always start with `clickup_connection_status` to get a valid `workspace_id` and to give the user actionable guidance when ClickUp isn't connected.
- Content is markdown by default (`content_format` defaults to text/md). Request `text/plain` when you need plain text back.
- `clickup_update_page`'s `content_edit_mode` is `replace` by default — that overwrites the whole page body. Use `append`/`prepend` to add without clobbering existing content.
- v1 auth is a personal ClickUp API token (pk_…), which carries that user's full ClickUp access. Scope the connected account appropriately.