---
name: gentic-clickup
description: "Give your AI agent your ClickUp Docs. List and search wikis, create Docs, and create or update pages in markdown — all through the Model Context Protocol. Uses your connected ClickUp key. Free to use, no subscriptions."
license: MIT
metadata:
  author: gentic
  version: "1.0.0"
---

# Gentic ClickUp

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.

## 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.

## Tools

| Tool | Description | Cost |
|------|-------------|------|
| `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. | Free |
| `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. | Free |
| `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. | Free |
| `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. | Free |
| `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. | Free |
| `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. | Free |

## 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).

## 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.

## Tool details

- `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.
- `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.
  - `workspace_id` (string, required) — The ClickUp Workspace (team) id.
  - `name` (string, required) — 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.
  - `visibility` (string, enum: `PUBLIC` | `PRIVATE` | `PERSONAL` | `HIDDEN`) — Doc visibility. Defaults to ClickUp's workspace default.
  - `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.
  - `workspace_id` (string, required) — The ClickUp Workspace (team) id.
  - `doc_id` (string, required) — The Doc id to add the page to.
  - `name` (string, required) — The title of the new page.
  - `content` (string) — Page body. Markdown by default (see content_format).
  - `content_format` (string, enum: `text/md` | `text/plain`) — Format of `content`. Defaults to text/md (markdown).
  - `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.
  - `workspace_id` (string, required) — 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).
  - `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.
  - `workspace_id` (string, required) — The ClickUp Workspace (team) id.
  - `doc_id` (string, required) — The Doc id to list pages for (from clickup_list_docs).
  - `content_format` (string, enum: `text/md` | `text/plain`) — Format for returned page content. Defaults to text/md (markdown).
- `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.
  - `workspace_id` (string, required) — The ClickUp Workspace (team) id.
  - `doc_id` (string, required) — The Doc id the page belongs to.
  - `page_id` (string, required) — 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, enum: `text/md` | `text/plain`) — Format of `content`. Defaults to text/md (markdown).
  - `content_edit_mode` (string, enum: `replace` | `append` | `prepend`) — How to apply `content`: replace (default, overwrite), append, or prepend.

---

_This SKILL.md is generated from the live Gentic MCP manifest. Tool names, descriptions, and pricing are always current. Connect Gentic ClickUp at https://gentic.co/clickup._
