integrate-sdk 0.9.23-dev.0 → 0.9.24-dev.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.
@@ -3,9 +3,6 @@
3
3
  * Fully typed interface for Microsoft Outlook integration methods
4
4
  */
5
5
  import type { MCPToolCallResponse } from "../protocol/messages.js";
6
- /**
7
- * Outlook Message
8
- */
9
6
  export interface OutlookMessage {
10
7
  id: string;
11
8
  createdDateTime: string;
@@ -19,9 +16,6 @@ export interface OutlookMessage {
19
16
  importance: "low" | "normal" | "high";
20
17
  parentFolderId?: string;
21
18
  conversationId?: string;
22
- conversationIndex?: string;
23
- isDeliveryReceiptRequested?: boolean;
24
- isReadReceiptRequested?: boolean;
25
19
  isRead?: boolean;
26
20
  isDraft?: boolean;
27
21
  webLink?: string;
@@ -59,19 +53,19 @@ export interface OutlookMessage {
59
53
  address: string;
60
54
  };
61
55
  }>;
62
- replyTo?: Array<{
63
- emailAddress: {
64
- name?: string;
65
- address: string;
66
- };
67
- }>;
68
56
  flag?: {
69
57
  flagStatus: "notFlagged" | "complete" | "flagged";
70
58
  };
71
59
  }
