basecamp-mcp 1.1.2 → 1.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.
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/dist/tools/activity.d.ts +6 -4
- package/dist/tools/activity.d.ts.map +1 -1
- package/dist/tools/activity.js +13 -285
- package/dist/tools/activity.js.map +1 -1
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +5 -11
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/campfires.d.ts +13 -0
- package/dist/tools/campfires.d.ts.map +1 -0
- package/dist/tools/campfires.js +221 -0
- package/dist/tools/campfires.js.map +1 -0
- package/dist/tools/checkins.d.ts.map +1 -1
- package/dist/tools/checkins.js +10 -74
- package/dist/tools/checkins.js.map +1 -1
- package/dist/tools/comments.d.ts.map +1 -1
- package/dist/tools/comments.js +9 -44
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/files.d.ts +21 -0
- package/dist/tools/files.d.ts.map +1 -0
- package/dist/tools/files.js +659 -0
- package/dist/tools/files.js.map +1 -0
- package/dist/tools/kanban.d.ts.map +1 -1
- package/dist/tools/kanban.js +78 -137
- package/dist/tools/kanban.js.map +1 -1
- package/dist/tools/messages.d.ts.map +1 -1
- package/dist/tools/messages.js +31 -71
- package/dist/tools/messages.js.map +1 -1
- package/dist/tools/people.d.ts.map +1 -1
- package/dist/tools/people.js +5 -19
- package/dist/tools/people.js.map +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +4 -16
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/todos.d.ts.map +1 -1
- package/dist/tools/todos.js +60 -84
- package/dist/tools/todos.js.map +1 -1
- package/dist/utils/auth.d.ts +7 -2
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +19 -11
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/contentOperations.d.ts +2 -2
- package/dist/utils/credentials.d.ts.map +1 -1
- package/dist/utils/credentials.js.map +1 -1
- package/dist/utils/errorHandlers.d.ts.map +1 -1
- package/dist/utils/errorHandlers.js +53 -29
- package/dist/utils/errorHandlers.js.map +1 -1
- package/dist/utils/oauth.d.ts +1 -0
- package/dist/utils/oauth.d.ts.map +1 -1
- package/dist/utils/oauth.js +18 -0
- package/dist/utils/oauth.js.map +1 -1
- package/dist/utils/pagination.d.ts +43 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +72 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/parseSince.d.ts +11 -0
- package/dist/utils/parseSince.d.ts.map +1 -0
- package/dist/utils/parseSince.js +48 -0
- package/dist/utils/parseSince.js.map +1 -0
- package/dist/utils/serializers.d.ts +17 -2
- package/dist/utils/serializers.d.ts.map +1 -1
- package/dist/utils/serializers.js +16 -0
- package/dist/utils/serializers.js.map +1 -1
- package/package.json +5 -3
- package/dist/tools/documents.d.ts +0 -11
- package/dist/tools/documents.d.ts.map +0 -1
- package/dist/tools/documents.js +0 -453
- package/dist/tools/documents.js.map +0 -1
- package/dist/tools/uploads.d.ts +0 -9
- package/dist/tools/uploads.d.ts.map +0 -1
- package/dist/tools/uploads.js +0 -319
- package/dist/tools/uploads.js.map +0 -1
package/dist/tools/messages.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Includes special patch support for updating messages without passing full content
|
|
5
5
|
*/
|
|
6
|
-
import { asyncPagedToArray } from "basecamp-client";
|
|
7
6
|
import { z } from "zod";
|
|
8
7
|
import { BasecampIdSchema } from "../schemas/common.js";
|
|
9
8
|
import { initializeBasecampClient } from "../utils/auth.js";
|
|
@@ -16,7 +15,6 @@ export function registerMessageTools(server) {
|
|
|
16
15
|
title: "Get Basecamp Message",
|
|
17
16
|
description: `Retrieve a single message from a Basecamp message board.`,
|
|
18
17
|
inputSchema: {
|
|
19
|
-
bucket_id: BasecampIdSchema.describe("Project/bucket ID containing the message"),
|
|
20
18
|
message_id: BasecampIdSchema.describe("Message ID to retrieve"),
|
|
21
19
|
},
|
|
22
20
|
annotations: {
|
|
@@ -28,13 +26,7 @@ export function registerMessageTools(server) {
|
|
|
28
26
|
}, async (params) => {
|
|
29
27
|
try {
|
|
30
28
|
const client = await initializeBasecampClient();
|
|
31
|
-
const
|
|
32
|
-
params: { bucketId: params.bucket_id, messageId: params.message_id },
|
|
33
|
-
});
|
|
34
|
-
if (response.status !== 200 || !response.body) {
|
|
35
|
-
throw new Error(`Failed to fetch message: ${response.status}`);
|
|
36
|
-
}
|
|
37
|
-
const msg = response.body;
|
|
29
|
+
const msg = await client.messages.get(params.message_id);
|
|
38
30
|
return {
|
|
39
31
|
content: [
|
|
40
32
|
{
|
|
@@ -61,9 +53,8 @@ export function registerMessageTools(server) {
|
|
|
61
53
|
// basecamp_list_messages
|
|
62
54
|
server.registerTool("basecamp_list_messages", {
|
|
63
55
|
title: "List Basecamp Messages",
|
|
64
|
-
description: `List messages in a Basecamp message board
|
|
56
|
+
description: `List messages in a Basecamp message board (a single project). For cross-project or time-based browsing across content types, use basecamp_list_recordings instead.`,
|
|
65
57
|
inputSchema: {
|
|
66
|
-
bucket_id: BasecampIdSchema.describe("Project/bucket ID"),
|
|
67
58
|
message_board_id: BasecampIdSchema.describe("Message board ID"),
|
|
68
59
|
filter: z
|
|
69
60
|
.string()
|
|
@@ -79,18 +70,9 @@ export function registerMessageTools(server) {
|
|
|
79
70
|
}, async (params) => {
|
|
80
71
|
try {
|
|
81
72
|
const client = await initializeBasecampClient();
|
|
82
|
-
const messages = await
|
|
83
|
-
fetchPage: client.messages.list,
|
|
84
|
-
request: {
|
|
85
|
-
params: {
|
|
86
|
-
bucketId: params.bucket_id,
|
|
87
|
-
messageBoardId: params.message_board_id,
|
|
88
|
-
},
|
|
89
|
-
query: {},
|
|
90
|
-
},
|
|
91
|
-
});
|
|
73
|
+
const messages = await client.messages.list(params.message_board_id);
|
|
92
74
|
// Apply filter if provided
|
|
93
|
-
let filteredMessages = messages;
|
|
75
|
+
let filteredMessages = [...messages];
|
|
94
76
|
if (params.filter) {
|
|
95
77
|
const regex = new RegExp(params.filter, "i");
|
|
96
78
|
filteredMessages = messages.filter((m) => regex.test(m.title) || regex.test(m.content || ""));
|
|
@@ -131,19 +113,22 @@ export function registerMessageTools(server) {
|
|
|
131
113
|
}, async (params) => {
|
|
132
114
|
try {
|
|
133
115
|
const client = await initializeBasecampClient();
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
116
|
+
// NOTE: The SDK's client.messageTypes.list() targets the account-level
|
|
117
|
+
// /categories.json endpoint, which 404s — message types (categories)
|
|
118
|
+
// are project-scoped. Hit the bucket-scoped endpoint via the low-level
|
|
119
|
+
// client instead. (This path isn't in the SDK's typed schema, hence the
|
|
120
|
+
// cast.)
|
|
121
|
+
const { data, error } = await client.GET("/buckets/{bucketId}/categories.json", {
|
|
122
|
+
params: { path: { bucketId: params.bucket_id } },
|
|
138
123
|
});
|
|
139
|
-
if (
|
|
140
|
-
throw new Error(
|
|
124
|
+
if (error || !data) {
|
|
125
|
+
throw new Error("Failed to fetch message types");
|
|
141
126
|
}
|
|
142
127
|
return {
|
|
143
128
|
content: [
|
|
144
129
|
{
|
|
145
130
|
type: "text",
|
|
146
|
-
text: JSON.stringify(
|
|
131
|
+
text: JSON.stringify(data.map((mt) => ({
|
|
147
132
|
id: mt.id,
|
|
148
133
|
name: mt.name,
|
|
149
134
|
icon: mt.icon,
|
|
@@ -165,7 +150,6 @@ export function registerMessageTools(server) {
|
|
|
165
150
|
title: "Create Basecamp Message",
|
|
166
151
|
description: `Create a new message in a Basecamp message board.`,
|
|
167
152
|
inputSchema: {
|
|
168
|
-
bucket_id: BasecampIdSchema,
|
|
169
153
|
message_board_id: BasecampIdSchema,
|
|
170
154
|
subject: z.string().min(1).max(500).describe("Message subject/title"),
|
|
171
155
|
content: z
|
|
@@ -174,9 +158,9 @@ export function registerMessageTools(server) {
|
|
|
174
158
|
.describe(`HTML message content. ${htmlRules}`),
|
|
175
159
|
message_type_id: BasecampIdSchema.optional().describe("Optional message type/category ID"),
|
|
176
160
|
status: z
|
|
177
|
-
.enum(["active", "
|
|
161
|
+
.enum(["active", "drafted"])
|
|
178
162
|
.default("active")
|
|
179
|
-
.describe(
|
|
163
|
+
.describe(`Message status. Use "active" to publish, "drafted" to save as an unpublished draft.`),
|
|
180
164
|
},
|
|
181
165
|
annotations: {
|
|
182
166
|
readOnlyHint: false,
|
|
@@ -187,26 +171,17 @@ export function registerMessageTools(server) {
|
|
|
187
171
|
}, async (params) => {
|
|
188
172
|
try {
|
|
189
173
|
const client = await initializeBasecampClient();
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
body: {
|
|
196
|
-
subject: params.subject,
|
|
197
|
-
content: params.content,
|
|
198
|
-
category_id: params.message_type_id,
|
|
199
|
-
status: params.status,
|
|
200
|
-
},
|
|
174
|
+
const message = await client.messages.create(params.message_board_id, {
|
|
175
|
+
subject: params.subject,
|
|
176
|
+
content: params.content,
|
|
177
|
+
categoryId: params.message_type_id,
|
|
178
|
+
status: params.status,
|
|
201
179
|
});
|
|
202
|
-
if (response.status !== 201 || !response.body) {
|
|
203
|
-
throw new Error(`Failed to create message`);
|
|
204
|
-
}
|
|
205
180
|
return {
|
|
206
181
|
content: [
|
|
207
182
|
{
|
|
208
183
|
type: "text",
|
|
209
|
-
text: `Message created successfully!\n\nID: ${
|
|
184
|
+
text: `Message created successfully!\n\nID: ${message.id}\nSubject: ${message.title}\nURL: ${message.app_url}`,
|
|
210
185
|
},
|
|
211
186
|
],
|
|
212
187
|
};
|
|
@@ -221,7 +196,6 @@ export function registerMessageTools(server) {
|
|
|
221
196
|
title: "Update Basecamp Message",
|
|
222
197
|
description: `Update a message. Use partial content operations when possible to save on token usage. ${htmlRules}`,
|
|
223
198
|
inputSchema: {
|
|
224
|
-
bucket_id: BasecampIdSchema,
|
|
225
199
|
message_id: BasecampIdSchema,
|
|
226
200
|
subject: z
|
|
227
201
|
.string()
|
|
@@ -251,16 +225,8 @@ export function registerMessageTools(server) {
|
|
|
251
225
|
if (hasPartialOps || params.content !== undefined) {
|
|
252
226
|
// Fetch current message if needed for partial operations
|
|
253
227
|
if (hasPartialOps) {
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
bucketId: params.bucket_id,
|
|
257
|
-
messageId: params.message_id,
|
|
258
|
-
},
|
|
259
|
-
});
|
|
260
|
-
if (currentResponse.status !== 200 || !currentResponse.body) {
|
|
261
|
-
throw new Error(`Failed to fetch current message for partial update: ${currentResponse.status}`);
|
|
262
|
-
}
|
|
263
|
-
const currentContent = currentResponse.body.content || "";
|
|
228
|
+
const current = await client.messages.get(params.message_id);
|
|
229
|
+
const currentContent = current.content || "";
|
|
264
230
|
finalContent = applyContentOperations(currentContent, params);
|
|
265
231
|
}
|
|
266
232
|
else {
|
|
@@ -268,24 +234,18 @@ export function registerMessageTools(server) {
|
|
|
268
234
|
finalContent = params.content;
|
|
269
235
|
}
|
|
270
236
|
}
|
|
271
|
-
const
|
|
272
|
-
params
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
? { category_id: params.message_type_id }
|
|
278
|
-
: {}),
|
|
279
|
-
},
|
|
237
|
+
const message = await client.messages.update(params.message_id, {
|
|
238
|
+
...(params.subject ? { subject: params.subject } : {}),
|
|
239
|
+
...(finalContent !== undefined ? { content: finalContent } : {}),
|
|
240
|
+
...(params.message_type_id
|
|
241
|
+
? { categoryId: params.message_type_id }
|
|
242
|
+
: {}),
|
|
280
243
|
});
|
|
281
|
-
if (response.status !== 200 || !response.body) {
|
|
282
|
-
throw new Error(`Failed to update message`);
|
|
283
|
-
}
|
|
284
244
|
return {
|
|
285
245
|
content: [
|
|
286
246
|
{
|
|
287
247
|
type: "text",
|
|
288
|
-
text: `Message updated successfully!\n\nID: ${
|
|
248
|
+
text: `Message updated successfully!\n\nID: ${message.id}\nSubject: ${message.title}`,
|
|
289
249
|
},
|
|
290
250
|
],
|
|
291
251
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/tools/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/tools/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,SAAS,EACT,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE;YACX,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;SAChE;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAEzD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,OAAO,EAAE,GAAG,CAAC,KAAK;4BAClB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;4BAC1B,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;4BACpC,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,GAAG,EAAE,GAAG,CAAC,OAAO;yBACjB,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,oKAAoK;QACjL,WAAW,EAAE;YACX,gBAAgB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC/D,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,oEAAoE,CACrE;SACJ;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAErE,2BAA2B;YAC3B,IAAI,gBAAgB,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC7C,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAC1D,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;4BACR,KAAK,EAAE,CAAC,CAAC,KAAK;4BACd,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;4BACnC,UAAU,EAAE,CAAC,CAAC,UAAU;yBACzB,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE;YACX,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SAC1D;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAEhD,uEAAuE;YACvE,qEAAqE;YACrE,uEAAuE;YACvE,wEAAwE;YACxE,SAAS;YACT,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MACtB,MAAM,CAAC,GAaR,CAAC,qCAAqC,EAAE;gBACvC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE;aACjD,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BAChB,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,IAAI,EAAE,EAAE,CAAC,IAAI;4BACb,IAAI,EAAE,EAAE,CAAC,IAAI;4BACb,UAAU,EAAE,EAAE,CAAC,UAAU;4BACzB,UAAU,EAAE,EAAE,CAAC,UAAU;yBAC1B,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE;YACX,gBAAgB,EAAE,gBAAgB;YAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACrE,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yBAAyB,SAAS,EAAE,CAAC;YACjD,eAAe,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnD,mCAAmC,CACpC;YACD,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;iBAC3B,OAAO,CAAC,QAAQ,CAAC;iBACjB,QAAQ,CACP,qFAAqF,CACtF;SACJ;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBACpE,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,eAAe;gBAClC,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,wCAAwC,OAAO,CAAC,EAAE,cAAc,OAAO,CAAC,KAAK,UAAU,OAAO,CAAC,OAAO,EAAE;qBAC/G;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,0FAA0F,SAAS,EAAE;QAClH,WAAW,EAAE;YACX,UAAU,EAAE,gBAAgB;YAC5B,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,qBAAqB,CAAC;YAClC,eAAe,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnD,mCAAmC,CACpC;YACD,GAAG,sBAAsB;SAC1B;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,8CAA8C;YAC9C,yBAAyB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAChD,IAAI,YAAgC,CAAC;YAErC,mEAAmE;YACnE,MAAM,aAAa,GACjB,MAAM,CAAC,cAAc;gBACrB,MAAM,CAAC,eAAe;gBACtB,MAAM,CAAC,cAAc,CAAC;YAExB,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClD,yDAAyD;gBACzD,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC7D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;oBAC7C,YAAY,GAAG,sBAAsB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,2BAA2B;oBAC3B,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC9D,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,MAAM,CAAC,eAAe;oBACxB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE;oBACxC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,wCAAwC,OAAO,CAAC,EAAE,cAAc,OAAO,CAAC,KAAK,EAAE;qBACtF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"people.d.ts","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2J3D"}
|
package/dist/tools/people.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* People tools for Basecamp MCP server
|
|
3
3
|
*/
|
|
4
|
-
import { asyncPagedToArray } from "basecamp-client";
|
|
5
4
|
import { z } from "zod";
|
|
6
5
|
import { BasecampIdSchema } from "../schemas/common.js";
|
|
7
6
|
import { initializeBasecampClient } from "../utils/auth.js";
|
|
@@ -9,7 +8,7 @@ import { handleBasecampError } from "../utils/errorHandlers.js";
|
|
|
9
8
|
export function registerPeopleTools(server) {
|
|
10
9
|
server.registerTool("basecamp_get_me", {
|
|
11
10
|
title: "Get My Basecamp Profile",
|
|
12
|
-
description: "Get
|
|
11
|
+
description: "Get your full profile for the authenticated user (id, name, email, title, attachable_sgid). To simply check whether you're logged in, use basecamp_whoami.",
|
|
13
12
|
annotations: {
|
|
14
13
|
readOnlyHint: true,
|
|
15
14
|
destructiveHint: false,
|
|
@@ -19,11 +18,7 @@ export function registerPeopleTools(server) {
|
|
|
19
18
|
}, async () => {
|
|
20
19
|
try {
|
|
21
20
|
const client = await initializeBasecampClient();
|
|
22
|
-
const
|
|
23
|
-
if (response.status !== 200 || !response.body) {
|
|
24
|
-
throw new Error("Failed to get personal info");
|
|
25
|
-
}
|
|
26
|
-
const me = response.body;
|
|
21
|
+
const me = await client.people.me();
|
|
27
22
|
return {
|
|
28
23
|
content: [
|
|
29
24
|
{
|
|
@@ -63,12 +58,9 @@ export function registerPeopleTools(server) {
|
|
|
63
58
|
}, async (params) => {
|
|
64
59
|
try {
|
|
65
60
|
const client = await initializeBasecampClient();
|
|
66
|
-
const people = await
|
|
67
|
-
fetchPage: client.people.list,
|
|
68
|
-
request: { query: {} },
|
|
69
|
-
});
|
|
61
|
+
const people = await client.people.list();
|
|
70
62
|
// Apply filter if provided
|
|
71
|
-
let filteredPeople = people;
|
|
63
|
+
let filteredPeople = [...people];
|
|
72
64
|
if (params.filter) {
|
|
73
65
|
const regex = new RegExp(params.filter, "i");
|
|
74
66
|
filteredPeople = people.filter((p) => regex.test(p.name) ||
|
|
@@ -111,13 +103,7 @@ export function registerPeopleTools(server) {
|
|
|
111
103
|
}, async (params) => {
|
|
112
104
|
try {
|
|
113
105
|
const client = await initializeBasecampClient();
|
|
114
|
-
const
|
|
115
|
-
params: { personId: params.person_id },
|
|
116
|
-
});
|
|
117
|
-
if (response.status !== 200 || !response.body) {
|
|
118
|
-
throw new Error("Failed to get person");
|
|
119
|
-
}
|
|
120
|
-
const person = response.body;
|
|
106
|
+
const person = await client.people.get(params.person_id);
|
|
121
107
|
return {
|
|
122
108
|
content: [
|
|
123
109
|
{
|
package/dist/tools/people.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/tools/people.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+G5D"}
|
package/dist/tools/projects.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Projects are the foundation - they help users discover bucket IDs needed for other operations.
|
|
5
5
|
*/
|
|
6
|
-
import { asyncPagedToArray } from "basecamp-client";
|
|
7
6
|
import { z } from "zod";
|
|
8
7
|
import { BasecampIdSchema } from "../schemas/common.js";
|
|
9
8
|
import { initializeBasecampClient } from "../utils/auth.js";
|
|
@@ -31,15 +30,10 @@ export function registerProjectTools(server) {
|
|
|
31
30
|
}, async (params) => {
|
|
32
31
|
try {
|
|
33
32
|
const client = await initializeBasecampClient();
|
|
34
|
-
// Fetch projects
|
|
35
|
-
const projects = await
|
|
36
|
-
fetchPage: client.projects.list,
|
|
37
|
-
request: {
|
|
38
|
-
query: {},
|
|
39
|
-
},
|
|
40
|
-
});
|
|
33
|
+
// Fetch projects (the SDK auto-paginates across all pages)
|
|
34
|
+
const projects = await client.projects.list();
|
|
41
35
|
// Apply filter if provided
|
|
42
|
-
let filteredProjects = projects;
|
|
36
|
+
let filteredProjects = [...projects];
|
|
43
37
|
if (params.filter) {
|
|
44
38
|
const regex = new RegExp(params.filter, "i");
|
|
45
39
|
filteredProjects = projects.filter((p) => regex.test(p.name) || regex.test(p.description || ""));
|
|
@@ -86,13 +80,7 @@ Examples:
|
|
|
86
80
|
}, async (params) => {
|
|
87
81
|
try {
|
|
88
82
|
const client = await initializeBasecampClient();
|
|
89
|
-
const
|
|
90
|
-
params: { projectId: params.project_id },
|
|
91
|
-
});
|
|
92
|
-
if (response.status !== 200 || !response.body) {
|
|
93
|
-
throw new Error(`Failed to fetch project: ${response.status}`);
|
|
94
|
-
}
|
|
95
|
-
const project = response.body;
|
|
83
|
+
const project = await client.projects.get(params.project_id);
|
|
96
84
|
const jsonData = {
|
|
97
85
|
id: project.id,
|
|
98
86
|
name: project.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,+BAA+B;IAC/B,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,oQAAoQ;QACjR,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,uEAAuE,CACxE;SACJ;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAEhD,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE9C,2BAA2B;YAC3B,IAAI,gBAAgB,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC7C,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAC7D,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;4BACR,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;4BAChC,UAAU,EAAE,CAAC,CAAC,UAAU;4BACxB,UAAU,EAAE,CAAC,CAAC,UAAU;4BACxB,GAAG,EAAE,CAAC,CAAC,OAAO;yBACf,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE;;;;yEAIsD;QACnE,WAAW,EAAE;YACX,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;SAChE;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAEhD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAE7D,MAAM,QAAQ,GAAG;gBACf,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;gBACtC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,GAAG,EAAE,OAAO,CAAC,OAAO;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;aACzB,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../src/tools/todos.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../src/tools/todos.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+UzD"}
|