@paca-ai/paca-mcp 0.1.0-rc.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.
Files changed (97) hide show
  1. package/api/client.d.ts +53 -0
  2. package/api/client.d.ts.map +1 -0
  3. package/api/client.js +267 -0
  4. package/api/client.js.map +1 -0
  5. package/api/doc-client.d.ts +26 -0
  6. package/api/doc-client.d.ts.map +1 -0
  7. package/api/doc-client.js +109 -0
  8. package/api/doc-client.js.map +1 -0
  9. package/api/extended-client.d.ts +44 -0
  10. package/api/extended-client.d.ts.map +1 -0
  11. package/api/extended-client.js +167 -0
  12. package/api/extended-client.js.map +1 -0
  13. package/api/github-client.d.ts +21 -0
  14. package/api/github-client.d.ts.map +1 -0
  15. package/api/github-client.js +87 -0
  16. package/api/github-client.js.map +1 -0
  17. package/api/index.d.ts +7 -0
  18. package/api/index.d.ts.map +1 -0
  19. package/api/index.js +7 -0
  20. package/api/index.js.map +1 -0
  21. package/api/task-extended-client.d.ts +28 -0
  22. package/api/task-extended-client.d.ts.map +1 -0
  23. package/api/task-extended-client.js +123 -0
  24. package/api/task-extended-client.js.map +1 -0
  25. package/api/views-client.d.ts +36 -0
  26. package/api/views-client.d.ts.map +1 -0
  27. package/api/views-client.js +157 -0
  28. package/api/views-client.js.map +1 -0
  29. package/index.d.ts +3 -0
  30. package/index.d.ts.map +1 -0
  31. package/index.js +41 -0
  32. package/index.js.map +1 -0
  33. package/package.json +40 -0
  34. package/server.d.ts +9 -0
  35. package/server.d.ts.map +1 -0
  36. package/server.js +46 -0
  37. package/server.js.map +1 -0
  38. package/tools/attachment-tools.d.ts +15 -0
  39. package/tools/attachment-tools.d.ts.map +1 -0
  40. package/tools/attachment-tools.js +402 -0
  41. package/tools/attachment-tools.js.map +1 -0
  42. package/tools/doc-github-tools.d.ts +15 -0
  43. package/tools/doc-github-tools.d.ts.map +1 -0
  44. package/tools/doc-github-tools.js +520 -0
  45. package/tools/doc-github-tools.js.map +1 -0
  46. package/tools/document-tools.d.ts +16 -0
  47. package/tools/document-tools.d.ts.map +1 -0
  48. package/tools/document-tools.js +224 -0
  49. package/tools/document-tools.js.map +1 -0
  50. package/tools/index.d.ts +19 -0
  51. package/tools/index.d.ts.map +1 -0
  52. package/tools/index.js +171 -0
  53. package/tools/index.js.map +1 -0
  54. package/tools/member-tools.d.ts +15 -0
  55. package/tools/member-tools.d.ts.map +1 -0
  56. package/tools/member-tools.js +391 -0
  57. package/tools/member-tools.js.map +1 -0
  58. package/tools/project-tools.d.ts +16 -0
  59. package/tools/project-tools.d.ts.map +1 -0
  60. package/tools/project-tools.js +178 -0
  61. package/tools/project-tools.js.map +1 -0
  62. package/tools/sprint-tools.d.ts +16 -0
  63. package/tools/sprint-tools.d.ts.map +1 -0
  64. package/tools/sprint-tools.js +258 -0
  65. package/tools/sprint-tools.js.map +1 -0
  66. package/tools/task-activity-tools.d.ts +15 -0
  67. package/tools/task-activity-tools.d.ts.map +1 -0
  68. package/tools/task-activity-tools.js +425 -0
  69. package/tools/task-activity-tools.js.map +1 -0
  70. package/tools/task-tools.d.ts +16 -0
  71. package/tools/task-tools.d.ts.map +1 -0
  72. package/tools/task-tools.js +344 -0
  73. package/tools/task-tools.js.map +1 -0
  74. package/tools/task-type-tools.d.ts +12 -0
  75. package/tools/task-type-tools.d.ts.map +1 -0
  76. package/tools/task-type-tools.js +459 -0
  77. package/tools/task-type-tools.js.map +1 -0
  78. package/tools/view-tools.d.ts +15 -0
  79. package/tools/view-tools.d.ts.map +1 -0
  80. package/tools/view-tools.js +660 -0
  81. package/tools/view-tools.js.map +1 -0
  82. package/types/index.d.ts +564 -0
  83. package/types/index.d.ts.map +1 -0
  84. package/types/index.js +2 -0
  85. package/types/index.js.map +1 -0
  86. package/utils/converters.d.ts +13 -0
  87. package/utils/converters.d.ts.map +1 -0
  88. package/utils/converters.js +50 -0
  89. package/utils/converters.js.map +1 -0
  90. package/utils/formatters.d.ts +34 -0
  91. package/utils/formatters.d.ts.map +1 -0
  92. package/utils/formatters.js +87 -0
  93. package/utils/formatters.js.map +1 -0
  94. package/utils/index.d.ts +3 -0
  95. package/utils/index.d.ts.map +1 -0
  96. package/utils/index.js +3 -0
  97. package/utils/index.js.map +1 -0
