@chykalophia/clickup-mcp-server 3.2.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.
Files changed (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +467 -0
  3. package/bin/clickup-mcp-server-ai.js +9 -0
  4. package/bin/clickup-mcp-server-basic.js +9 -0
  5. package/bin/clickup-mcp-server-efficiency.js +9 -0
  6. package/bin/clickup-mcp-server-enhanced.js +9 -0
  7. package/build/app.d.ts +1 -0
  8. package/build/app.js +2 -0
  9. package/build/app.js.map +1 -0
  10. package/build/clickup-client/attachments-enhanced.d.ts +128 -0
  11. package/build/clickup-client/attachments-enhanced.js +212 -0
  12. package/build/clickup-client/attachments-enhanced.js.map +1 -0
  13. package/build/clickup-client/auth.d.ts +254 -0
  14. package/build/clickup-client/auth.js +105 -0
  15. package/build/clickup-client/auth.js.map +1 -0
  16. package/build/clickup-client/chat-enhanced.d.ts +141 -0
  17. package/build/clickup-client/chat-enhanced.js +196 -0
  18. package/build/clickup-client/chat-enhanced.js.map +1 -0
  19. package/build/clickup-client/checklists.d.ts +87 -0
  20. package/build/clickup-client/checklists.js +63 -0
  21. package/build/clickup-client/checklists.js.map +1 -0
  22. package/build/clickup-client/comments-enhanced.d.ts +176 -0
  23. package/build/clickup-client/comments-enhanced.js +230 -0
  24. package/build/clickup-client/comments-enhanced.js.map +1 -0
  25. package/build/clickup-client/comments.d.ts +173 -0
  26. package/build/clickup-client/comments.js +312 -0
  27. package/build/clickup-client/comments.js.map +1 -0
  28. package/build/clickup-client/custom-fields-enhanced.d.ts +286 -0
  29. package/build/clickup-client/custom-fields-enhanced.js +416 -0
  30. package/build/clickup-client/custom-fields-enhanced.js.map +1 -0
  31. package/build/clickup-client/dependencies-enhanced.d.ts +144 -0
  32. package/build/clickup-client/dependencies-enhanced.js +142 -0
  33. package/build/clickup-client/dependencies-enhanced.js.map +1 -0
  34. package/build/clickup-client/docs-enhanced.d.ts +176 -0
  35. package/build/clickup-client/docs-enhanced.js +374 -0
  36. package/build/clickup-client/docs-enhanced.js.map +1 -0
  37. package/build/clickup-client/docs.d.ts +84 -0
  38. package/build/clickup-client/docs.js +156 -0
  39. package/build/clickup-client/docs.js.map +1 -0
  40. package/build/clickup-client/folders.d.ts +62 -0
  41. package/build/clickup-client/folders.js +53 -0
  42. package/build/clickup-client/folders.js.map +1 -0
  43. package/build/clickup-client/goals-enhanced.d.ts +163 -0
  44. package/build/clickup-client/goals-enhanced.js +309 -0
  45. package/build/clickup-client/goals-enhanced.js.map +1 -0
  46. package/build/clickup-client/index.d.ts +16 -0
  47. package/build/clickup-client/index.js +61 -0
  48. package/build/clickup-client/index.js.map +1 -0
  49. package/build/clickup-client/lists.d.ts +105 -0
  50. package/build/clickup-client/lists.js +108 -0
  51. package/build/clickup-client/lists.js.map +1 -0
  52. package/build/clickup-client/secure-client.d.ts +88 -0
  53. package/build/clickup-client/secure-client.js +275 -0
  54. package/build/clickup-client/secure-client.js.map +1 -0
  55. package/build/clickup-client/spaces.d.ts +58 -0
  56. package/build/clickup-client/spaces.js +28 -0
  57. package/build/clickup-client/spaces.js.map +1 -0
  58. package/build/clickup-client/tasks.d.ts +161 -0
  59. package/build/clickup-client/tasks.js +99 -0
  60. package/build/clickup-client/tasks.js.map +1 -0
  61. package/build/clickup-client/time-tracking-enhanced.d.ts +153 -0
  62. package/build/clickup-client/time-tracking-enhanced.js +292 -0
  63. package/build/clickup-client/time-tracking-enhanced.js.map +1 -0
  64. package/build/clickup-client/views-enhanced.d.ts +149 -0
  65. package/build/clickup-client/views-enhanced.js +210 -0
  66. package/build/clickup-client/views-enhanced.js.map +1 -0
  67. package/build/clickup-client/webhooks-enhanced.d.ts +119 -0
  68. package/build/clickup-client/webhooks-enhanced.js +169 -0
  69. package/build/clickup-client/webhooks-enhanced.js.map +1 -0
  70. package/build/controllers/lists.controller.d.ts +1 -0
  71. package/build/controllers/lists.controller.js +2 -0
  72. package/build/controllers/lists.controller.js.map +1 -0
  73. package/build/index-efficiency-simple.d.ts +2 -0
  74. package/build/index-efficiency-simple.js +379 -0
  75. package/build/index-efficiency-simple.js.map +1 -0
  76. package/build/index-enhanced-efficiency.d.ts +2 -0
  77. package/build/index-enhanced-efficiency.js +275 -0
  78. package/build/index-enhanced-efficiency.js.map +1 -0
  79. package/build/index-enhanced.d.ts +2 -0
  80. package/build/index-enhanced.js +74 -0
  81. package/build/index-enhanced.js.map +1 -0
  82. package/build/index.d.ts +2 -0
  83. package/build/index.js +77 -0
  84. package/build/index.js.map +1 -0
  85. package/build/resources/checklist-resources.d.ts +2 -0
  86. package/build/resources/checklist-resources.js +102 -0
  87. package/build/resources/checklist-resources.js.map +1 -0
  88. package/build/resources/comment-resources.d.ts +2 -0
  89. package/build/resources/comment-resources.js +152 -0
  90. package/build/resources/comment-resources.js.map +1 -0
  91. package/build/resources/doc-resources.d.ts +2 -0
  92. package/build/resources/doc-resources.js +77 -0
  93. package/build/resources/doc-resources.js.map +1 -0
  94. package/build/resources/folder-resources.d.ts +2 -0
  95. package/build/resources/folder-resources.js +160 -0
  96. package/build/resources/folder-resources.js.map +1 -0
  97. package/build/resources/list-resources.d.ts +2 -0
  98. package/build/resources/list-resources.js +104 -0
  99. package/build/resources/list-resources.js.map +1 -0
  100. package/build/resources/space-resources.d.ts +2 -0
  101. package/build/resources/space-resources.js +104 -0
  102. package/build/resources/space-resources.js.map +1 -0
  103. package/build/resources/task-resources.d.ts +2 -0
  104. package/build/resources/task-resources.js +57 -0
  105. package/build/resources/task-resources.js.map +1 -0
  106. package/build/routes/lists.routes.d.ts +1 -0
  107. package/build/routes/lists.routes.js +2 -0
  108. package/build/routes/lists.routes.js.map +1 -0
  109. package/build/schemas/attachments-schemas.d.ts +201 -0
  110. package/build/schemas/attachments-schemas.js +250 -0
  111. package/build/schemas/attachments-schemas.js.map +1 -0
  112. package/build/schemas/chat-schemas.d.ts +478 -0
  113. package/build/schemas/chat-schemas.js +173 -0
  114. package/build/schemas/chat-schemas.js.map +1 -0
  115. package/build/schemas/custom-field-schemas.d.ts +1617 -0
  116. package/build/schemas/custom-field-schemas.js +384 -0
  117. package/build/schemas/custom-field-schemas.js.map +1 -0
  118. package/build/schemas/dependencies-schemas.d.ts +274 -0
  119. package/build/schemas/dependencies-schemas.js +176 -0
  120. package/build/schemas/dependencies-schemas.js.map +1 -0
  121. package/build/schemas/document-schemas.d.ts +433 -0
  122. package/build/schemas/document-schemas.js +168 -0
  123. package/build/schemas/document-schemas.js.map +1 -0
  124. package/build/schemas/goals-schemas.d.ts +961 -0
  125. package/build/schemas/goals-schemas.js +293 -0
  126. package/build/schemas/goals-schemas.js.map +1 -0
  127. package/build/schemas/time-tracking-schemas.d.ts +741 -0
  128. package/build/schemas/time-tracking-schemas.js +234 -0
  129. package/build/schemas/time-tracking-schemas.js.map +1 -0
  130. package/build/schemas/views-schemas.d.ts +1168 -0
  131. package/build/schemas/views-schemas.js +221 -0
  132. package/build/schemas/views-schemas.js.map +1 -0
  133. package/build/schemas/webhook-schemas.d.ts +1127 -0
  134. package/build/schemas/webhook-schemas.js +137 -0
  135. package/build/schemas/webhook-schemas.js.map +1 -0
  136. package/build/services/lists.service.d.ts +1 -0
  137. package/build/services/lists.service.js +2 -0
  138. package/build/services/lists.service.js.map +1 -0
  139. package/build/tools/attachments-tools-setup.d.ts +2 -0
  140. package/build/tools/attachments-tools-setup.js +387 -0
  141. package/build/tools/attachments-tools-setup.js.map +1 -0
  142. package/build/tools/chat-tools-enhanced.d.ts +5 -0
  143. package/build/tools/chat-tools-enhanced.js +396 -0
  144. package/build/tools/chat-tools-enhanced.js.map +1 -0
  145. package/build/tools/chat-tools.d.ts +2 -0
  146. package/build/tools/chat-tools.js +614 -0
  147. package/build/tools/chat-tools.js.map +1 -0
  148. package/build/tools/checklist-tools.d.ts +2 -0
  149. package/build/tools/checklist-tools.js +139 -0
  150. package/build/tools/checklist-tools.js.map +1 -0
  151. package/build/tools/comment-tools.d.ts +2 -0
  152. package/build/tools/comment-tools.js +295 -0
  153. package/build/tools/comment-tools.js.map +1 -0
  154. package/build/tools/custom-field-tools.d.ts +2 -0
  155. package/build/tools/custom-field-tools.js +578 -0
  156. package/build/tools/custom-field-tools.js.map +1 -0
  157. package/build/tools/dependencies-tools-setup.d.ts +2 -0
  158. package/build/tools/dependencies-tools-setup.js +319 -0
  159. package/build/tools/dependencies-tools-setup.js.map +1 -0
  160. package/build/tools/doc-tools-enhanced.d.ts +2 -0
  161. package/build/tools/doc-tools-enhanced.js +417 -0
  162. package/build/tools/doc-tools-enhanced.js.map +1 -0
  163. package/build/tools/doc-tools.d.ts +2 -0
  164. package/build/tools/doc-tools.js +109 -0
  165. package/build/tools/doc-tools.js.map +1 -0
  166. package/build/tools/goals-tools.d.ts +2 -0
  167. package/build/tools/goals-tools.js +422 -0
  168. package/build/tools/goals-tools.js.map +1 -0
  169. package/build/tools/helper-tools.d.ts +2 -0
  170. package/build/tools/helper-tools.js +363 -0
  171. package/build/tools/helper-tools.js.map +1 -0
  172. package/build/tools/space-tools.d.ts +2 -0
  173. package/build/tools/space-tools.js +45 -0
  174. package/build/tools/space-tools.js.map +1 -0
  175. package/build/tools/task-tools.d.ts +2 -0
  176. package/build/tools/task-tools.js +415 -0
  177. package/build/tools/task-tools.js.map +1 -0
  178. package/build/tools/time-tracking-tools.d.ts +2 -0
  179. package/build/tools/time-tracking-tools.js +329 -0
  180. package/build/tools/time-tracking-tools.js.map +1 -0
  181. package/build/tools/views-tools-setup.d.ts +2 -0
  182. package/build/tools/views-tools-setup.js +358 -0
  183. package/build/tools/views-tools-setup.js.map +1 -0
  184. package/build/tools/webhook-tools-setup.d.ts +2 -0
  185. package/build/tools/webhook-tools-setup.js +304 -0
  186. package/build/tools/webhook-tools-setup.js.map +1 -0
  187. package/build/tools/webhook-tools.d.ts +4 -0
  188. package/build/tools/webhook-tools.js +345 -0
  189. package/build/tools/webhook-tools.js.map +1 -0
  190. package/build/utils/clickup-comment-formatter.d.ts +124 -0
  191. package/build/utils/clickup-comment-formatter.js +504 -0
  192. package/build/utils/clickup-comment-formatter.js.map +1 -0
  193. package/build/utils/context-aware-suggestions.d.ts +45 -0
  194. package/build/utils/context-aware-suggestions.js +360 -0
  195. package/build/utils/context-aware-suggestions.js.map +1 -0
  196. package/build/utils/error-handling.d.ts +140 -0
  197. package/build/utils/error-handling.js +392 -0
  198. package/build/utils/error-handling.js.map +1 -0
  199. package/build/utils/markdown-styling.d.ts +40 -0
  200. package/build/utils/markdown-styling.js +344 -0
  201. package/build/utils/markdown-styling.js.map +1 -0
  202. package/build/utils/markdown.d.ts +54 -0
  203. package/build/utils/markdown.js +243 -0
  204. package/build/utils/markdown.js.map +1 -0
  205. package/build/utils/security.d.ts +79 -0
  206. package/build/utils/security.js +303 -0
  207. package/build/utils/security.js.map +1 -0
  208. package/build/utils/tool-efficiency.d.ts +59 -0
  209. package/build/utils/tool-efficiency.js +247 -0
  210. package/build/utils/tool-efficiency.js.map +1 -0
  211. package/package.json +130 -0
@@ -0,0 +1,417 @@
1
+ import { z } from 'zod';
2
+ import { createClickUpClient } from '../clickup-client/index.js';
3
+ import { createEnhancedDocsClient } from '../clickup-client/docs-enhanced.js';
4
+ // Create clients
5
+ const clickUpClient = createClickUpClient();
6
+ const enhancedDocsClient = createEnhancedDocsClient(clickUpClient);
7
+ // const authClient = createAuthClient(clickUpClient);
8
+ export function setupEnhancedDocTools(server) {
9
+ // ========================================
10
+ // EXISTING READ OPERATIONS (Enhanced)
11
+ // ========================================
12
+ server.tool('get_doc_content', 'Get the content of a specific ClickUp doc. Returns combined content from all pages in the doc.', {
13
+ workspace_id: z.string().min(1).describe('The ID of the workspace containing the doc'),
14
+ doc_id: z.string().min(1).describe('The ID of the doc to get'),
15
+ content_format: z.enum(['markdown', 'html', 'text/md', 'text/plain', 'text/html']).optional().default('text/md').describe('The format to return the content in')
16
+ }, async ({ doc_id, workspace_id, content_format }) => {
17
+ try {
18
+ const pages = await enhancedDocsClient.getDocPages(workspace_id, doc_id, content_format);
19
+ let combinedContent = '';
20
+ if (Array.isArray(pages)) {
21
+ for (const page of pages) {
22
+ if (page.content) {
23
+ combinedContent += `# ${page.name}\n\n${page.content}\n\n`;
24
+ }
25
+ }
26
+ }
27
+ return {
28
+ content: [{ type: 'text', text: combinedContent || 'No content found in this doc.' }]
29
+ };
30
+ }
31
+ catch (error) {
32
+ console.error('Error getting doc content:', error);
33
+ return {
34
+ content: [{ type: 'text', text: `Error getting doc content: ${error.message}` }],
35
+ isError: true
36
+ };
37
+ }
38
+ });
39
+ server.tool('search_docs', 'Search for docs in a ClickUp workspace using a query string. Returns matching docs with their metadata.', {
40
+ workspace_id: z.string().min(1).describe('The ID of the workspace to search in'),
41
+ query: z.string().min(1).describe('The search query'),
42
+ cursor: z.string().optional().describe('Cursor for pagination')
43
+ }, async ({ workspace_id, query, cursor }) => {
44
+ try {
45
+ const result = await enhancedDocsClient.searchDocs(workspace_id, { query, cursor });
46
+ return {
47
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }]
48
+ };
49
+ }
50
+ catch (error) {
51
+ console.error('Error searching docs:', error);
52
+ return {
53
+ content: [{ type: 'text', text: `Error searching docs: ${error.message}` }],
54
+ isError: true
55
+ };
56
+ }
57
+ });
58
+ server.tool('get_docs_from_workspace', 'Get all docs from a ClickUp workspace. Supports pagination and filtering for deleted/archived docs.', {
59
+ workspace_id: z.string().min(1).describe('The ID of the workspace to get docs from'),
60
+ cursor: z.string().optional().describe('Cursor for pagination'),
61
+ deleted: z.boolean().optional().default(false).describe('Whether to include deleted docs'),
62
+ archived: z.boolean().optional().default(false).describe('Whether to include archived docs'),
63
+ limit: z.number().min(1).max(100).optional().default(25).describe('The maximum number of docs to return')
64
+ }, async ({ workspace_id, cursor, deleted, archived, limit }) => {
65
+ try {
66
+ const result = await enhancedDocsClient.getDocsFromWorkspace(workspace_id, {
67
+ cursor,
68
+ deleted,
69
+ archived,
70
+ limit
71
+ });
72
+ return {
73
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }]
74
+ };
75
+ }
76
+ catch (error) {
77
+ console.error('Error getting docs from workspace:', error);
78
+ return {
79
+ content: [{ type: 'text', text: `Error getting docs from workspace: ${error.message}` }],
80
+ isError: true
81
+ };
82
+ }
83
+ });
84
+ server.tool('get_doc_pages', 'Get the pages of a specific ClickUp doc. Returns page content in the requested format (markdown or plain text).', {
85
+ workspace_id: z.string().min(1).describe('The ID of the workspace containing the doc'),
86
+ doc_id: z.string().min(1).describe('The ID of the doc to get pages from'),
87
+ content_format: z.enum(['markdown', 'html', 'text/md', 'text/plain', 'text/html']).optional().default('text/md').describe('The format to return the content in')
88
+ }, async ({ doc_id, workspace_id, content_format }) => {
89
+ try {
90
+ const pages = await enhancedDocsClient.getDocPages(workspace_id, doc_id, content_format);
91
+ return {
92
+ content: [{ type: 'text', text: JSON.stringify(pages, null, 2) }]
93
+ };
94
+ }
95
+ catch (error) {
96
+ console.error('Error getting doc pages:', error);
97
+ return {
98
+ content: [{ type: 'text', text: `Error getting doc pages: ${error.message}` }],
99
+ isError: true
100
+ };
101
+ }
102
+ });
103
+ // ========================================
104
+ // NEW: DOCUMENT CRUD OPERATIONS
105
+ // ========================================
106
+ server.tool('create_doc', 'Create a new document in ClickUp. Can be created in a workspace, space, or folder. Supports template-based creation.', {
107
+ workspace_id: z.string().optional().describe('The ID of the workspace to create the document in'),
108
+ space_id: z.string().optional().describe('The ID of the space to create the document in'),
109
+ folder_id: z.string().optional().describe('The ID of the folder to create the document in'),
110
+ name: z.string().min(1).max(255).describe('The name of the document'),
111
+ content: z.string().optional().describe('Initial content for the document (markdown or HTML)'),
112
+ public: z.boolean().optional().default(false).describe('Whether the document should be publicly accessible'),
113
+ template_id: z.string().optional().describe('ID of template to create document from')
114
+ }, async ({ workspace_id, space_id, folder_id, name, content, public: isPublic, template_id }) => {
115
+ try {
116
+ // Validate that at least one parent is specified
117
+ if (!workspace_id && !space_id && !folder_id) {
118
+ return {
119
+ content: [{ type: 'text', text: 'Error: Must specify workspace_id, space_id, or folder_id' }],
120
+ isError: true
121
+ };
122
+ }
123
+ const doc = await enhancedDocsClient.createDoc({
124
+ workspace_id,
125
+ space_id,
126
+ folder_id,
127
+ name,
128
+ content,
129
+ public: isPublic,
130
+ template_id
131
+ });
132
+ return {
133
+ content: [{
134
+ type: 'text',
135
+ text: `Document created successfully!\n\n${JSON.stringify(doc, null, 2)}`
136
+ }]
137
+ };
138
+ }
139
+ catch (error) {
140
+ console.error('Error creating document:', error);
141
+ return {
142
+ content: [{ type: 'text', text: `Error creating document: ${error.message}` }],
143
+ isError: true
144
+ };
145
+ }
146
+ });
147
+ server.tool('update_doc', 'Update an existing ClickUp document. Can update name, content, and sharing settings.', {
148
+ doc_id: z.string().min(1).describe('The ID of the document to update'),
149
+ name: z.string().min(1).max(255).optional().describe('New name for the document'),
150
+ content: z.string().optional().describe('New content for the document (markdown or HTML)'),
151
+ public: z.boolean().optional().describe('Update public sharing setting')
152
+ }, async ({ doc_id, name, content, public: isPublic }) => {
153
+ try {
154
+ // Validate that at least one field is being updated
155
+ if (name === undefined && content === undefined && isPublic === undefined) {
156
+ return {
157
+ content: [{ type: 'text', text: 'Error: Must specify at least one field to update (name, content, or public)' }],
158
+ isError: true
159
+ };
160
+ }
161
+ const updatedDoc = await enhancedDocsClient.updateDoc(doc_id, {
162
+ name,
163
+ content,
164
+ public: isPublic
165
+ });
166
+ return {
167
+ content: [{
168
+ type: 'text',
169
+ text: `Document updated successfully!\n\n${JSON.stringify(updatedDoc, null, 2)}`
170
+ }]
171
+ };
172
+ }
173
+ catch (error) {
174
+ console.error('Error updating document:', error);
175
+ return {
176
+ content: [{ type: 'text', text: `Error updating document: ${error.message}` }],
177
+ isError: true
178
+ };
179
+ }
180
+ });
181
+ server.tool('delete_doc', 'Delete a ClickUp document. This action cannot be undone.', {
182
+ doc_id: z.string().min(1).describe('The ID of the document to delete')
183
+ }, async ({ doc_id }) => {
184
+ try {
185
+ await enhancedDocsClient.deleteDoc(doc_id);
186
+ return {
187
+ content: [{
188
+ type: 'text',
189
+ text: `Document ${doc_id} deleted successfully.`
190
+ }]
191
+ };
192
+ }
193
+ catch (error) {
194
+ console.error('Error deleting document:', error);
195
+ return {
196
+ content: [{ type: 'text', text: `Error deleting document: ${error.message}` }],
197
+ isError: true
198
+ };
199
+ }
200
+ });
201
+ server.tool('get_doc', 'Get detailed information about a specific ClickUp document including metadata and sharing settings.', {
202
+ doc_id: z.string().min(1).describe('The ID of the document to get')
203
+ }, async ({ doc_id }) => {
204
+ try {
205
+ const doc = await enhancedDocsClient.getDoc(doc_id);
206
+ return {
207
+ content: [{
208
+ type: 'text',
209
+ text: JSON.stringify(doc, null, 2)
210
+ }]
211
+ };
212
+ }
213
+ catch (error) {
214
+ console.error('Error getting document:', error);
215
+ return {
216
+ content: [{ type: 'text', text: `Error getting document: ${error.message}` }],
217
+ isError: true
218
+ };
219
+ }
220
+ });
221
+ // ========================================
222
+ // NEW: DOCUMENT PAGE MANAGEMENT
223
+ // ========================================
224
+ server.tool('create_doc_page', 'Create a new page in a ClickUp document. Supports markdown and HTML content formats.', {
225
+ doc_id: z.string().min(1).describe('The ID of the document to create the page in'),
226
+ name: z.string().min(1).max(255).describe('The name/title of the page'),
227
+ content: z.string().min(1).describe('The content of the page'),
228
+ content_format: z.enum(['markdown', 'html']).optional().default('markdown').describe('The format of the content'),
229
+ parent_page_id: z.string().optional().describe('ID of parent page for nesting'),
230
+ position: z.number().int().min(0).optional().describe('Position of the page in the document')
231
+ }, async ({ doc_id, name, content, content_format, parent_page_id, position }) => {
232
+ try {
233
+ const page = await enhancedDocsClient.createPage(doc_id, {
234
+ name,
235
+ content,
236
+ content_format,
237
+ parent_page_id,
238
+ position
239
+ });
240
+ return {
241
+ content: [{
242
+ type: 'text',
243
+ text: `Page created successfully!\n\n${JSON.stringify(page, null, 2)}`
244
+ }]
245
+ };
246
+ }
247
+ catch (error) {
248
+ console.error('Error creating page:', error);
249
+ return {
250
+ content: [{ type: 'text', text: `Error creating page: ${error.message}` }],
251
+ isError: true
252
+ };
253
+ }
254
+ });
255
+ server.tool('update_doc_page', 'Update an existing page in a ClickUp document. Can update name, content, format, and position.', {
256
+ doc_id: z.string().min(1).describe('The ID of the document containing the page'),
257
+ page_id: z.string().min(1).describe('The ID of the page to update'),
258
+ name: z.string().min(1).max(255).optional().describe('New name/title for the page'),
259
+ content: z.string().optional().describe('New content for the page'),
260
+ content_format: z.enum(['markdown', 'html']).optional().describe('New format for the content'),
261
+ position: z.number().int().min(0).optional().describe('New position of the page in the document')
262
+ }, async ({ doc_id, page_id, name, content, content_format, position }) => {
263
+ try {
264
+ // Validate that at least one field is being updated
265
+ if (name === undefined && content === undefined && content_format === undefined && position === undefined) {
266
+ return {
267
+ content: [{ type: 'text', text: 'Error: Must specify at least one field to update (name, content, content_format, or position)' }],
268
+ isError: true
269
+ };
270
+ }
271
+ const updatedPage = await enhancedDocsClient.updatePage(doc_id, page_id, {
272
+ name,
273
+ content,
274
+ content_format,
275
+ position
276
+ });
277
+ return {
278
+ content: [{
279
+ type: 'text',
280
+ text: `Page updated successfully!\n\n${JSON.stringify(updatedPage, null, 2)}`
281
+ }]
282
+ };
283
+ }
284
+ catch (error) {
285
+ console.error('Error updating page:', error);
286
+ return {
287
+ content: [{ type: 'text', text: `Error updating page: ${error.message}` }],
288
+ isError: true
289
+ };
290
+ }
291
+ });
292
+ server.tool('delete_doc_page', 'Delete a page from a ClickUp document. This action cannot be undone.', {
293
+ doc_id: z.string().min(1).describe('The ID of the document containing the page'),
294
+ page_id: z.string().min(1).describe('The ID of the page to delete')
295
+ }, async ({ doc_id, page_id }) => {
296
+ try {
297
+ await enhancedDocsClient.deletePage(doc_id, page_id);
298
+ return {
299
+ content: [{
300
+ type: 'text',
301
+ text: `Page ${page_id} deleted successfully from document ${doc_id}.`
302
+ }]
303
+ };
304
+ }
305
+ catch (error) {
306
+ console.error('Error deleting page:', error);
307
+ return {
308
+ content: [{ type: 'text', text: `Error deleting page: ${error.message}` }],
309
+ isError: true
310
+ };
311
+ }
312
+ });
313
+ // ========================================
314
+ // NEW: DOCUMENT SHARING MANAGEMENT
315
+ // ========================================
316
+ server.tool('get_doc_sharing', 'Get the sharing settings for a ClickUp document.', {
317
+ doc_id: z.string().min(1).describe('The ID of the document to get sharing settings for')
318
+ }, async ({ doc_id }) => {
319
+ try {
320
+ const sharing = await enhancedDocsClient.getDocSharing(doc_id);
321
+ return {
322
+ content: [{
323
+ type: 'text',
324
+ text: JSON.stringify(sharing, null, 2)
325
+ }]
326
+ };
327
+ }
328
+ catch (error) {
329
+ console.error('Error getting document sharing:', error);
330
+ return {
331
+ content: [{ type: 'text', text: `Error getting document sharing: ${error.message}` }],
332
+ isError: true
333
+ };
334
+ }
335
+ });
336
+ server.tool('update_doc_sharing', 'Update the sharing settings for a ClickUp document.', {
337
+ doc_id: z.string().min(1).describe('The ID of the document to update sharing settings for'),
338
+ public: z.boolean().optional().describe('Whether the document should be publicly accessible'),
339
+ public_share_expires_on: z.number().int().positive().optional().describe('Expiration timestamp for public sharing'),
340
+ public_fields: z.array(z.string()).optional().describe('Fields visible in public sharing'),
341
+ team_sharing: z.boolean().optional().describe('Whether to enable team-wide sharing'),
342
+ guest_sharing: z.boolean().optional().describe('Whether to enable guest access')
343
+ }, async ({ doc_id, public: isPublic, public_share_expires_on, public_fields, team_sharing, guest_sharing }) => {
344
+ try {
345
+ // Validate that at least one sharing setting is being updated
346
+ if (isPublic === undefined && public_share_expires_on === undefined &&
347
+ public_fields === undefined && team_sharing === undefined && guest_sharing === undefined) {
348
+ return {
349
+ content: [{ type: 'text', text: 'Error: Must specify at least one sharing setting to update' }],
350
+ isError: true
351
+ };
352
+ }
353
+ const updatedSharing = await enhancedDocsClient.updateDocSharing(doc_id, {
354
+ public: isPublic,
355
+ public_share_expires_on,
356
+ public_fields,
357
+ team_sharing,
358
+ guest_sharing
359
+ });
360
+ return {
361
+ content: [{
362
+ type: 'text',
363
+ text: `Document sharing updated successfully!\n\n${JSON.stringify(updatedSharing, null, 2)}`
364
+ }]
365
+ };
366
+ }
367
+ catch (error) {
368
+ console.error('Error updating document sharing:', error);
369
+ return {
370
+ content: [{ type: 'text', text: `Error updating document sharing: ${error.message}` }],
371
+ isError: true
372
+ };
373
+ }
374
+ });
375
+ // ========================================
376
+ // NEW: TEMPLATE OPERATIONS
377
+ // ========================================
378
+ server.tool('create_doc_from_template', 'Create a new document from a ClickUp template.', {
379
+ template_id: z.string().min(1).describe('The ID of the template to use'),
380
+ workspace_id: z.string().optional().describe('The ID of the workspace to create the document in'),
381
+ space_id: z.string().optional().describe('The ID of the space to create the document in'),
382
+ folder_id: z.string().optional().describe('The ID of the folder to create the document in'),
383
+ name: z.string().min(1).max(255).describe('The name of the new document'),
384
+ template_variables: z.record(z.any()).optional().describe('Variables to substitute in the template')
385
+ }, async ({ template_id, workspace_id, space_id, folder_id, name, template_variables }) => {
386
+ try {
387
+ // Validate that at least one parent is specified
388
+ if (!workspace_id && !space_id && !folder_id) {
389
+ return {
390
+ content: [{ type: 'text', text: 'Error: Must specify workspace_id, space_id, or folder_id' }],
391
+ isError: true
392
+ };
393
+ }
394
+ const doc = await enhancedDocsClient.createDocFromTemplate(template_id, {
395
+ workspace_id,
396
+ space_id,
397
+ folder_id,
398
+ name,
399
+ template_variables
400
+ });
401
+ return {
402
+ content: [{
403
+ type: 'text',
404
+ text: `Document created from template successfully!\n\n${JSON.stringify(doc, null, 2)}`
405
+ }]
406
+ };
407
+ }
408
+ catch (error) {
409
+ console.error('Error creating document from template:', error);
410
+ return {
411
+ content: [{ type: 'text', text: `Error creating document from template: ${error.message}` }],
412
+ isError: true
413
+ };
414
+ }
415
+ });
416
+ }
417
+ //# sourceMappingURL=doc-tools-enhanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-tools-enhanced.js","sourceRoot":"","sources":["../../src/tools/doc-tools-enhanced.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function setupDocTools(server: McpServer): void;
@@ -0,0 +1,109 @@
1
+ import { z } from 'zod';
2
+ import { createClickUpClient } from '../clickup-client/index.js';
3
+ import { createDocsClient } from '../clickup-client/docs.js';
4
+ // Create clients
5
+ const clickUpClient = createClickUpClient();
6
+ const docsClient = createDocsClient(clickUpClient);
7
+ // const authClient = createAuthClient(clickUpClient);
8
+ export function setupDocTools(server) {
9
+ // Register get_doc_content tool
10
+ server.tool('get_doc_content', 'Get the content of a specific ClickUp doc. Returns combined content from all pages in the doc.', {
11
+ doc_id: z.string().describe('The ID of the doc to get'),
12
+ workspace_id: z.string().describe('The ID of the workspace containing the doc')
13
+ }, async ({ doc_id, workspace_id }) => {
14
+ try {
15
+ // Get the pages of the doc
16
+ const pages = await docsClient.getDocPages(workspace_id, doc_id);
17
+ // Combine the content of all pages
18
+ let combinedContent = '';
19
+ if (Array.isArray(pages)) {
20
+ for (const page of pages) {
21
+ if (page.content) {
22
+ combinedContent += `${page.content}\n\n`;
23
+ }
24
+ }
25
+ }
26
+ return {
27
+ content: [{ type: 'text', text: combinedContent || 'No content found in this doc.' }]
28
+ };
29
+ }
30
+ catch (error) {
31
+ console.error('Error getting doc content:', error);
32
+ return {
33
+ content: [{ type: 'text', text: `Error getting doc content: ${error.message}` }],
34
+ isError: true
35
+ };
36
+ }
37
+ });
38
+ // Register search_docs tool
39
+ server.tool('search_docs', 'Search for docs in a ClickUp workspace using a query string. Returns matching docs with their metadata.', {
40
+ workspace_id: z.string().describe('The ID of the workspace to search in'),
41
+ query: z.string().describe('The search query'),
42
+ cursor: z.string().optional().describe('Cursor for pagination')
43
+ }, async ({ workspace_id, query, cursor }) => {
44
+ try {
45
+ // Search for docs in the workspace
46
+ const result = await docsClient.searchDocs(workspace_id, { query, cursor });
47
+ return {
48
+ content: [{ type: 'text', text: JSON.stringify(result.docs, null, 2) }]
49
+ };
50
+ }
51
+ catch (error) {
52
+ console.error('Error searching docs:', error);
53
+ return {
54
+ content: [{ type: 'text', text: `Error searching docs: ${error.message}` }],
55
+ isError: true
56
+ };
57
+ }
58
+ });
59
+ // Register get_docs_from_workspace tool
60
+ server.tool('get_docs_from_workspace', 'Get all docs from a ClickUp workspace. Supports pagination and filtering for deleted/archived docs.', {
61
+ workspace_id: z.string().describe('The ID of the workspace to get docs from'),
62
+ cursor: z.string().optional().describe('Cursor for pagination'),
63
+ deleted: z.boolean().optional().describe('Whether to include deleted docs'),
64
+ archived: z.boolean().optional().describe('Whether to include archived docs'),
65
+ limit: z.number().optional().describe('The maximum number of docs to return')
66
+ }, async ({ workspace_id, cursor, deleted, archived, limit }) => {
67
+ try {
68
+ // Get docs from the workspace
69
+ const result = await docsClient.getDocsFromWorkspace(workspace_id, {
70
+ cursor,
71
+ deleted: deleted !== undefined ? deleted : false,
72
+ archived: archived !== undefined ? archived : false,
73
+ limit: limit || 50
74
+ });
75
+ return {
76
+ content: [{ type: 'text', text: JSON.stringify(result.docs, null, 2) }]
77
+ };
78
+ }
79
+ catch (error) {
80
+ console.error('Error getting docs from workspace:', error);
81
+ return {
82
+ content: [{ type: 'text', text: `Error getting docs from workspace: ${error.message}` }],
83
+ isError: true
84
+ };
85
+ }
86
+ });
87
+ // Register get_doc_pages tool
88
+ server.tool('get_doc_pages', 'Get the pages of a specific ClickUp doc. Returns page content in the requested format (markdown or plain text).', {
89
+ doc_id: z.string().describe('The ID of the doc to get pages from'),
90
+ workspace_id: z.string().describe('The ID of the workspace containing the doc'),
91
+ content_format: z.enum(['text/md', 'text/plain']).optional().describe('The format to return the content in')
92
+ }, async ({ doc_id, workspace_id, content_format }) => {
93
+ try {
94
+ // Get the pages of the doc
95
+ const pages = await docsClient.getDocPages(workspace_id, doc_id, content_format);
96
+ return {
97
+ content: [{ type: 'text', text: JSON.stringify(pages, null, 2) }]
98
+ };
99
+ }
100
+ catch (error) {
101
+ console.error('Error getting doc pages:', error);
102
+ return {
103
+ content: [{ type: 'text', text: `Error getting doc pages: ${error.message}` }],
104
+ isError: true
105
+ };
106
+ }
107
+ });
108
+ }
109
+ //# sourceMappingURL=doc-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-tools.js","sourceRoot":"","sources":["../../src/tools/doc-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function setupGoalsTools(server: McpServer): void;