@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 +22 -0
- package/README.md +173 -0
- package/dist/constants.d.ts +36 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +39 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1352 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +258 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +75 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +343 -0
- package/dist/utils.js.map +1 -0
- package/package.json +54 -0
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|