@taazkareem/clickup-mcp-server 0.2.4 → 0.2.6
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/Dockerfile.smithery +36 -0
- package/LICENSE +6 -0
- package/README.md +26 -23
- package/build/index.js +7 -7
- package/package.json +4 -2
- package/smithery.yaml +23 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Use a Node.js base image
|
|
2
|
+
FROM node:18-alpine AS builder
|
|
3
|
+
|
|
4
|
+
# Set the working directory
|
|
5
|
+
WORKDIR /app
|
|
6
|
+
|
|
7
|
+
# Copy package files and TypeScript config
|
|
8
|
+
COPY package.json package-lock.json tsconfig.json ./
|
|
9
|
+
|
|
10
|
+
# Copy the source files
|
|
11
|
+
COPY src/ ./src/
|
|
12
|
+
|
|
13
|
+
# Install dependencies and build
|
|
14
|
+
RUN npm install
|
|
15
|
+
RUN npm run build
|
|
16
|
+
|
|
17
|
+
# Use a smaller image for the runtime
|
|
18
|
+
FROM node:18-alpine AS runtime
|
|
19
|
+
|
|
20
|
+
# Set the working directory
|
|
21
|
+
WORKDIR /app
|
|
22
|
+
|
|
23
|
+
# Copy the build output and node_modules from the builder stage
|
|
24
|
+
COPY --from=builder /app/build ./build
|
|
25
|
+
COPY --from=builder /app/node_modules ./node_modules
|
|
26
|
+
COPY --from=builder /app/package.json ./
|
|
27
|
+
|
|
28
|
+
# Set environment variables (these will be overridden by Smithery)
|
|
29
|
+
ENV CLICKUP_API_KEY=placeholder
|
|
30
|
+
ENV CLICKUP_TEAM_ID=placeholder
|
|
31
|
+
|
|
32
|
+
# Expose the port if needed
|
|
33
|
+
EXPOSE 8080
|
|
34
|
+
|
|
35
|
+
# Define the command to run the application
|
|
36
|
+
CMD ["node", "build/index.js"]
|
package/LICENSE
CHANGED
|
@@ -19,3 +19,9 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
Disclaimer: This software makes use of third-party APIs and may reference trademarks
|
|
24
|
+
or brands owned by third parties. The use of such APIs or references does not imply
|
|
25
|
+
any affiliation with or endorsement by the respective companies. All trademarks and
|
|
26
|
+
brand names are the property of their respective owners. This project is an independent
|
|
27
|
+
work and is not officially associated with or sponsored by any third-party company mentioned.
|
package/README.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
<img src="https://clickup.com/assets/brand/logo-v3-clickup-dark.svg" alt="ClickUp" height="40" style="vertical-align: middle; margin-top: -4px;">
|
|
2
|
+
|
|
3
|
+
# MCP Server
|
|
2
4
|
|
|
3
5
|
A Model Context Protocol (MCP) server for integrating ClickUp tasks with AI applications. This server allows AI agents to interact with ClickUp tasks, spaces, lists, and folders through a standardized protocol.
|
|
4
6
|
|
|
@@ -22,30 +24,31 @@ npx -y @taazkareem/clickup-mcp-server \
|
|
|
22
24
|
## Features
|
|
23
25
|
|
|
24
26
|
- 🎯 **Task Management**
|
|
25
|
-
- Create, update, and delete tasks
|
|
26
|
-
- Move and duplicate tasks between lists, spaces, and folders
|
|
27
|
-
-
|
|
28
|
-
-
|
|
27
|
+
- Create, update, and delete individual tasks
|
|
28
|
+
- Move and duplicate tasks between lists, spaces, and folders
|
|
29
|
+
- Create multiple tasks in bulk
|
|
30
|
+
- View and modify task details and properties
|
|
29
31
|
|
|
30
32
|
- 📂 **Workspace Organization**
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
- 🤖 **AI
|
|
45
|
-
- Task
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
33
|
+
- Navigate complete workspace hierarchy (spaces, folders, lists)
|
|
34
|
+
- Tree structure with clear relationships
|
|
35
|
+
- Create and manage lists and folders
|
|
36
|
+
- Efficient path-based navigation
|
|
37
|
+
|
|
38
|
+
- 🔄 **Integration Features**
|
|
39
|
+
- Name or ID-based item lookup
|
|
40
|
+
- Case-insensitive name matching
|
|
41
|
+
- Markdown formatting support
|
|
42
|
+
- Built-in API rate limiting
|
|
43
|
+
- Comprehensive error handling
|
|
44
|
+
- Clear parameter validation
|
|
45
|
+
|
|
46
|
+
- 🤖 **AI-Powered Analysis**
|
|
47
|
+
- Task status summaries and overviews
|
|
48
|
+
- Priority analysis and recommendations
|
|
49
|
+
- Structured description generation
|
|
50
|
+
- Task relationship mapping
|
|
51
|
+
- Workspace organization insights
|
|
49
52
|
|
|
50
53
|
## Available Tools
|
|
51
54
|
|
package/build/index.js
CHANGED
|
@@ -57,7 +57,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
name: "create_task",
|
|
60
|
-
description: "Create a new task in ClickUp. Supports direct name-based lookup for lists - no need to know the list ID.
|
|
60
|
+
description: "Create a new task in ClickUp. Supports direct name-based lookup for lists - no need to know the list ID. Status will use ClickUp defaults if not specified. If the specified list doesn't exist, you can create it using create_list or create_list_in_folder.",
|
|
61
61
|
inputSchema: {
|
|
62
62
|
type: "object",
|
|
63
63
|
properties: {
|
|
@@ -71,7 +71,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
71
71
|
},
|
|
72
72
|
name: {
|
|
73
73
|
type: "string",
|
|
74
|
-
description: "Name of the task"
|
|
74
|
+
description: "Name of the task. Put a relevant emoji followed by a blank space before the name."
|
|
75
75
|
},
|
|
76
76
|
description: {
|
|
77
77
|
type: "string",
|
|
@@ -87,7 +87,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
87
87
|
},
|
|
88
88
|
priority: {
|
|
89
89
|
type: "number",
|
|
90
|
-
description: "Priority of the task (1-4), 1 is highest priority, 4 is lowest priority.
|
|
90
|
+
description: "Priority of the task (1-4), 1 is urgent/highest priority, 4 is lowest priority. Only set this if priority is explicitly mentioned in the user's request."
|
|
91
91
|
},
|
|
92
92
|
dueDate: {
|
|
93
93
|
type: "string",
|
|
@@ -99,7 +99,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
name: "create_bulk_tasks",
|
|
102
|
-
description: "Create multiple tasks in a ClickUp list. Supports direct name-based lookup for lists - no need to know the list ID.
|
|
102
|
+
description: "Create multiple tasks in a ClickUp list. Supports direct name-based lookup for lists - no need to know the list ID. Tasks will use ClickUp default status if not specified. If the specified list doesn't exist, you can create it using create_list or create_list_in_folder.",
|
|
103
103
|
inputSchema: {
|
|
104
104
|
type: "object",
|
|
105
105
|
properties: {
|
|
@@ -135,7 +135,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
135
135
|
},
|
|
136
136
|
priority: {
|
|
137
137
|
type: "number",
|
|
138
|
-
description: "Priority level (1-4), 1 is highest priority, 4 is lowest priority"
|
|
138
|
+
description: "Priority level (1-4), 1 is urgent/highest priority, 4 is lowest priority. Only set this if priority is explicitly mentioned in the user's request."
|
|
139
139
|
},
|
|
140
140
|
dueDate: {
|
|
141
141
|
type: "string",
|
|
@@ -184,7 +184,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
184
184
|
},
|
|
185
185
|
priority: {
|
|
186
186
|
type: "number",
|
|
187
|
-
description: "Priority of the list (1-4)"
|
|
187
|
+
description: "Priority of the list (1-4). Only set this if priority is explicitly mentioned in the user's request."
|
|
188
188
|
},
|
|
189
189
|
assignee: {
|
|
190
190
|
type: "number",
|
|
@@ -354,7 +354,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
354
354
|
},
|
|
355
355
|
priority: {
|
|
356
356
|
type: "number",
|
|
357
|
-
description: "New priority of the task (1-4)"
|
|
357
|
+
description: "New priority of the task (1-4). Only set this if priority is explicitly mentioned in the user's request."
|
|
358
358
|
},
|
|
359
359
|
dueDate: {
|
|
360
360
|
type: "string",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taazkareem/clickup-mcp-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "ClickUp MCP Server - Integrate ClickUp tasks with AI through Model Context Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"build",
|
|
12
12
|
"README.md",
|
|
13
|
-
"LICENSE"
|
|
13
|
+
"LICENSE",
|
|
14
|
+
"Dockerfile.smithery",
|
|
15
|
+
"smithery.yaml"
|
|
14
16
|
],
|
|
15
17
|
"scripts": {
|
|
16
18
|
"build": "tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"",
|
package/smithery.yaml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml
|
|
2
|
+
|
|
3
|
+
dockerfile: Dockerfile.smithery
|
|
4
|
+
|
|
5
|
+
startCommand:
|
|
6
|
+
type: stdio
|
|
7
|
+
configSchema:
|
|
8
|
+
# JSON Schema defining the configuration options for the MCP.
|
|
9
|
+
type: object
|
|
10
|
+
required:
|
|
11
|
+
- clickupApiKey
|
|
12
|
+
- clickupTeamId
|
|
13
|
+
properties:
|
|
14
|
+
clickupApiKey:
|
|
15
|
+
type: string
|
|
16
|
+
description: Your ClickUp API key.
|
|
17
|
+
clickupTeamId:
|
|
18
|
+
type: string
|
|
19
|
+
description: Your ClickUp Team ID.
|
|
20
|
+
commandFunction:
|
|
21
|
+
# A function that produces the CLI command to start the MCP on stdio.
|
|
22
|
+
|-
|
|
23
|
+
(config) => ({ command: 'node', args: ['build/index.js'], env: { CLICKUP_API_KEY: config.clickupApiKey, CLICKUP_TEAM_ID: config.clickupTeamId } })
|