google-workspace-mcp-server 1.1.1 → 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/README.md +29 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/schemas/calendar.d.ts +57 -0
- package/dist/schemas/calendar.d.ts.map +1 -0
- package/dist/schemas/calendar.js +51 -0
- package/dist/schemas/calendar.js.map +1 -0
- package/dist/schemas/gmail.d.ts +73 -0
- package/dist/schemas/gmail.d.ts.map +1 -0
- package/dist/schemas/gmail.js +64 -0
- package/dist/schemas/gmail.js.map +1 -0
- package/dist/services/google-auth.d.ts +3 -1
- package/dist/services/google-auth.d.ts.map +1 -1
- package/dist/services/google-auth.js +16 -0
- package/dist/services/google-auth.js.map +1 -1
- package/dist/tools/calendar.d.ts +3 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +323 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/gmail.d.ts +3 -0
- package/dist/tools/gmail.d.ts.map +1 -0
- package/dist/tools/gmail.js +472 -0
- package/dist/tools/gmail.js.map +1 -0
- package/dist/types.d.ts +47 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import { getCalendarClient, handleGoogleError } from "../services/google-auth.js";
|
|
2
|
+
import { ListCalendarsSchema, ListEventsSchema, GetEventSchema } from "../schemas/calendar.js";
|
|
3
|
+
import { ResponseFormat } from "../constants.js";
|
|
4
|
+
function formatDateTime(dateTime, date) {
|
|
5
|
+
if (dateTime) {
|
|
6
|
+
const d = new Date(dateTime);
|
|
7
|
+
return d.toLocaleString();
|
|
8
|
+
}
|
|
9
|
+
if (date) {
|
|
10
|
+
return `${date} (all day)`;
|
|
11
|
+
}
|
|
12
|
+
return "Unknown";
|
|
13
|
+
}
|
|
14
|
+
function formatEventForMarkdown(event) {
|
|
15
|
+
const lines = [
|
|
16
|
+
`### ${event.summary || "(no title)"}`,
|
|
17
|
+
`- **When**: ${event.startFormatted} → ${event.endFormatted}`,
|
|
18
|
+
`- **ID**: \`${event.id}\``
|
|
19
|
+
];
|
|
20
|
+
if (event.location) {
|
|
21
|
+
lines.push(`- **Location**: ${event.location}`);
|
|
22
|
+
}
|
|
23
|
+
if (event.status && event.status !== "confirmed") {
|
|
24
|
+
lines.push(`- **Status**: ${event.status}`);
|
|
25
|
+
}
|
|
26
|
+
if (event.attendees && event.attendees.length > 0) {
|
|
27
|
+
lines.push(`- **Attendees**: ${event.attendees.join(", ")}`);
|
|
28
|
+
}
|
|
29
|
+
if (event.description) {
|
|
30
|
+
const shortDesc = event.description.length > 200
|
|
31
|
+
? event.description.substring(0, 200) + "..."
|
|
32
|
+
: event.description;
|
|
33
|
+
lines.push(`- **Description**: ${shortDesc}`);
|
|
34
|
+
}
|
|
35
|
+
return lines.join("\n");
|
|
36
|
+
}
|
|
37
|
+
export function registerCalendarTools(server) {
|
|
38
|
+
server.registerTool("calendar_list_calendars", {
|
|
39
|
+
title: "List Calendars",
|
|
40
|
+
description: `List all calendars accessible to the user.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
- response_format ('markdown' | 'json'): Output format (default: 'markdown')
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
List of calendars with their IDs, names, and access roles.`,
|
|
47
|
+
inputSchema: ListCalendarsSchema,
|
|
48
|
+
annotations: {
|
|
49
|
+
readOnlyHint: true,
|
|
50
|
+
destructiveHint: false,
|
|
51
|
+
idempotentHint: true,
|
|
52
|
+
openWorldHint: true
|
|
53
|
+
}
|
|
54
|
+
}, async (params) => {
|
|
55
|
+
try {
|
|
56
|
+
const calendar = getCalendarClient();
|
|
57
|
+
const response = await calendar.calendarList.list();
|
|
58
|
+
const calendars = (response.data.items || []).map(cal => ({
|
|
59
|
+
id: cal.id || "",
|
|
60
|
+
summary: cal.summary || "",
|
|
61
|
+
description: cal.description || undefined,
|
|
62
|
+
primary: cal.primary || false,
|
|
63
|
+
accessRole: cal.accessRole || "reader",
|
|
64
|
+
backgroundColor: cal.backgroundColor || undefined
|
|
65
|
+
}));
|
|
66
|
+
// Sort: primary first, then alphabetically
|
|
67
|
+
calendars.sort((a, b) => {
|
|
68
|
+
if (a.primary && !b.primary)
|
|
69
|
+
return -1;
|
|
70
|
+
if (!a.primary && b.primary)
|
|
71
|
+
return 1;
|
|
72
|
+
return a.summary.localeCompare(b.summary);
|
|
73
|
+
});
|
|
74
|
+
const output = { calendars };
|
|
75
|
+
let textOutput;
|
|
76
|
+
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
77
|
+
const lines = [
|
|
78
|
+
"# Your Calendars",
|
|
79
|
+
"",
|
|
80
|
+
`Found ${calendars.length} calendar(s).`,
|
|
81
|
+
""
|
|
82
|
+
];
|
|
83
|
+
for (const cal of calendars) {
|
|
84
|
+
lines.push(`### ${cal.summary}${cal.primary ? " ⭐ (Primary)" : ""}`, `- **ID**: \`${cal.id}\``, `- **Access**: ${cal.accessRole}`);
|
|
85
|
+
if (cal.description) {
|
|
86
|
+
lines.push(`- **Description**: ${cal.description}`);
|
|
87
|
+
}
|
|
88
|
+
lines.push("");
|
|
89
|
+
}
|
|
90
|
+
textOutput = lines.join("\n");
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
textOutput = JSON.stringify(output, null, 2);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
content: [{ type: "text", text: textOutput }],
|
|
97
|
+
structuredContent: output
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
return {
|
|
102
|
+
content: [{ type: "text", text: handleGoogleError(error) }]
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
server.registerTool("calendar_list_events", {
|
|
107
|
+
title: "List Calendar Events",
|
|
108
|
+
description: `List events from a calendar within an optional time range.
|
|
109
|
+
|
|
110
|
+
Args:
|
|
111
|
+
- calendar_id (string): Calendar ID (default: 'primary' for main calendar)
|
|
112
|
+
- time_min (string, optional): Start of time range in ISO 8601 format (e.g., '2024-01-01T00:00:00Z')
|
|
113
|
+
- time_max (string, optional): End of time range in ISO 8601 format
|
|
114
|
+
- max_results (number): Maximum events to return, 1-250 (default: 10)
|
|
115
|
+
- query (string, optional): Free text search to filter events
|
|
116
|
+
- single_events (boolean): Expand recurring events into instances (default: true)
|
|
117
|
+
- order_by ('startTime' | 'updated'): Sort order (default: 'startTime')
|
|
118
|
+
- page_token (string, optional): Token for pagination
|
|
119
|
+
- response_format ('markdown' | 'json'): Output format (default: 'markdown')
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
List of events with title, time, location, and attendees.
|
|
123
|
+
|
|
124
|
+
Examples:
|
|
125
|
+
- Today's events: time_min="2024-01-15T00:00:00Z", time_max="2024-01-16T00:00:00Z"
|
|
126
|
+
- Search meetings: query="standup"
|
|
127
|
+
- Next 7 days: time_min=(now), time_max=(now + 7 days)`,
|
|
128
|
+
inputSchema: ListEventsSchema,
|
|
129
|
+
annotations: {
|
|
130
|
+
readOnlyHint: true,
|
|
131
|
+
destructiveHint: false,
|
|
132
|
+
idempotentHint: true,
|
|
133
|
+
openWorldHint: true
|
|
134
|
+
}
|
|
135
|
+
}, async (params) => {
|
|
136
|
+
try {
|
|
137
|
+
const calendar = getCalendarClient();
|
|
138
|
+
// Default to showing future events if no time range specified
|
|
139
|
+
const timeMin = params.time_min || new Date().toISOString();
|
|
140
|
+
const response = await calendar.events.list({
|
|
141
|
+
calendarId: params.calendar_id,
|
|
142
|
+
timeMin,
|
|
143
|
+
timeMax: params.time_max,
|
|
144
|
+
maxResults: params.max_results,
|
|
145
|
+
q: params.query,
|
|
146
|
+
singleEvents: params.single_events,
|
|
147
|
+
orderBy: params.order_by,
|
|
148
|
+
pageToken: params.page_token
|
|
149
|
+
});
|
|
150
|
+
const events = (response.data.items || []).map(event => ({
|
|
151
|
+
id: event.id || "",
|
|
152
|
+
summary: event.summary || "(no title)",
|
|
153
|
+
description: event.description || undefined,
|
|
154
|
+
location: event.location || undefined,
|
|
155
|
+
start: event.start?.dateTime || event.start?.date || "",
|
|
156
|
+
end: event.end?.dateTime || event.end?.date || "",
|
|
157
|
+
startFormatted: formatDateTime(event.start?.dateTime, event.start?.date),
|
|
158
|
+
endFormatted: formatDateTime(event.end?.dateTime, event.end?.date),
|
|
159
|
+
status: event.status || "confirmed",
|
|
160
|
+
htmlLink: event.htmlLink || undefined,
|
|
161
|
+
attendees: event.attendees?.map(a => a.email || a.displayName || "Unknown") || [],
|
|
162
|
+
organizer: event.organizer?.email || event.organizer?.displayName || undefined,
|
|
163
|
+
isAllDay: !event.start?.dateTime
|
|
164
|
+
}));
|
|
165
|
+
const output = {
|
|
166
|
+
events,
|
|
167
|
+
result_count: events.length,
|
|
168
|
+
next_page_token: response.data.nextPageToken || null
|
|
169
|
+
};
|
|
170
|
+
let textOutput;
|
|
171
|
+
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
172
|
+
if (events.length === 0) {
|
|
173
|
+
textOutput = params.query
|
|
174
|
+
? `No events found matching "${params.query}".`
|
|
175
|
+
: "No events found in the specified time range.";
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const lines = [
|
|
179
|
+
"# Calendar Events",
|
|
180
|
+
"",
|
|
181
|
+
`Found ${events.length} event(s)${output.next_page_token ? " (more available)" : ""}.`,
|
|
182
|
+
""
|
|
183
|
+
];
|
|
184
|
+
for (const event of events) {
|
|
185
|
+
lines.push(formatEventForMarkdown(event), "");
|
|
186
|
+
}
|
|
187
|
+
if (output.next_page_token) {
|
|
188
|
+
lines.push(`*Use page_token="${output.next_page_token}" to load more events.*`);
|
|
189
|
+
}
|
|
190
|
+
textOutput = lines.join("\n");
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
textOutput = JSON.stringify(output, null, 2);
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
content: [{ type: "text", text: textOutput }],
|
|
198
|
+
structuredContent: output
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
return {
|
|
203
|
+
content: [{ type: "text", text: handleGoogleError(error) }]
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
server.registerTool("calendar_get_event", {
|
|
208
|
+
title: "Get Calendar Event",
|
|
209
|
+
description: `Get detailed information about a specific calendar event.
|
|
210
|
+
|
|
211
|
+
Args:
|
|
212
|
+
- calendar_id (string): Calendar ID (default: 'primary')
|
|
213
|
+
- event_id (string): The event ID to retrieve
|
|
214
|
+
- response_format ('markdown' | 'json'): Output format (default: 'markdown')
|
|
215
|
+
|
|
216
|
+
Returns:
|
|
217
|
+
Full event details including description, attendees, and conference info.`,
|
|
218
|
+
inputSchema: GetEventSchema,
|
|
219
|
+
annotations: {
|
|
220
|
+
readOnlyHint: true,
|
|
221
|
+
destructiveHint: false,
|
|
222
|
+
idempotentHint: true,
|
|
223
|
+
openWorldHint: true
|
|
224
|
+
}
|
|
225
|
+
}, async (params) => {
|
|
226
|
+
try {
|
|
227
|
+
const calendar = getCalendarClient();
|
|
228
|
+
const response = await calendar.events.get({
|
|
229
|
+
calendarId: params.calendar_id,
|
|
230
|
+
eventId: params.event_id
|
|
231
|
+
});
|
|
232
|
+
const event = response.data;
|
|
233
|
+
const output = {
|
|
234
|
+
id: event.id || "",
|
|
235
|
+
summary: event.summary || "(no title)",
|
|
236
|
+
description: event.description || undefined,
|
|
237
|
+
location: event.location || undefined,
|
|
238
|
+
start: event.start?.dateTime || event.start?.date || "",
|
|
239
|
+
end: event.end?.dateTime || event.end?.date || "",
|
|
240
|
+
startFormatted: formatDateTime(event.start?.dateTime, event.start?.date),
|
|
241
|
+
endFormatted: formatDateTime(event.end?.dateTime, event.end?.date),
|
|
242
|
+
status: event.status || "confirmed",
|
|
243
|
+
htmlLink: event.htmlLink || undefined,
|
|
244
|
+
attendees: event.attendees?.map(a => ({
|
|
245
|
+
email: a.email || "",
|
|
246
|
+
displayName: a.displayName || undefined,
|
|
247
|
+
responseStatus: a.responseStatus || "needsAction",
|
|
248
|
+
organizer: a.organizer || false
|
|
249
|
+
})) || [],
|
|
250
|
+
organizer: {
|
|
251
|
+
email: event.organizer?.email || "",
|
|
252
|
+
displayName: event.organizer?.displayName || undefined
|
|
253
|
+
},
|
|
254
|
+
created: event.created || undefined,
|
|
255
|
+
updated: event.updated || undefined,
|
|
256
|
+
recurrence: event.recurrence || undefined,
|
|
257
|
+
conferenceData: event.conferenceData ? {
|
|
258
|
+
type: event.conferenceData.conferenceSolution?.name || "Unknown",
|
|
259
|
+
entryPoints: event.conferenceData.entryPoints?.map(ep => ({
|
|
260
|
+
type: ep.entryPointType || "",
|
|
261
|
+
uri: ep.uri || ""
|
|
262
|
+
})) || []
|
|
263
|
+
} : undefined
|
|
264
|
+
};
|
|
265
|
+
let textOutput;
|
|
266
|
+
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
267
|
+
const lines = [
|
|
268
|
+
`# ${output.summary}`,
|
|
269
|
+
"",
|
|
270
|
+
`**When**: ${output.startFormatted} → ${output.endFormatted}`,
|
|
271
|
+
`**Status**: ${output.status}`
|
|
272
|
+
];
|
|
273
|
+
if (output.location) {
|
|
274
|
+
lines.push(`**Location**: ${output.location}`);
|
|
275
|
+
}
|
|
276
|
+
if (output.organizer.email) {
|
|
277
|
+
lines.push(`**Organizer**: ${output.organizer.displayName || output.organizer.email}`);
|
|
278
|
+
}
|
|
279
|
+
if (output.htmlLink) {
|
|
280
|
+
lines.push(`**Link**: ${output.htmlLink}`);
|
|
281
|
+
}
|
|
282
|
+
if (output.conferenceData) {
|
|
283
|
+
lines.push("", "## Conference Info", "");
|
|
284
|
+
lines.push(`**Type**: ${output.conferenceData.type}`);
|
|
285
|
+
for (const ep of output.conferenceData.entryPoints) {
|
|
286
|
+
lines.push(`- ${ep.type}: ${ep.uri}`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (output.attendees.length > 0) {
|
|
290
|
+
lines.push("", "## Attendees", "");
|
|
291
|
+
for (const attendee of output.attendees) {
|
|
292
|
+
const status = attendee.responseStatus === "accepted" ? "✓" :
|
|
293
|
+
attendee.responseStatus === "declined" ? "✗" :
|
|
294
|
+
attendee.responseStatus === "tentative" ? "?" : "•";
|
|
295
|
+
const name = attendee.displayName || attendee.email;
|
|
296
|
+
const role = attendee.organizer ? " (organizer)" : "";
|
|
297
|
+
lines.push(`- ${status} ${name}${role}`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (output.description) {
|
|
301
|
+
lines.push("", "## Description", "", output.description);
|
|
302
|
+
}
|
|
303
|
+
if (output.recurrence) {
|
|
304
|
+
lines.push("", "## Recurrence", "", output.recurrence.join("\n"));
|
|
305
|
+
}
|
|
306
|
+
textOutput = lines.join("\n");
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
textOutput = JSON.stringify(output, null, 2);
|
|
310
|
+
}
|
|
311
|
+
return {
|
|
312
|
+
content: [{ type: "text", text: textOutput }],
|
|
313
|
+
structuredContent: output
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
return {
|
|
318
|
+
content: [{ type: "text", text: handleGoogleError(error) }]
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../src/tools/gmail.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8EzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqf1D"}
|