@@ -0,0 +1,224 @@
1
+ import { z } from "zod";
2
+ import { formatDocument, formatList } from "../utils/index.js";
3
+ const ListDocumentsSchema = z.object({
4
+ projectId: z.string(),
5
+ });
6
+ const GetDocumentSchema = z.object({
7
+ projectId: z.string(),
8
+ docId: z.string(),
9
+ });
10
+ const CreateDocumentSchema = z.object({
11
+ projectId: z.string(),
12
+ title: z.string(),
13
+ content: z.string().optional(),
14
+ folderId: z.string().optional(),
15
+ });
16
+ const UpdateDocumentSchema = z.object({
17
+ projectId: z.string(),
18
+ docId: z.string(),
19
+ title: z.string().optional(),
20
+ content: z.string().optional(),
21
+ folderId: z.string().optional(),
22
+ });
23
+ const DeleteDocumentSchema = z.object({
24
+ projectId: z.string(),
25
+ docId: z.string(),
26
+ });
27
+ /**
28
+ * Returns all document-related MCP tools.
29
+ * @returns Array of document tools
30
+ */
31
+ export function getDocumentTools() {
32
+ return [
33
+ {
34
+ name: "list_documents",
35
+ description: "List all documents in a project",
36
+ inputSchema: {
37
+ type: "object",
38
+ properties: {
39
+ projectId: {
40
+ type: "string",
41
+ description: "The ID of the project",
42
+ },
43
+ },
44
+ required: ["projectId"],
45
+ },
46
+ },
47
+ {
48
+ name: "get_document",
49
+ description: "Get details of a specific document",
50
+ inputSchema: {
51
+ type: "object",
52
+ properties: {
53
+ projectId: {
54
+ type: "string",
55
+ description: "The ID of the project",
56
+ },
57
+ docId: {
58
+ type: "string",
59
+ description: "The ID of the document",
60
+ },
61
+ },
62
+ required: ["projectId", "docId"],
63
+ },
64
+ },
65
+ {
66
+ name: "create_document",
67
+ description: "Create a new document",
68
+ inputSchema: {
69
+ type: "object",
70
+ properties: {
71
+ projectId: {
72
+ type: "string",
73
+ description: "The ID of the project",
74
+ },
75
+ title: {
76
+ type: "string",
77
+ description: "The title of the document",
78
+ },
79
+ content: {
80
+ type: "string",
81
+ description: "The content of the document in markdown format (will be converted to BlockNote format)",
82
+ },
83
+ folderId: {
84
+ type: "string",
85
+ description: "The ID of the folder",
86
+ },
87
+ },
88
+ required: ["projectId", "title"],
89
+ },
90
+ },
91
+ {
92
+ name: "update_document",
93
+ description: "Update an existing document",
94
+ inputSchema: {
95
+ type: "object",
96
+ properties: {
97
+ projectId: {
98
+ type: "string",
99
+ description: "The ID of the project",
100
+ },
101
+ docId: {
102
+ type: "string",
103
+ description: "The ID of the document",
104
+ },
105
+ title: {
106
+ type: "string",
107
+ description: "The new title of the document",
108
+ },
109
+ content: {
110
+ type: "string",
111
+ description: "The new content of the document in markdown format (will be converted to BlockNote format)",
112
+ },
113
+ folderId: {
114
+ type: "string",
115
+ description: "The ID of the folder",
116
+ },
117
+ },
118
+ required: ["projectId", "docId"],
119
+ },
120
+ },
121
+ {
122
+ name: "delete_document",
123
+ description: "Delete a document",
124
+ inputSchema: {
125
+ type: "object",
126
+ properties: {
127
+ projectId: {
128
+ type: "string",
129
+ description: "The ID of the project",
130
+ },
131
+ docId: {
132
+ type: "string",
133
+ description: "The ID of the document",
134
+ },
135
+ },
136
+ required: ["projectId", "docId"],
137
+ },
138
+ },
139
+ ];
140
+ }
141
+ /**
142
+ * Handles document-related tool calls.
143
+ * @param toolName - Name of the tool being called
144
+ * @param args - Tool arguments
145
+ * @param client - Paca API client instance
146
+ * @returns Tool response
147
+ */
148
+ export async function handleDocumentTool(toolName, args, client) {
149
+ switch (toolName) {
150
+ case "list_documents": {
151
+ const { projectId } = ListDocumentsSchema.parse(args);
152
+ const documents = await client.listDocuments(projectId);
153
+ const formatted = formatList(documents, formatDocument);
154
+ return {
155
+ content: [
156
+ {
157
+ type: "text",
158
+ text: `Documents:\n\n${formatted}`,
159
+ },
160
+ ],
161
+ };
162
+ }
163
+ case "get_document": {
164
+ const { projectId, docId } = GetDocumentSchema.parse(args);
165
+ const document = await client.getDocument(projectId, docId);
166
+ return {
167
+ content: [
168
+ {
169
+ type: "text",
170
+ text: formatDocument(document),
171
+ },
172
+ ],
173
+ };
174
+ }
175
+ case "create_document": {
176
+ const { projectId, title, content, folderId } = CreateDocumentSchema.parse(args);
177
+ const document = await client.createDocument({
178
+ project_id: projectId,
179
+ title,
180
+ content,
181
+ folder_id: folderId,
182
+ });
183
+ return {
184
+ content: [
185
+ {
186
+ type: "text",
187
+ text: `Document created successfully:\n\n${formatDocument(document)}`,
188
+ },
189
+ ],
190
+ };
191
+ }
192
+ case "update_document": {
193
+ const { projectId, docId, title, content, folderId } = UpdateDocumentSchema.parse(args);
194
+ const document = await client.updateDocument(projectId, docId, {
195
+ title,
196
+ content,
197
+ folder_id: folderId,
198
+ });
199
+ return {
200
+ content: [
201
+ {
202
+ type: "text",
203
+ text: `Document updated successfully:\n\n${formatDocument(document)}`,
204
+ },
205
+ ],
206
+ };
207
+ }
208
+ case "delete_document": {
209
+ const { projectId, docId } = DeleteDocumentSchema.parse(args);
210
+ await client.deleteDocument(projectId, docId);
211
+ return {
212
+ content: [
213
+ {
214
+ type: "text",
215
+ text: `Document ${docId} deleted successfully`,
216
+ },
217
+ ],
218
+ };
219
+ }
220
+ default:
221
+ throw new Error(`Unknown document tool: ${toolName}`);
222
+ }
223
+ }
224
+ //# sourceMappingURL=document-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-tools.js","sourceRoot":"","sources":["../../src/tools/document-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { CallToolRequest, Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { PacaAPIClient, PacaAPIDocClient, PacaAPIExtendedClient, PacaAPIGitHubClient, PacaAPITaskExtendedClient, PacaAPIViewsClient } from "../api/index.js";
3
+ /**
4
+ * Returns all available MCP tools.
5
+ */
6
+ export declare function getAllTools(): Tool[];
7
+ /**
8
+ * Handles incoming tool calls.
9
+ * Routes the call to the appropriate handler based on tool name.
10
+ */
11
+ export declare function handleToolCall(request: CallToolRequest, clients: {
12
+ apiClient: PacaAPIClient;
13
+ extendedClient: PacaAPIExtendedClient;
14
+ viewsClient: PacaAPIViewsClient;
15
+ taskExtendedClient: PacaAPITaskExtendedClient;
16
+ docClient: PacaAPIDocClient;
17
+ githubClient: PacaAPIGitHubClient;
18
+ }): Promise<any>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AAoCzB;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAmBpC;AAED;;;GAGG;AACH,wBAAsB,cAAc,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE;IACR,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC;IAChC,kBAAkB,EAAE,yBAAyB,CAAC;IAC9C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,mBAAmB,CAAC;CAClC,GACC,OAAO,CAAC,GAAG,CAAC,CAwKd"}
package/tools/index.js ADDED
@@ -0,0 +1,171 @@
1
+ import { getAttachmentTools, getBDDScenarioTools, handleAttachmentTool, } from "./attachment-tools.js";
2
+ import { getDocTools, getGitHubTools, handleDocTool, } from "./doc-github-tools.js";
3
+ import { getDocumentTools, handleDocumentTool } from "./document-tools.js";
4
+ import { getProjectMemberTools, getProjectRoleTools, handleProjectMemberTool, } from "./member-tools.js";
5
+ import { getProjectTools, handleProjectTool } from "./project-tools.js";
6
+ import { getSprintTools, handleSprintTool } from "./sprint-tools.js";
7
+ import { getTaskActivityTools, getTaskGitHubTools, handleTaskActivityTool, } from "./task-activity-tools.js";
8
+ import { getTaskTools, handleTaskTool } from "./task-tools.js";
9
+ import { getTaskStatusTools, getTaskTypeTools, handleTaskTypeTool, } from "./task-type-tools.js";
10
+ import { getCustomFieldTools, getViewTools, handleViewTool, } from "./view-tools.js";
11
+ /**
12
+ * Returns all available MCP tools.
13
+ */
14
+ export function getAllTools() {
15
+ return [
16
+ ...getProjectTools(),
17
+ ...getTaskTools(),
18
+ ...getSprintTools(),
19
+ ...getDocumentTools(),
20
+ ...getProjectMemberTools(),
21
+ ...getProjectRoleTools(),
22
+ ...getTaskTypeTools(),
23
+ ...getTaskStatusTools(),
24
+ ...getViewTools(),
25
+ ...getCustomFieldTools(),
26
+ ...getAttachmentTools(),
27
+ ...getBDDScenarioTools(),
28
+ ...getDocTools(),
29
+ ...getGitHubTools(),
30
+ ...getTaskActivityTools(),
31
+ ...getTaskGitHubTools(),
32
+ ];
33
+ }
34
+ /**
35
+ * Handles incoming tool calls.
36
+ * Routes the call to the appropriate handler based on tool name.
37
+ */
38
+ export async function handleToolCall(request, clients) {
39
+ const { name, arguments: args } = request.params;
40
+ try {
41
+ // Project tools
42
+ if (name === "list_projects" ||
43
+ name === "get_project" ||
44
+ name === "create_project" ||
45
+ name === "update_project" ||
46
+ name === "delete_project") {
47
+ return handleProjectTool(name, args, clients.apiClient);
48
+ }
49
+ // Task tools
50
+ if (name === "list_tasks" ||
51
+ name === "get_task" ||
52
+ name === "get_task_by_number" ||
53
+ name === "create_task" ||
54
+ name === "update_task" ||
55
+ name === "delete_task") {
56
+ return handleTaskTool(name, args, clients.apiClient);
57
+ }
58
+ // Sprint tools
59
+ if (name === "list_sprints" ||
60
+ name === "get_sprint" ||
61
+ name === "create_sprint" ||
62
+ name === "update_sprint" ||
63
+ name === "delete_sprint" ||
64
+ name === "complete_sprint") {
65
+ return handleSprintTool(name, args, clients.apiClient);
66
+ }
67
+ // Document tools
68
+ if (name === "list_documents" ||
69
+ name === "get_document" ||
70
+ name === "create_document" ||
71
+ name === "update_document" ||
72
+ name === "delete_document") {
73
+ return handleDocumentTool(name, args, clients.apiClient);
74
+ }
75
+ // Project member and role tools
76
+ if (name === "list_project_members" ||
77
+ name === "add_project_member" ||
78
+ name === "get_my_project_permissions" ||
79
+ name === "update_project_member_role" ||
80
+ name === "remove_project_member" ||
81
+ name === "list_project_roles" ||
82
+ name === "create_project_role" ||
83
+ name === "update_project_role" ||
84
+ name === "delete_project_role") {
85
+ return handleProjectMemberTool(name, args, clients.extendedClient);
86
+ }
87
+ // Task type and status tools
88
+ if (name === "list_task_types" ||
89
+ name === "create_task_type" ||
90
+ name === "update_task_type" ||
91
+ name === "delete_task_type" ||
92
+ name === "set_default_task_type" ||
93
+ name === "list_task_statuses" ||
94
+ name === "create_task_status" ||
95
+ name === "update_task_status" ||
96
+ name === "delete_task_status" ||
97
+ name === "set_default_task_status") {
98
+ return handleTaskTypeTool(name, args, clients.extendedClient);
99
+ }
100
+ // View and custom field tools
101
+ if (name === "list_views" ||
102
+ name === "create_view" ||
103
+ name === "reorder_views" ||
104
+ name === "get_view" ||
105
+ name === "update_view" ||
106
+ name === "delete_view" ||
107
+ name === "list_task_positions" ||
108
+ name === "bulk_move_tasks" ||
109
+ name === "move_task" ||
110
+ name === "list_custom_fields" ||
111
+ name === "create_custom_field" ||
112
+ name === "get_custom_field" ||
113
+ name === "update_custom_field" ||
114
+ name === "delete_custom_field") {
115
+ return handleViewTool(name, args, clients.viewsClient);
116
+ }
117
+ // Attachment and BDD scenario tools
118
+ if (name === "list_task_attachments" ||
119
+ name === "get_attachment_download_url" ||
120
+ name === "delete_task_attachment" ||
121
+ name === "list_bdd_scenarios" ||
122
+ name === "create_bdd_scenario" ||
123
+ name === "get_bdd_scenario" ||
124
+ name === "update_bdd_scenario" ||
125
+ name === "delete_bdd_scenario") {
126
+ return handleAttachmentTool(name, args, clients.viewsClient, clients.taskExtendedClient);
127
+ }
128
+ // Document and GitHub integration tools
129
+ if (name === "list_doc_folders" ||
130
+ name === "create_doc_folder" ||
131
+ name === "update_doc_folder" ||
132
+ name === "delete_doc_folder" ||
133
+ name === "list_doc_snapshots" ||
134
+ name === "get_doc_snapshot" ||
135
+ name === "get_github_integration" ||
136
+ name === "set_github_token" ||
137
+ name === "delete_github_token" ||
138
+ name === "list_github_repositories" ||
139
+ name === "list_linked_github_repos" ||
140
+ name === "link_github_repository" ||
141
+ name === "unlink_github_repository") {
142
+ return handleDocTool(name, args, clients.docClient, clients.githubClient);
143
+ }
144
+ // Task activity and GitHub tools
145
+ if (name === "list_task_activities" ||
146
+ name === "add_task_comment" ||
147
+ name === "update_task_comment" ||
148
+ name === "delete_task_comment" ||
149
+ name === "list_task_prs" ||
150
+ name === "link_pr_to_task" ||
151
+ name === "unlink_pr_from_task" ||
152
+ name === "create_branch_for_task" ||
153
+ name === "list_task_branches") {
154
+ return handleTaskActivityTool(name, args, clients.taskExtendedClient);
155
+ }
156
+ throw new Error(`Unknown tool: ${name}`);
157
+ }
158
+ catch (error) {
159
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
160
+ return {
161
+ content: [
162
+ {
163
+ type: "text",
164
+ text: `Error: ${errorMessage}`,
165
+ },
166
+ ],
167
+ isError: true,
168
+ };
169
+ }
170
+ }
171
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { PacaAPIExtendedClient } from "../api/index.js";
3
+ /**
4
+ * Returns all project member-related MCP tools.
5
+ */
6
+ export declare function getProjectMemberTools(): Tool[];
7
+ /**
8
+ * Returns all project role-related MCP tools.
9
+ */
10
+ export declare function getProjectRoleTools(): Tool[];
11
+ /**
12
+ * Handles project member and role tool calls.
13
+ */
14
+ export declare function handleProjectMemberTool(toolName: string, args: any, client: PacaAPIExtendedClient): Promise<any>;
15
+ //# sourceMappingURL=member-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-tools.d.ts","sourceRoot":"","sources":["../../src/tools/member-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAoD7D;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,EAAE,CA6F9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,EAAE,CA6F5C;AAmBD;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,qBAAqB,GAC3B,OAAO,CAAC,GAAG,CAAC,CAmJd"}