@griffinwork40/clickup-mcp-server 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 griffinwork40
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
package/README.md ADDED
@@ -0,0 +1,173 @@
1
+ # ClickUp MCP Server
2
+
3
+ A Model Context Protocol (MCP) server that provides comprehensive integration with the ClickUp API. This server enables LLMs to manage tasks, projects, teams, and workflows programmatically.
4
+
5
+ ## Features
6
+
7
+ ### Organization & Hierarchy
8
+ - List teams/workspaces
9
+ - Browse spaces, folders, and lists
10
+ - Get list details including statuses and custom fields
11
+
12
+ ### Task Management
13
+ - Create, read, update, and delete tasks
14
+ - Set task status, priority, assignees, and due dates
15
+ - Manage task descriptions and details
16
+
17
+ ### Search & Collaboration
18
+ - Search tasks across teams with filters
19
+ - Add and retrieve comments on tasks
20
+
21
+ ### Advanced Features
22
+ - Set custom field values
23
+ - Track time on tasks
24
+ - Get time entries
25
+
26
+ ## Installation
27
+
28
+ ```bash
29
+ npm install
30
+ npm run build
31
+ ```
32
+
33
+ ## Configuration
34
+
35
+ Set your ClickUp API token as an environment variable:
36
+
37
+ ```bash
38
+ export CLICKUP_API_TOKEN="pk_your_token_here"
39
+ ```
40
+
41
+ To obtain an API token:
42
+ 1. Go to https://app.clickup.com/settings/apps
43
+ 2. Click "Generate" under "API Token"
44
+ 3. Copy the token (starts with `pk_`)
45
+
46
+ ## Usage
47
+
48
+ ### Run the server
49
+
50
+ ```bash
51
+ npm start
52
+ ```
53
+
54
+ ### Development mode with auto-reload
55
+
56
+ ```bash
57
+ npm run dev
58
+ ```
59
+
60
+ ### With Claude Desktop
61
+
62
+ Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
63
+
64
+ ```json
65
+ {
66
+ "mcpServers": {
67
+ "clickup": {
68
+ "command": "node",
69
+ "args": ["/path/to/clickup-mcp-server/dist/index.js"],
70
+ "env": {
71
+ "CLICKUP_API_TOKEN": "pk_your_token_here"
72
+ }
73
+ }
74
+ }
75
+ }
76
+ ```
77
+
78
+ ## Available Tools
79
+
80
+ ### Organization Tools
81
+ - `clickup_get_teams` - List all teams/workspaces
82
+ - `clickup_get_spaces` - Get spaces in a team
83
+ - `clickup_get_folders` - Get folders in a space
84
+ - `clickup_get_lists` - Get lists in folder/space
85
+ - `clickup_get_list_details` - Get list details with statuses and custom fields
86
+
87
+ ### Task Tools
88
+ - `clickup_get_tasks` - Get tasks in a list (paginated)
89
+ - `clickup_get_task` - Get detailed task information
90
+ - `clickup_create_task` - Create a new task
91
+ - `clickup_update_task` - Update task properties
92
+ - `clickup_delete_task` - Delete a task
93
+
94
+ ### Search & Comments
95
+ - `clickup_search_tasks` - Search for tasks across a team
96
+ - `clickup_add_comment` - Add a comment to a task
97
+ - `clickup_get_comments` - Get comments on a task
98
+
99
+ ### Advanced Tools
100
+ - `clickup_set_custom_field` - Set custom field values
101
+ - `clickup_start_time_entry` - Start time tracking
102
+ - `clickup_stop_time_entry` - Stop time tracking
103
+ - `clickup_get_time_entries` - Get time tracking entries
104
+
105
+ ## Response Formats
106
+
107
+ All tools support two response formats:
108
+
109
+ - **JSON** (`response_format: "json"`): Structured data for programmatic processing
110
+ - **Markdown** (`response_format: "markdown"`): Human-readable formatted text (default)
111
+
112
+ ## Rate Limits
113
+
114
+ ClickUp API rate limits:
115
+ - 100 requests/minute (Business plan)
116
+ - 1000 requests/minute (Business Plus and above)
117
+
118
+ The server implements automatic error handling for rate limit responses.
119
+
120
+ ## Examples
121
+
122
+ ### Create a task
123
+
124
+ ```typescript
125
+ {
126
+ "tool": "clickup_create_task",
127
+ "arguments": {
128
+ "list_id": "123456",
129
+ "name": "Implement new feature",
130
+ "description": "Add user authentication to the app",
131
+ "priority": 2,
132
+ "status": "to do",
133
+ "assignees": [123456]
134
+ }
135
+ }
136
+ ```
137
+
138
+ ### Search for tasks
139
+
140
+ ```typescript
141
+ {
142
+ "tool": "clickup_search_tasks",
143
+ "arguments": {
144
+ "team_id": "123456",
145
+ "query": "authentication",
146
+ "statuses": ["in progress", "to do"]
147
+ }
148
+ }
149
+ ```
150
+
151
+ ## Development
152
+
153
+ ### Build
154
+
155
+ ```bash
156
+ npm run build
157
+ ```
158
+
159
+ ### Clean
160
+
161
+ ```bash
162
+ npm run clean
163
+ ```
164
+
165
+ ## License
166
+
167
+ MIT
168
+
169
+ ## Links
170
+
171
+ - [ClickUp API Documentation](https://clickup.com/api)
172
+ - [MCP Protocol](https://modelcontextprotocol.io)
173
+ - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Constants and enumerations for ClickUp MCP server.
3
+ */
4
+ export declare const API_BASE_URL = "https://api.clickup.com/api/v2";
5
+ export declare const CHARACTER_LIMIT = 100000;
6
+ export declare const DEFAULT_TIMEOUT = 30000;
7
+ /**
8
+ * Response format options for tool outputs
9
+ */
10
+ export declare enum ResponseFormat {
11
+ MARKDOWN = "markdown",
12
+ JSON = "json"
13
+ }
14
+ /**
15
+ * Response mode options for controlling data verbosity
16
+ */
17
+ export declare enum ResponseMode {
18
+ FULL = "full",// Complete task details with all fields
19
+ COMPACT = "compact",// Essential fields only (id, name, status, assignees)
20
+ SUMMARY = "summary"
21
+ }
22
+ /**
23
+ * ClickUp task priority levels
24
+ */
25
+ export declare enum Priority {
26
+ URGENT = 1,
27
+ HIGH = 2,
28
+ NORMAL = 3,
29
+ LOW = 4
30
+ }
31
+ /**
32
+ * Standard pagination defaults
33
+ */
34
+ export declare const DEFAULT_LIMIT = 20;
35
+ export declare const MAX_LIMIT = 100;
36
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,mCAAmC,CAAC;AAC7D,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC;;GAEG;AACH,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,IAAI,SAAS,CAAS,wCAAwC;IAC9D,OAAO,YAAY,CAAG,sDAAsD;IAC5E,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,QAAQ;IAClB,MAAM,IAAI;IACV,IAAI,IAAI;IACR,MAAM,IAAI;IACV,GAAG,IAAI;CACR;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,SAAS,MAAM,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Constants and enumerations for ClickUp MCP server.
3
+ */
4
+ export const API_BASE_URL = "https://api.clickup.com/api/v2";
5
+ export const CHARACTER_LIMIT = 100000;
6
+ export const DEFAULT_TIMEOUT = 30000; // 30 seconds
7
+ /**
8
+ * Response format options for tool outputs
9
+ */
10
+ export var ResponseFormat;
11
+ (function (ResponseFormat) {
12
+ ResponseFormat["MARKDOWN"] = "markdown";
13
+ ResponseFormat["JSON"] = "json";
14
+ })(ResponseFormat || (ResponseFormat = {}));
15
+ /**
16
+ * Response mode options for controlling data verbosity
17
+ */
18
+ export var ResponseMode;
19
+ (function (ResponseMode) {
20
+ ResponseMode["FULL"] = "full";
21
+ ResponseMode["COMPACT"] = "compact";
22
+ ResponseMode["SUMMARY"] = "summary"; // Statistical overview without individual task details
23
+ })(ResponseMode || (ResponseMode = {}));
24
+ /**
25
+ * ClickUp task priority levels
26
+ */
27
+ export var Priority;
28
+ (function (Priority) {
29
+ Priority[Priority["URGENT"] = 1] = "URGENT";
30
+ Priority[Priority["HIGH"] = 2] = "HIGH";
31
+ Priority[Priority["NORMAL"] = 3] = "NORMAL";
32
+ Priority[Priority["LOW"] = 4] = "LOW";
33
+ })(Priority || (Priority = {}));
34
+ /**
35
+ * Standard pagination defaults
36
+ */
37
+ export const DEFAULT_LIMIT = 20;
38
+ export const MAX_LIMIT = 100;
39
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,aAAa;AAEnD;;GAEG;AACH,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,mCAAmB,CAAA,CAAG,uDAAuD;AAC/E,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2CAAU,CAAA;IACV,uCAAQ,CAAA;IACR,2CAAU,CAAA;IACV,qCAAO,CAAA;AACT,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * ClickUp MCP Server
4
+ *
5
+ * A Model Context Protocol server that provides comprehensive integration with the ClickUp API.
6
+ * Enables LLMs to manage tasks, projects, teams, and workflows programmatically.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}