72
- /**
73
- * Outlook Event
74
- */
60
+ export interface OutlookMailFolder {
61
+ id: string;
62
+ displayName: string;
63
+ parentFolderId?: string;
64
+ childFolderCount: number;
65
+ unreadItemCount: number;
66
+ totalItemCount: number;
67
+ isHidden?: boolean;
68
+ }
75
69
  export interface OutlookEvent {
76
70
  id: string;
77
71
  createdDateTime: string;
@@ -92,7 +86,6 @@ export interface OutlookEvent {
92
86
  };
93
87
  location?: {
94
88
  displayName?: string;
95
- locationType?: string;
96
89
  address?: {
97
90
  street?: string;
98
91
  city?: string;
@@ -104,23 +97,8 @@ export interface OutlookEvent {
104
97
  isAllDay?: boolean;
105
98
  isCancelled?: boolean;
106
99
  isOrganizer?: boolean;
107
- recurrence?: {
108
- pattern: {
109
- type: "daily" | "weekly" | "absoluteMonthly" | "relativeMonthly" | "absoluteYearly" | "relativeYearly";
110
- interval: number;
111
- month?: number;
112
- dayOfMonth?: number;
113
- daysOfWeek?: string[];
114
- firstDayOfWeek?: string;
115
- index?: "first" | "second" | "third" | "fourth" | "last";
116
- };
117
- range: {
118
- type: "endDate" | "noEnd" | "numbered";
119
- startDate: string;
120
- endDate?: string;
121
- numberOfOccurrences?: number;
122
- };
123
- };
100
+ isOnlineMeeting?: boolean;
101
+ onlineMeetingUrl?: string;
124
102
  attendees?: Array<{
125
103
  emailAddress: {
126
104
  name?: string;
@@ -139,14 +117,48 @@ export interface OutlookEvent {
139
117
  };
140
118
  };
141
119
  webLink?: string;
142
- onlineMeetingUrl?: string;
143
120
  showAs?: "free" | "tentative" | "busy" | "oof" | "workingElsewhere" | "unknown";
144
- importance?: "low" | "normal" | "high";
145
- sensitivity?: "normal" | "personal" | "private" | "confidential";
146
121
  }
147
- /**
148
- * Outlook Contact
149
- */
122
+ export interface OutlookCalendar {
123
+ id: string;
124
+ name: string;
125
+ color: string;
126
+ isDefaultCalendar: boolean;
127
+ canShare: boolean;
128
+ canEdit: boolean;
129
+ canViewPrivateItems: boolean;
130
+ owner?: {
131
+ name?: string;
132
+ address: string;
133
+ };
134
+ }
135
+ export interface OutlookMeetingTimeSuggestion {
136
+ meetingTimeSlot: {
137
+ start: {
138
+ dateTime: string;
139
+ timeZone: string;
140
+ };
141
+ end: {
142
+ dateTime: string;
143
+ timeZone: string;
144
+ };
145
+ };
146
+ confidence: number;
147
+ organizerAvailability: string;
148
+ attendeeAvailability: Array<{
149
+ attendee: {
150
+ emailAddress: {
151
+ name?: string;
152
+ address: string;
153
+ };
154
+ };
155
+ availability: string;
156
+ }>;
157
+ locations: Array<{
158
+ displayName: string;
159
+ }>;
160
+ suggestionReason?: string;
161
+ }
150
162
  export interface OutlookContact {
151
163
  id: string;
152
164
  createdDateTime: string;
@@ -154,39 +166,16 @@ export interface OutlookContact {
154
166
  displayName?: string;
155
167
  givenName?: string;
156
168
  surname?: string;
157
- middleName?: string;
158
- nickName?: string;
159
- title?: string;
160
- yomiGivenName?: string;
161
- yomiSurname?: string;
162
- yomiCompanyName?: string;
163
- generation?: string;
164
- imAddresses?: string[];
165
169
  jobTitle?: string;
166
170
  companyName?: string;
167
171
  department?: string;
168
- officeLocation?: string;
169
- profession?: string;
170
- businessHomePage?: string;
171
- assistantName?: string;
172
- manager?: string;
173
- homePhones?: string[];
174
172
  mobilePhone?: string;
175
173
  businessPhones?: string[];
176
- spouseName?: string;
177
- personalNotes?: string;
178
- children?: string[];
174
+ homePhones?: string[];
179
175
  emailAddresses?: Array<{
180
176
  name?: string;
181
177
  address: string;
182
178
  }>;
183
- homeAddress?: {
184
- street?: string;
185
- city?: string;
186
- state?: string;
187
- countryOrRegion?: string;
188
- postalCode?: string;
189
- };
190
179
  businessAddress?: {
191
180
  street?: string;
192
181
  city?: string;
@@ -194,7 +183,7 @@ export interface OutlookContact {
194
183
  countryOrRegion?: string;
195
184
  postalCode?: string;
196
185
  };
197
- otherAddress?: {
186
+ homeAddress?: {
198
187
  street?: string;
199
188
  city?: string;
200
189
  state?: string;
@@ -202,21 +191,15 @@ export interface OutlookContact {
202
191
  postalCode?: string;
203
192
  };
204
193
  birthday?: string;
194
+ personalNotes?: string;
205
195
  }
206
- /**
207
- * Outlook Integration Client Interface
208
- * Provides type-safe methods for all Outlook operations
209
- */
210
196
  export interface OutlookIntegrationClient {
211
197
  /**
212
198
  * List messages in the mailbox
213
199
  *
214
200
  * @example
215
201
  * ```typescript
216
- * const messages = await client.outlook.listMessages({
217
- * top: 25,
218
- * filter: "isRead eq false"
219
- * });
202
+ * const messages = await client.outlook.listMessages({ top: 25, filter: "isRead eq false" });
220
203
  * ```
221
204
  */
222
205
  listMessages(params?: {
@@ -224,60 +207,184 @@ export interface OutlookIntegrationClient {
224
207
  top?: number;
225
208
  /** Number of messages to skip */
226
209
  skip?: number;
227
- /** OData filter query */
210
+ /** OData filter expression */
228
211
  filter?: string;
229
- /** OData orderby query */
230
- orderby?: string;
231
- /** OData select query */
212
+ /** OData select fields */
232
213
  select?: string;
233
- /** Folder ID (default: inbox) */
234
- folderId?: string;
214
+ /** Folder ID or well-known name (inbox, drafts, sentitems, deleteditems) */
215
+ folder_id?: string;
235
216
  }): Promise<MCPToolCallResponse>;
236
217
  /**
237
- * Get a specific message
218
+ * Get a specific message by ID
238
219
  *
239
220
  * @example
240
221
  * ```typescript
241
- * const message = await client.outlook.getMessage({
242
- * messageId: "AAMkAGI2..."
243
- * });
222
+ * const msg = await client.outlook.getMessage({ message_id: "AAMkAGI2..." });
244
223
  * ```
245
224
  */
246
225
  getMessage(params: {
247
226
  /** Message ID */
248
- messageId: string;
249
- /** OData select query */
250
- select?: string;
227
+ message_id: string;
251
228
  }): Promise<MCPToolCallResponse>;
252
229
  /**
253
- * Send a new message
230
+ * Send a new email message
254
231
  *
255
232
  * @example
256
233
  * ```typescript
257
234
  * await client.outlook.sendMessage({
235
+ * to: "alice@example.com,bob@example.com",
258
236
  * subject: "Hello",
259
- * body: "This is the message body",
260
- * toRecipients: ["recipient@example.com"]
237
+ * body: "Hi there!"
261
238
  * });
262
239
  * ```
263
240
  */
264
241
  sendMessage(params: {
242
+ /** Comma-separated recipient email addresses */
243
+ to: string;
265
244
  /** Email subject */
266
245
  subject: string;
267
- /** Email body */
246
+ /** Email body content */
268
247
  body: string;
269
248
  /** Body content type */
270
- bodyContentType?: "text" | "html";
271
- /** To recipients (email addresses) */
272
- toRecipients: string[];
273
- /** CC recipients */
274
- ccRecipients?: string[];
275
- /** BCC recipients */
276
- bccRecipients?: string[];
277
- /** Importance level */
278
- importance?: "low" | "normal" | "high";
279
- /** Whether to save to sent items */
280
- saveToSentItems?: boolean;
249
+ body_type?: "text" | "html";
250
+ /** Comma-separated CC email addresses */
251
+ cc?: string;
252
+ /** Comma-separated BCC email addresses */
253
+ bcc?: string;
254
+ }): Promise<MCPToolCallResponse>;
255
+ /**
256
+ * Search messages by keyword query
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * const results = await client.outlook.searchMessages({ query: "project update", top: 10 });
261
+ * ```
262
+ */
263
+ searchMessages(params: {
264
+ /** Search query string */
265
+ query: string;
266
+ /** Maximum number of results to return */
267
+ top?: number;
268
+ }): Promise<MCPToolCallResponse>;
269
+ /**
270
+ * Reply to a message
271
+ *
272
+ * @example
273
+ * ```typescript
274
+ * await client.outlook.replyMessage({ message_id: "AAMkAGI2...", comment: "Thanks!" });
275
+ * ```
276
+ */
277
+ replyMessage(params: {
278
+ /** Message ID to reply to */
279
+ message_id: string;
280
+ /** Reply comment text */
281
+ comment: string;
282
+ }): Promise<MCPToolCallResponse>;
283
+ /**
284
+ * Reply all to a message
285
+ *
286
+ * @example
287
+ * ```typescript
288
+ * await client.outlook.replyAllMessage({ message_id: "AAMkAGI2...", comment: "Thanks everyone!" });
289
+ * ```
290
+ */
291
+ replyAllMessage(params: {
292
+ /** Message ID to reply all to */
293
+ message_id: string;
294
+ /** Reply comment text */
295
+ comment: string;
296
+ }): Promise<MCPToolCallResponse>;
297
+ /**
298
+ * Forward a message to one or more recipients
299
+ *
300
+ * @example
301
+ * ```typescript
302
+ * await client.outlook.forwardMessage({ message_id: "AAMkAGI2...", to: "charlie@example.com" });
303
+ * ```
304
+ */
305
+ forwardMessage(params: {
306
+ /** Message ID to forward */
307
+ message_id: string;
308
+ /** Comma-separated recipient email addresses */
309
+ to: string;
310
+ /** Optional comment to include with the forward */
311
+ comment?: string;
312
+ }): Promise<MCPToolCallResponse>;
313
+ /**
314
+ * Delete a message permanently
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * await client.outlook.deleteMessage({ message_id: "AAMkAGI2..." });
319
+ * ```
320
+ */
321
+ deleteMessage(params: {
322
+ /** Message ID to delete */
323
+ message_id: string;
324
+ }): Promise<MCPToolCallResponse>;
325
+ /**
326
+ * Move a message to another folder
327
+ *
328
+ * @example
329
+ * ```typescript
330
+ * await client.outlook.moveMessage({ message_id: "AAMkAGI2...", destination_id: "deleteditems" });
331
+ * ```
332
+ */
333
+ moveMessage(params: {
334
+ /** Message ID to move */
335
+ message_id: string;
336
+ /** Destination folder ID or well-known name (inbox, drafts, sentitems, deleteditems) */
337
+ destination_id: string;
338
+ }): Promise<MCPToolCallResponse>;
339
+ /**
340
+ * Mark a message as read or unread
341
+ *
342
+ * @example
343
+ * ```typescript
344
+ * await client.outlook.markMessageRead({ message_id: "AAMkAGI2...", is_read: true });
345
+ * ```
346
+ */
347
+ markMessageRead(params: {
348
+ /** Message ID */
349
+ message_id: string;
350
+ /** True to mark as read, false to mark as unread */
351
+ is_read: boolean;
352
+ }): Promise<MCPToolCallResponse>;
353
+ /**
354
+ * Create a draft message (not sent)
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * await client.outlook.createDraft({ subject: "Draft email", body: "Work in progress..." });
359
+ * ```
360
+ */
361
+ createDraft(params: {
362
+ /** Email subject */
363
+ subject: string;
364
+ /** Email body content */
365
+ body: string;
366
+ /** Comma-separated recipient email addresses */
367
+ to?: string;
368
+ /** Comma-separated CC email addresses */
369
+ cc?: string;
370
+ /** Comma-separated BCC email addresses */
371
+ bcc?: string;
372
+ /** Body content type */
373
+ body_type?: "text" | "html";
374
+ }): Promise<MCPToolCallResponse>;
375
+ /**
376
+ * List mail folders in the mailbox
377
+ *
378
+ * @example
379
+ * ```typescript
380
+ * const folders = await client.outlook.listMailFolders();
381
+ * ```
382
+ */
383
+ listMailFolders(params?: {
384
+ /** Number of folders to return */
385
+ top?: number;
386
+ /** Whether to include hidden folders */
387
+ include_hidden_folders?: boolean;
281
388
  }): Promise<MCPToolCallResponse>;
282
389
  /**
283
390
  * List calendar events
@@ -285,149 +392,235 @@ export interface OutlookIntegrationClient {
285
392
  * @example
286
393
  * ```typescript
287
394
  * const events = await client.outlook.listEvents({
288
- * startDateTime: "2024-01-01T00:00:00Z",
289
- * endDateTime: "2024-01-31T23:59:59Z"
395
+ * start_datetime: "2024-01-01T00:00:00Z",
396
+ * end_datetime: "2024-01-31T23:59:59Z"
290
397
  * });
291
398
  * ```
292
399
  */
293
400
  listEvents(params?: {
294
- /** Start of time range (ISO 8601) */
295
- startDateTime?: string;
296
- /** End of time range (ISO 8601) */
297
- endDateTime?: string;
298
401
  /** Number of events to return */
299
402
  top?: number;
300
- /** Number of events to skip */
301
- skip?: number;
302
- /** OData filter query */
403
+ /** Start of time range (ISO 8601) */
404
+ start_datetime?: string;
405
+ /** End of time range (ISO 8601) */
406
+ end_datetime?: string;
407
+ /** OData filter expression */
303
408
  filter?: string;
304
- /** OData orderby query */
305
- orderby?: string;
306
- /** OData select query */
307
- select?: string;
308
- /** Calendar ID (default: primary) */
309
- calendarId?: string;
310
409
  }): Promise<MCPToolCallResponse>;
311
410
  /**
312
- * Get a specific event
411
+ * Get a specific calendar event by ID
313
412
  *
314
413
  * @example
315
414
  * ```typescript
316
- * const event = await client.outlook.getEvent({
317
- * eventId: "AAMkAGI2..."
318
- * });
415
+ * const event = await client.outlook.getEvent({ event_id: "AAMkAGI2..." });
319
416
  * ```
320
417
  */
321
418
  getEvent(params: {
322
419
  /** Event ID */
323
- eventId: string;
324
- /** OData select query */
325
- select?: string;
326
- /** Calendar ID (default: primary) */
327
- calendarId?: string;
420
+ event_id: string;
328
421
  }): Promise<MCPToolCallResponse>;
329
422
  /**
330
423
  * Create a new calendar event
331
424
  *
332
425
  * @example
333
426
  * ```typescript
334
- * const event = await client.outlook.createEvent({
335
- * subject: "Team Meeting",
336
- * start: { dateTime: "2024-01-15T10:00:00", timeZone: "America/Los_Angeles" },
337
- * end: { dateTime: "2024-01-15T11:00:00", timeZone: "America/Los_Angeles" }
427
+ * await client.outlook.createEvent({
428
+ * subject: "Team Sync",
429
+ * start: "2024-01-15T10:00:00",
430
+ * end: "2024-01-15T11:00:00",
431
+ * timezone: "America/Los_Angeles"
338
432
  * });
339
433
  * ```
340
434
  */
341
435
  createEvent(params: {
342
- /** Event subject */
436
+ /** Event subject/title */
343
437
  subject: string;
438
+ /** Start datetime (ISO 8601) */
439
+ start: string;
440
+ /** End datetime (ISO 8601) */
441
+ end: string;
442
+ /** Timezone for start/end (e.g. "America/Los_Angeles") */
443
+ timezone?: string;
344
444
  /** Event body/description */
345
445
  body?: string;
346
- /** Body content type */
347
- bodyContentType?: "text" | "html";
348
- /** Event start */
349
- start: {
350
- dateTime: string;
351
- timeZone: string;
352
- };
353
- /** Event end */
354
- end: {
355
- dateTime: string;
356
- timeZone: string;
357
- };
358
446
  /** Event location */
359
447
  location?: string;
360
- /** Whether it's an all-day event */
361
- isAllDay?: boolean;
362
- /** Attendees (email addresses) */
363
- attendees?: string[];
364
- /** Whether to request responses */
365
- responseRequested?: boolean;
366
- /** Show as status */
367
- showAs?: "free" | "tentative" | "busy" | "oof" | "workingElsewhere";
368
- /** Calendar ID (default: primary) */
369
- calendarId?: string;
448
+ /** Comma-separated attendee email addresses */
449
+ attendees?: string;
450
+ /** Whether to create a Teams online meeting */
451
+ is_online_meeting?: boolean;
452
+ }): Promise<MCPToolCallResponse>;
453
+ /**
454
+ * Update an existing calendar event
455
+ *
456
+ * @example
457
+ * ```typescript
458
+ * await client.outlook.updateEvent({ event_id: "AAMkAGI2...", subject: "Updated Title" });
459
+ * ```
460
+ */
461
+ updateEvent(params: {
462
+ /** Event ID to update */
463
+ event_id: string;
464
+ /** New subject/title */
465
+ subject?: string;
466
+ /** New start datetime (ISO 8601) */
467
+ start?: string;
468
+ /** New end datetime (ISO 8601) */
469
+ end?: string;
470
+ /** Timezone for start/end */
471
+ timezone?: string;
472
+ /** New body/description */
473
+ body?: string;
474
+ /** New location */
475
+ location?: string;
476
+ /** Comma-separated attendee email addresses */
477
+ attendees?: string;
370
478
  }): Promise<MCPToolCallResponse>;
371
479
  /**
372
- * List contacts
480
+ * Delete a calendar event
373
481
  *
374
482
  * @example
375
483
  * ```typescript
376
- * const contacts = await client.outlook.listContacts({
377
- * top: 50
484
+ * await client.outlook.deleteEvent({ event_id: "AAMkAGI2..." });
485
+ * ```
486
+ */
487
+ deleteEvent(params: {
488
+ /** Event ID to delete */
489
+ event_id: string;
490
+ }): Promise<MCPToolCallResponse>;
491
+ /**
492
+ * List all calendars for the authenticated user
493
+ *
494
+ * @example
495
+ * ```typescript
496
+ * const calendars = await client.outlook.listCalendars();
497
+ * ```
498
+ */
499
+ listCalendars(params?: Record<string, never>): Promise<MCPToolCallResponse>;
500
+ /**
501
+ * Accept a calendar event invitation
502
+ *
503
+ * @example
504
+ * ```typescript
505
+ * await client.outlook.acceptEvent({ event_id: "AAMkAGI2...", send_response: true });
506
+ * ```
507
+ */
508
+ acceptEvent(params: {
509
+ /** Event ID to accept */
510
+ event_id: string;
511
+ /** Optional response comment */
512
+ comment?: string;
513
+ /** Whether to send a response email to the organizer */
514
+ send_response?: boolean;
515
+ }): Promise<MCPToolCallResponse>;
516
+ /**
517
+ * Decline a calendar event invitation
518
+ *
519
+ * @example
520
+ * ```typescript
521
+ * await client.outlook.declineEvent({ event_id: "AAMkAGI2...", comment: "Can't make it" });
522
+ * ```
523
+ */
524
+ declineEvent(params: {
525
+ /** Event ID to decline */
526
+ event_id: string;
527
+ /** Optional response comment */
528
+ comment?: string;
529
+ /** Whether to send a response email to the organizer */
530
+ send_response?: boolean;
531
+ }): Promise<MCPToolCallResponse>;
532
+ /**
533
+ * Tentatively accept a calendar event invitation
534
+ *
535
+ * @example
536
+ * ```typescript
537
+ * await client.outlook.tentativelyAcceptEvent({ event_id: "AAMkAGI2..." });
538
+ * ```
539
+ */
540
+ tentativelyAcceptEvent(params: {
541
+ /** Event ID to tentatively accept */
542
+ event_id: string;
543
+ /** Optional response comment */
544
+ comment?: string;
545
+ /** Whether to send a response email to the organizer */
546
+ send_response?: boolean;
547
+ }): Promise<MCPToolCallResponse>;
548
+ /**
549
+ * Find available meeting times for a set of attendees
550
+ *
551
+ * @example
552
+ * ```typescript
553
+ * const suggestions = await client.outlook.findMeetingTimes({
554
+ * attendees: "alice@example.com,bob@example.com",
555
+ * duration_minutes: 60
378
556
  * });
379
557
  * ```
380
558
  */
381
- listContacts(params?: {
382
- /** Number of contacts to return */
383
- top?: number;
384
- /** Number of contacts to skip */
385
- skip?: number;
386
- /** OData filter query */
387
- filter?: string;
388
- /** OData orderby query */
389
- orderby?: string;
390
- /** OData select query */
391
- select?: string;
392
- /** Contact folder ID */
393
- folderId?: string;
559
+ findMeetingTimes(params: {
560
+ /** Comma-separated attendee email addresses */
561
+ attendees: string;
562
+ /** Required meeting duration in minutes */
563
+ duration_minutes: number;
564
+ /** Start of search window (ISO 8601) */
565
+ time_constraint_start?: string;
566
+ /** End of search window (ISO 8601) */
567
+ time_constraint_end?: string;
568
+ /** Timezone for the results */
569
+ timezone?: string;
394
570
  }): Promise<MCPToolCallResponse>;
395
571
  /**
396
- * Get a specific contact
572
+ * Get free/busy schedule for a set of users or resources
397
573
  *
398
574
  * @example
399
575
  * ```typescript
400
- * const contact = await client.outlook.getContact({
401
- * contactId: "AAMkAGI2..."
576
+ * const schedule = await client.outlook.getSchedule({
577
+ * schedules: "alice@example.com,bob@example.com",
578
+ * start_time: "2024-01-15T08:00:00",
579
+ * end_time: "2024-01-15T18:00:00"
402
580
  * });
403
581
  * ```
404
582
  */
405
- getContact(params: {
406
- /** Contact ID */
407
- contactId: string;
408
- /** OData select query */
583
+ getSchedule(params: {
584
+ /** Comma-separated email addresses to fetch schedules for */
585
+ schedules: string;
586
+ /** Start of the time window (ISO 8601) */
587
+ start_time: string;
588
+ /** End of the time window (ISO 8601) */
589
+ end_time: string;
590
+ /** Timezone for start/end times */
591
+ timezone?: string;
592
+ /** Granularity of availability view in minutes (default: 30) */
593
+ availability_view_interval?: number;
594
+ }): Promise<MCPToolCallResponse>;
595
+ /**
596
+ * List contacts in the address book
597
+ *
598
+ * @example
599
+ * ```typescript
600
+ * const contacts = await client.outlook.listContacts({ top: 50 });
601
+ * ```
602
+ */
603
+ listContacts(params?: {
604
+ /** Number of contacts to return */
605
+ top?: number;
606
+ /** Number of contacts to skip */
607
+ skip?: number;
608
+ /** OData filter expression */
609
+ filter?: string;
610
+ /** OData select fields */
409
611
  select?: string;
410
612
  }): Promise<MCPToolCallResponse>;
411
613
  /**
412
- * Search across messages, events, and contacts
614
+ * Get a specific contact by ID
413
615
  *
414
616
  * @example
415
617
  * ```typescript
416
- * const results = await client.outlook.search({
417
- * query: "important meeting",
418
- * entityTypes: ["message", "event"]
419
- * });
618
+ * const contact = await client.outlook.getContact({ contact_id: "AAMkAGI2..." });
420
619
  * ```
421
620
  */
422
- search(params: {
423
- /** Search query */
424
- query: string;
425
- /** Entity types to search */
426
- entityTypes?: Array<"message" | "event" | "contact">;
427
- /** Maximum results per entity type */
428
- size?: number;
429
- /** Start index for pagination */
430
- from?: number;
621
+ getContact(params: {
622
+ /** Contact ID */
623
+ contact_id: string;
431
624
  }): Promise<MCPToolCallResponse>;
432
625
  }
433
626
  //# sourceMappingURL=outlook-client.d.ts.map