@jbctechsolutions/mcp-office365 2.5.1

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 (339) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +667 -0
  3. package/dist/applescript/account-repository.d.ts +30 -0
  4. package/dist/applescript/account-repository.d.ts.map +1 -0
  5. package/dist/applescript/account-repository.js +38 -0
  6. package/dist/applescript/account-repository.js.map +1 -0
  7. package/dist/applescript/account-scripts.d.ts +21 -0
  8. package/dist/applescript/account-scripts.d.ts.map +1 -0
  9. package/dist/applescript/account-scripts.js +180 -0
  10. package/dist/applescript/account-scripts.js.map +1 -0
  11. package/dist/applescript/calendar-manager.d.ts +44 -0
  12. package/dist/applescript/calendar-manager.d.ts.map +1 -0
  13. package/dist/applescript/calendar-manager.js +92 -0
  14. package/dist/applescript/calendar-manager.js.map +1 -0
  15. package/dist/applescript/calendar-writer.d.ts +36 -0
  16. package/dist/applescript/calendar-writer.d.ts.map +1 -0
  17. package/dist/applescript/calendar-writer.js +94 -0
  18. package/dist/applescript/calendar-writer.js.map +1 -0
  19. package/dist/applescript/content-readers.d.ts +114 -0
  20. package/dist/applescript/content-readers.d.ts.map +1 -0
  21. package/dist/applescript/content-readers.js +328 -0
  22. package/dist/applescript/content-readers.js.map +1 -0
  23. package/dist/applescript/executor.d.ts +60 -0
  24. package/dist/applescript/executor.d.ts.map +1 -0
  25. package/dist/applescript/executor.js +173 -0
  26. package/dist/applescript/executor.js.map +1 -0
  27. package/dist/applescript/index.d.ts +20 -0
  28. package/dist/applescript/index.d.ts.map +1 -0
  29. package/dist/applescript/index.js +29 -0
  30. package/dist/applescript/index.js.map +1 -0
  31. package/dist/applescript/mail-sender.d.ts +38 -0
  32. package/dist/applescript/mail-sender.d.ts.map +1 -0
  33. package/dist/applescript/mail-sender.js +67 -0
  34. package/dist/applescript/mail-sender.js.map +1 -0
  35. package/dist/applescript/parser.d.ts +235 -0
  36. package/dist/applescript/parser.d.ts.map +1 -0
  37. package/dist/applescript/parser.js +496 -0
  38. package/dist/applescript/parser.js.map +1 -0
  39. package/dist/applescript/repository.d.ts +64 -0
  40. package/dist/applescript/repository.d.ts.map +1 -0
  41. package/dist/applescript/repository.js +444 -0
  42. package/dist/applescript/repository.js.map +1 -0
  43. package/dist/applescript/scripts.d.ts +265 -0
  44. package/dist/applescript/scripts.d.ts.map +1 -0
  45. package/dist/applescript/scripts.js +1483 -0
  46. package/dist/applescript/scripts.js.map +1 -0
  47. package/dist/approval/hash.d.ts +87 -0
  48. package/dist/approval/hash.d.ts.map +1 -0
  49. package/dist/approval/hash.js +102 -0
  50. package/dist/approval/hash.js.map +1 -0
  51. package/dist/approval/index.d.ts +13 -0
  52. package/dist/approval/index.d.ts.map +1 -0
  53. package/dist/approval/index.js +7 -0
  54. package/dist/approval/index.js.map +1 -0
  55. package/dist/approval/token-manager.d.ts +51 -0
  56. package/dist/approval/token-manager.d.ts.map +1 -0
  57. package/dist/approval/token-manager.js +111 -0
  58. package/dist/approval/token-manager.js.map +1 -0
  59. package/dist/approval/types.d.ts +44 -0
  60. package/dist/approval/types.d.ts.map +1 -0
  61. package/dist/approval/types.js +6 -0
  62. package/dist/approval/types.js.map +1 -0
  63. package/dist/cli.d.ts +30 -0
  64. package/dist/cli.d.ts.map +1 -0
  65. package/dist/cli.js +143 -0
  66. package/dist/cli.js.map +1 -0
  67. package/dist/config.d.ts +27 -0
  68. package/dist/config.d.ts.map +1 -0
  69. package/dist/config.js +42 -0
  70. package/dist/config.js.map +1 -0
  71. package/dist/database/connection.d.ts +77 -0
  72. package/dist/database/connection.d.ts.map +1 -0
  73. package/dist/database/connection.js +130 -0
  74. package/dist/database/connection.js.map +1 -0
  75. package/dist/database/index.d.ts +11 -0
  76. package/dist/database/index.d.ts.map +1 -0
  77. package/dist/database/index.js +11 -0
  78. package/dist/database/index.js.map +1 -0
  79. package/dist/database/queries.d.ts +93 -0
  80. package/dist/database/queries.d.ts.map +1 -0
  81. package/dist/database/queries.js +430 -0
  82. package/dist/database/queries.js.map +1 -0
  83. package/dist/database/repository.d.ts +198 -0
  84. package/dist/database/repository.d.ts.map +1 -0
  85. package/dist/database/repository.js +199 -0
  86. package/dist/database/repository.js.map +1 -0
  87. package/dist/graph/attachments.d.ts +72 -0
  88. package/dist/graph/attachments.d.ts.map +1 -0
  89. package/dist/graph/attachments.js +207 -0
  90. package/dist/graph/attachments.js.map +1 -0
  91. package/dist/graph/auth/config.d.ts +34 -0
  92. package/dist/graph/auth/config.d.ts.map +1 -0
  93. package/dist/graph/auth/config.js +78 -0
  94. package/dist/graph/auth/config.js.map +1 -0
  95. package/dist/graph/auth/device-code-flow.d.ts +55 -0
  96. package/dist/graph/auth/device-code-flow.d.ts.map +1 -0
  97. package/dist/graph/auth/device-code-flow.js +180 -0
  98. package/dist/graph/auth/device-code-flow.js.map +1 -0
  99. package/dist/graph/auth/index.d.ts +13 -0
  100. package/dist/graph/auth/index.d.ts.map +1 -0
  101. package/dist/graph/auth/index.js +13 -0
  102. package/dist/graph/auth/index.js.map +1 -0
  103. package/dist/graph/auth/token-cache.d.ts +41 -0
  104. package/dist/graph/auth/token-cache.d.ts.map +1 -0
  105. package/dist/graph/auth/token-cache.js +105 -0
  106. package/dist/graph/auth/token-cache.js.map +1 -0
  107. package/dist/graph/client/batch.d.ts +38 -0
  108. package/dist/graph/client/batch.d.ts.map +1 -0
  109. package/dist/graph/client/batch.js +33 -0
  110. package/dist/graph/client/batch.js.map +1 -0
  111. package/dist/graph/client/cache.d.ts +64 -0
  112. package/dist/graph/client/cache.d.ts.map +1 -0
  113. package/dist/graph/client/cache.js +108 -0
  114. package/dist/graph/client/cache.js.map +1 -0
  115. package/dist/graph/client/graph-client.d.ts +630 -0
  116. package/dist/graph/client/graph-client.d.ts.map +1 -0
  117. package/dist/graph/client/graph-client.js +1771 -0
  118. package/dist/graph/client/graph-client.js.map +1 -0
  119. package/dist/graph/client/index.d.ts +12 -0
  120. package/dist/graph/client/index.d.ts.map +1 -0
  121. package/dist/graph/client/index.js +12 -0
  122. package/dist/graph/client/index.js.map +1 -0
  123. package/dist/graph/content-readers.d.ts +106 -0
  124. package/dist/graph/content-readers.d.ts.map +1 -0
  125. package/dist/graph/content-readers.js +321 -0
  126. package/dist/graph/content-readers.js.map +1 -0
  127. package/dist/graph/index.d.ts +18 -0
  128. package/dist/graph/index.d.ts.map +1 -0
  129. package/dist/graph/index.js +23 -0
  130. package/dist/graph/index.js.map +1 -0
  131. package/dist/graph/mailbox-adapter.d.ts +30 -0
  132. package/dist/graph/mailbox-adapter.d.ts.map +1 -0
  133. package/dist/graph/mailbox-adapter.js +59 -0
  134. package/dist/graph/mailbox-adapter.js.map +1 -0
  135. package/dist/graph/mappers/contact-mapper.d.ts +14 -0
  136. package/dist/graph/mappers/contact-mapper.d.ts.map +1 -0
  137. package/dist/graph/mappers/contact-mapper.js +20 -0
  138. package/dist/graph/mappers/contact-mapper.js.map +1 -0
  139. package/dist/graph/mappers/email-mapper.d.ts +14 -0
  140. package/dist/graph/mappers/email-mapper.d.ts.map +1 -0
  141. package/dist/graph/mappers/email-mapper.js +44 -0
  142. package/dist/graph/mappers/email-mapper.js.map +1 -0
  143. package/dist/graph/mappers/event-mapper.d.ts +14 -0
  144. package/dist/graph/mappers/event-mapper.d.ts.map +1 -0
  145. package/dist/graph/mappers/event-mapper.js +31 -0
  146. package/dist/graph/mappers/event-mapper.js.map +1 -0
  147. package/dist/graph/mappers/folder-mapper.d.ts +22 -0
  148. package/dist/graph/mappers/folder-mapper.d.ts.map +1 -0
  149. package/dist/graph/mappers/folder-mapper.js +51 -0
  150. package/dist/graph/mappers/folder-mapper.js.map +1 -0
  151. package/dist/graph/mappers/index.d.ts +16 -0
  152. package/dist/graph/mappers/index.d.ts.map +1 -0
  153. package/dist/graph/mappers/index.js +16 -0
  154. package/dist/graph/mappers/index.js.map +1 -0
  155. package/dist/graph/mappers/task-mapper.d.ts +20 -0
  156. package/dist/graph/mappers/task-mapper.d.ts.map +1 -0
  157. package/dist/graph/mappers/task-mapper.js +27 -0
  158. package/dist/graph/mappers/task-mapper.js.map +1 -0
  159. package/dist/graph/mappers/utils.d.ts +97 -0
  160. package/dist/graph/mappers/utils.d.ts.map +1 -0
  161. package/dist/graph/mappers/utils.js +186 -0
  162. package/dist/graph/mappers/utils.js.map +1 -0
  163. package/dist/graph/repository.d.ts +1104 -0
  164. package/dist/graph/repository.d.ts.map +1 -0
  165. package/dist/graph/repository.js +2999 -0
  166. package/dist/graph/repository.js.map +1 -0
  167. package/dist/index.d.ts +21 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +6052 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/parsers/html-stripper.d.ts +41 -0
  172. package/dist/parsers/html-stripper.d.ts.map +1 -0
  173. package/dist/parsers/html-stripper.js +179 -0
  174. package/dist/parsers/html-stripper.js.map +1 -0
  175. package/dist/parsers/index.d.ts +12 -0
  176. package/dist/parsers/index.d.ts.map +1 -0
  177. package/dist/parsers/index.js +12 -0
  178. package/dist/parsers/index.js.map +1 -0
  179. package/dist/parsers/olk15.d.ts +87 -0
  180. package/dist/parsers/olk15.d.ts.map +1 -0
  181. package/dist/parsers/olk15.js +368 -0
  182. package/dist/parsers/olk15.js.map +1 -0
  183. package/dist/signature.d.ts +22 -0
  184. package/dist/signature.d.ts.map +1 -0
  185. package/dist/signature.js +89 -0
  186. package/dist/signature.js.map +1 -0
  187. package/dist/tools/calendar-permissions.d.ts +79 -0
  188. package/dist/tools/calendar-permissions.d.ts.map +1 -0
  189. package/dist/tools/calendar-permissions.js +121 -0
  190. package/dist/tools/calendar-permissions.js.map +1 -0
  191. package/dist/tools/calendar.d.ts +208 -0
  192. package/dist/tools/calendar.d.ts.map +1 -0
  193. package/dist/tools/calendar.js +247 -0
  194. package/dist/tools/calendar.js.map +1 -0
  195. package/dist/tools/categories.d.ts +94 -0
  196. package/dist/tools/categories.d.ts.map +1 -0
  197. package/dist/tools/categories.js +117 -0
  198. package/dist/tools/categories.js.map +1 -0
  199. package/dist/tools/checklist-items.d.ts +89 -0
  200. package/dist/tools/checklist-items.d.ts.map +1 -0
  201. package/dist/tools/checklist-items.js +140 -0
  202. package/dist/tools/checklist-items.js.map +1 -0
  203. package/dist/tools/contacts.d.ts +94 -0
  204. package/dist/tools/contacts.d.ts.map +1 -0
  205. package/dist/tools/contacts.js +134 -0
  206. package/dist/tools/contacts.js.map +1 -0
  207. package/dist/tools/excel.d.ts +96 -0
  208. package/dist/tools/excel.d.ts.map +1 -0
  209. package/dist/tools/excel.js +165 -0
  210. package/dist/tools/excel.js.map +1 -0
  211. package/dist/tools/focused-overrides.d.ts +70 -0
  212. package/dist/tools/focused-overrides.d.ts.map +1 -0
  213. package/dist/tools/focused-overrides.js +117 -0
  214. package/dist/tools/focused-overrides.js.map +1 -0
  215. package/dist/tools/index.d.ts +22 -0
  216. package/dist/tools/index.d.ts.map +1 -0
  217. package/dist/tools/index.js +34 -0
  218. package/dist/tools/index.js.map +1 -0
  219. package/dist/tools/linked-resources.d.ts +74 -0
  220. package/dist/tools/linked-resources.d.ts.map +1 -0
  221. package/dist/tools/linked-resources.js +122 -0
  222. package/dist/tools/linked-resources.js.map +1 -0
  223. package/dist/tools/mail-rules.d.ts +98 -0
  224. package/dist/tools/mail-rules.d.ts.map +1 -0
  225. package/dist/tools/mail-rules.js +169 -0
  226. package/dist/tools/mail-rules.js.map +1 -0
  227. package/dist/tools/mail-send.d.ts +314 -0
  228. package/dist/tools/mail-send.d.ts.map +1 -0
  229. package/dist/tools/mail-send.js +555 -0
  230. package/dist/tools/mail-send.js.map +1 -0
  231. package/dist/tools/mail.d.ts +127 -0
  232. package/dist/tools/mail.d.ts.map +1 -0
  233. package/dist/tools/mail.js +311 -0
  234. package/dist/tools/mail.js.map +1 -0
  235. package/dist/tools/mailbox-organization.d.ts +301 -0
  236. package/dist/tools/mailbox-organization.d.ts.map +1 -0
  237. package/dist/tools/mailbox-organization.js +541 -0
  238. package/dist/tools/mailbox-organization.js.map +1 -0
  239. package/dist/tools/meetings.d.ts +114 -0
  240. package/dist/tools/meetings.d.ts.map +1 -0
  241. package/dist/tools/meetings.js +110 -0
  242. package/dist/tools/meetings.js.map +1 -0
  243. package/dist/tools/notes.d.ts +74 -0
  244. package/dist/tools/notes.d.ts.map +1 -0
  245. package/dist/tools/notes.js +136 -0
  246. package/dist/tools/notes.js.map +1 -0
  247. package/dist/tools/onedrive.d.ts +194 -0
  248. package/dist/tools/onedrive.d.ts.map +1 -0
  249. package/dist/tools/onedrive.js +257 -0
  250. package/dist/tools/onedrive.js.map +1 -0
  251. package/dist/tools/people.d.ts +129 -0
  252. package/dist/tools/people.d.ts.map +1 -0
  253. package/dist/tools/people.js +195 -0
  254. package/dist/tools/people.js.map +1 -0
  255. package/dist/tools/planner-visualization.d.ts +91 -0
  256. package/dist/tools/planner-visualization.d.ts.map +1 -0
  257. package/dist/tools/planner-visualization.js +192 -0
  258. package/dist/tools/planner-visualization.js.map +1 -0
  259. package/dist/tools/planner.d.ts +288 -0
  260. package/dist/tools/planner.d.ts.map +1 -0
  261. package/dist/tools/planner.js +368 -0
  262. package/dist/tools/planner.js.map +1 -0
  263. package/dist/tools/scheduling.d.ts +49 -0
  264. package/dist/tools/scheduling.d.ts.map +1 -0
  265. package/dist/tools/scheduling.js +115 -0
  266. package/dist/tools/scheduling.js.map +1 -0
  267. package/dist/tools/sharepoint.d.ts +115 -0
  268. package/dist/tools/sharepoint.d.ts.map +1 -0
  269. package/dist/tools/sharepoint.js +99 -0
  270. package/dist/tools/sharepoint.js.map +1 -0
  271. package/dist/tools/task-attachments.d.ts +74 -0
  272. package/dist/tools/task-attachments.d.ts.map +1 -0
  273. package/dist/tools/task-attachments.js +122 -0
  274. package/dist/tools/task-attachments.js.map +1 -0
  275. package/dist/tools/tasks.d.ts +74 -0
  276. package/dist/tools/tasks.d.ts.map +1 -0
  277. package/dist/tools/tasks.js +126 -0
  278. package/dist/tools/tasks.js.map +1 -0
  279. package/dist/tools/teams.d.ts +389 -0
  280. package/dist/tools/teams.d.ts.map +1 -0
  281. package/dist/tools/teams.js +546 -0
  282. package/dist/tools/teams.js.map +1 -0
  283. package/dist/types/calendar.d.ts +60 -0
  284. package/dist/types/calendar.d.ts.map +1 -0
  285. package/dist/types/calendar.js +15 -0
  286. package/dist/types/calendar.js.map +1 -0
  287. package/dist/types/contacts.d.ts +96 -0
  288. package/dist/types/contacts.d.ts.map +1 -0
  289. package/dist/types/contacts.js +41 -0
  290. package/dist/types/contacts.js.map +1 -0
  291. package/dist/types/index.d.ts +15 -0
  292. package/dist/types/index.d.ts.map +1 -0
  293. package/dist/types/index.js +16 -0
  294. package/dist/types/index.js.map +1 -0
  295. package/dist/types/mail.d.ts +108 -0
  296. package/dist/types/mail.d.ts.map +1 -0
  297. package/dist/types/mail.js +40 -0
  298. package/dist/types/mail.js.map +1 -0
  299. package/dist/types/notes.d.ts +26 -0
  300. package/dist/types/notes.d.ts.map +1 -0
  301. package/dist/types/notes.js +6 -0
  302. package/dist/types/notes.js.map +1 -0
  303. package/dist/types/tasks.d.ts +31 -0
  304. package/dist/types/tasks.d.ts.map +1 -0
  305. package/dist/types/tasks.js +6 -0
  306. package/dist/types/tasks.js.map +1 -0
  307. package/dist/utils/dates.d.ts +66 -0
  308. package/dist/utils/dates.d.ts.map +1 -0
  309. package/dist/utils/dates.js +94 -0
  310. package/dist/utils/dates.js.map +1 -0
  311. package/dist/utils/errors.d.ts +218 -0
  312. package/dist/utils/errors.d.ts.map +1 -0
  313. package/dist/utils/errors.js +306 -0
  314. package/dist/utils/errors.js.map +1 -0
  315. package/dist/utils/index.d.ts +10 -0
  316. package/dist/utils/index.d.ts.map +1 -0
  317. package/dist/utils/index.js +10 -0
  318. package/dist/utils/index.js.map +1 -0
  319. package/dist/visualization/html.d.ts +26 -0
  320. package/dist/visualization/html.d.ts.map +1 -0
  321. package/dist/visualization/html.js +306 -0
  322. package/dist/visualization/html.js.map +1 -0
  323. package/dist/visualization/markdown.d.ts +25 -0
  324. package/dist/visualization/markdown.d.ts.map +1 -0
  325. package/dist/visualization/markdown.js +186 -0
  326. package/dist/visualization/markdown.js.map +1 -0
  327. package/dist/visualization/mermaid.d.ts +25 -0
  328. package/dist/visualization/mermaid.d.ts.map +1 -0
  329. package/dist/visualization/mermaid.js +158 -0
  330. package/dist/visualization/mermaid.js.map +1 -0
  331. package/dist/visualization/svg.d.ts +25 -0
  332. package/dist/visualization/svg.d.ts.map +1 -0
  333. package/dist/visualization/svg.js +282 -0
  334. package/dist/visualization/svg.js.map +1 -0
  335. package/dist/visualization/types.d.ts +43 -0
  336. package/dist/visualization/types.d.ts.map +1 -0
  337. package/dist/visualization/types.js +34 -0
  338. package/dist/visualization/types.js.map +1 -0
  339. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel.js","sourceRoot":"","sources":["../../src/tools/excel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Focused inbox override management MCP tools.
7
+ *
8
+ * Provides tools for managing Outlook focused inbox overrides with a two-phase
9
+ * approval pattern for destructive delete operations.
10
+ */
11
+ import { z } from 'zod';
12
+ import type { ApprovalTokenManager } from '../approval/index.js';
13
+ export declare const CreateFocusedOverrideInput: z.ZodObject<{
14
+ sender_address: z.ZodString;
15
+ classify_as: z.ZodEnum<{
16
+ focused: "focused";
17
+ other: "other";
18
+ }>;
19
+ }, z.core.$strict>;
20
+ export declare const PrepareDeleteFocusedOverrideInput: z.ZodObject<{
21
+ override_id: z.ZodNumber;
22
+ }, z.core.$strict>;
23
+ export declare const ConfirmDeleteFocusedOverrideInput: z.ZodObject<{
24
+ approval_token: z.ZodString;
25
+ }, z.core.$strict>;
26
+ export type CreateFocusedOverrideParams = z.infer<typeof CreateFocusedOverrideInput>;
27
+ export type PrepareDeleteFocusedOverrideParams = z.infer<typeof PrepareDeleteFocusedOverrideInput>;
28
+ export type ConfirmDeleteFocusedOverrideParams = z.infer<typeof ConfirmDeleteFocusedOverrideInput>;
29
+ export interface IFocusedOverridesRepository {
30
+ listFocusedOverridesAsync(): Promise<Array<{
31
+ id: number;
32
+ senderAddress: string;
33
+ classifyAs: string;
34
+ }>>;
35
+ createFocusedOverrideAsync(senderAddress: string, classifyAs: 'focused' | 'other'): Promise<number>;
36
+ deleteFocusedOverrideAsync(overrideId: number): Promise<void>;
37
+ }
38
+ /**
39
+ * Focused inbox override tools with two-phase approval for delete operations.
40
+ */
41
+ export declare class FocusedOverridesTools {
42
+ private readonly repo;
43
+ private readonly tokenManager;
44
+ constructor(repo: IFocusedOverridesRepository, tokenManager: ApprovalTokenManager);
45
+ listFocusedOverrides(): Promise<{
46
+ content: Array<{
47
+ type: 'text';
48
+ text: string;
49
+ }>;
50
+ }>;
51
+ createFocusedOverride(params: CreateFocusedOverrideParams): Promise<{
52
+ content: Array<{
53
+ type: 'text';
54
+ text: string;
55
+ }>;
56
+ }>;
57
+ prepareDeleteFocusedOverride(params: PrepareDeleteFocusedOverrideParams): {
58
+ content: Array<{
59
+ type: 'text';
60
+ text: string;
61
+ }>;
62
+ };
63
+ confirmDeleteFocusedOverride(params: ConfirmDeleteFocusedOverrideParams): Promise<{
64
+ content: Array<{
65
+ type: 'text';
66
+ text: string;
67
+ }>;
68
+ }>;
69
+ }
70
+ //# sourceMappingURL=focused-overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focused-overrides.d.ts","sourceRoot":"","sources":["../../src/tools/focused-overrides.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMjE,eAAO,MAAM,0BAA0B;;;;;;kBAGrC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;kBAE5C,CAAC;AAEH,eAAO,MAAM,iCAAiC;;kBAE5C,CAAC;AAMH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACrF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AACnG,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAMnG,MAAM,WAAW,2BAA2B;IAC1C,yBAAyB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvG,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpG,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAMD;;GAEG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,IAAI,EAAE,2BAA2B,EACjC,YAAY,EAAE,oBAAoB;IAG/C,oBAAoB,IAAI,OAAO,CAAC;QACpC,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUI,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC;QACxE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUF,4BAA4B,CAAC,MAAM,EAAE,kCAAkC,GAAG;QACxE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD;IAqBK,4BAA4B,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC;QACtF,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;CA2CH"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Focused inbox override management MCP tools.
7
+ *
8
+ * Provides tools for managing Outlook focused inbox overrides with a two-phase
9
+ * approval pattern for destructive delete operations.
10
+ */
11
+ import { z } from 'zod';
12
+ // =============================================================================
13
+ // Input Schemas
14
+ // =============================================================================
15
+ export const CreateFocusedOverrideInput = z.strictObject({
16
+ sender_address: z.string().email().describe('Sender email address'),
17
+ classify_as: z.enum(['focused', 'other']).describe('Classification'),
18
+ });
19
+ export const PrepareDeleteFocusedOverrideInput = z.strictObject({
20
+ override_id: z.number().int().positive().describe('Override ID to delete'),
21
+ });
22
+ export const ConfirmDeleteFocusedOverrideInput = z.strictObject({
23
+ approval_token: z.string().describe('Approval token from prepare_delete_focused_override'),
24
+ });
25
+ // =============================================================================
26
+ // Focused Overrides Tools
27
+ // =============================================================================
28
+ /**
29
+ * Focused inbox override tools with two-phase approval for delete operations.
30
+ */
31
+ export class FocusedOverridesTools {
32
+ repo;
33
+ tokenManager;
34
+ constructor(repo, tokenManager) {
35
+ this.repo = repo;
36
+ this.tokenManager = tokenManager;
37
+ }
38
+ async listFocusedOverrides() {
39
+ const overrides = await this.repo.listFocusedOverridesAsync();
40
+ return {
41
+ content: [{
42
+ type: 'text',
43
+ text: JSON.stringify({ overrides }, null, 2),
44
+ }],
45
+ };
46
+ }
47
+ async createFocusedOverride(params) {
48
+ const overrideId = await this.repo.createFocusedOverrideAsync(params.sender_address, params.classify_as);
49
+ return {
50
+ content: [{
51
+ type: 'text',
52
+ text: JSON.stringify({ success: true, override_id: overrideId, message: 'Focused override created' }, null, 2),
53
+ }],
54
+ };
55
+ }
56
+ prepareDeleteFocusedOverride(params) {
57
+ const token = this.tokenManager.generateToken({
58
+ operation: 'delete_focused_override',
59
+ targetType: 'focused_override',
60
+ targetId: params.override_id,
61
+ targetHash: String(params.override_id),
62
+ });
63
+ return {
64
+ content: [{
65
+ type: 'text',
66
+ text: JSON.stringify({
67
+ approval_token: token.tokenId,
68
+ expires_at: new Date(token.expiresAt).toISOString(),
69
+ override_id: params.override_id,
70
+ action: `To confirm deleting focused override ${params.override_id}, call confirm_delete_focused_override with the approval_token.`,
71
+ }, null, 2),
72
+ }],
73
+ };
74
+ }
75
+ async confirmDeleteFocusedOverride(params) {
76
+ // Look up the token to get the targetId, then consume it
77
+ const token = this.tokenManager.lookupToken(params.approval_token);
78
+ if (token == null) {
79
+ return {
80
+ content: [{
81
+ type: 'text',
82
+ text: JSON.stringify({
83
+ success: false,
84
+ error: 'Token not found or already used',
85
+ }, null, 2),
86
+ }],
87
+ };
88
+ }
89
+ const result = this.tokenManager.consumeToken(params.approval_token, 'delete_focused_override', token.targetId);
90
+ if (!result.valid) {
91
+ const errorMessages = {
92
+ NOT_FOUND: 'Token not found or already used',
93
+ EXPIRED: 'Token has expired. Please call prepare_delete_focused_override again.',
94
+ OPERATION_MISMATCH: 'Token was not generated for delete_focused_override',
95
+ TARGET_MISMATCH: 'Token was generated for a different focused override',
96
+ ALREADY_CONSUMED: 'Token has already been used',
97
+ };
98
+ return {
99
+ content: [{
100
+ type: 'text',
101
+ text: JSON.stringify({
102
+ success: false,
103
+ error: errorMessages[result.error ?? ''] ?? 'Invalid token',
104
+ }, null, 2),
105
+ }],
106
+ };
107
+ }
108
+ await this.repo.deleteFocusedOverrideAsync(result.token.targetId);
109
+ return {
110
+ content: [{
111
+ type: 'text',
112
+ text: JSON.stringify({ success: true, message: 'Focused override deleted' }, null, 2),
113
+ }],
114
+ };
115
+ }
116
+ }
117
+ //# sourceMappingURL=focused-overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focused-overrides.js","sourceRoot":"","sources":["../../src/tools/focused-overrides.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * MCP Tool exports.
7
+ *
8
+ * Re-exports all tools and schemas for convenient importing.
9
+ */
10
+ export { MailTools, createMailTools, ListFoldersInput, ListEmailsInput, SearchEmailsInput, SearchEmailsAdvancedInput, GetEmailInput, GetEmailsInput, ListConversationInput, GetUnreadCountInput, ListAttachmentsInput, DownloadAttachmentInput, CheckNewEmailsInput, type ListFoldersParams, type ListEmailsParams, type SearchEmailsParams, type GetEmailParams, type GetEmailsParams, type GetUnreadCountParams, type ListAttachmentsParams, type DownloadAttachmentParams, type IContentReader, nullContentReader, } from './mail.js';
11
+ export { CalendarTools, createCalendarTools, ListCalendarsInput, ListEventsInput, GetEventInput, SearchEventsInput, CreateEventInput, RespondToEventInput, type ListCalendarsParams, type ListEventsParams, type GetEventParams, type SearchEventsParams, type CreateEventParams, type CreateEventResult, type RecurrenceParams, type RespondToEventParams, type IEventContentReader, type EventDetails, nullEventContentReader, } from './calendar.js';
12
+ export { ContactsTools, createContactsTools, ListContactsInput, SearchContactsInput, GetContactInput, type ListContactsParams, type SearchContactsParams, type GetContactParams, type IContactContentReader, type ContactDetails, nullContactContentReader, } from './contacts.js';
13
+ export { TasksTools, createTasksTools, ListTasksInput, SearchTasksInput, GetTaskInput, type ListTasksParams, type SearchTasksParams, type GetTaskParams, type ITaskContentReader, type TaskDetails, nullTaskContentReader, } from './tasks.js';
14
+ export { NotesTools, createNotesTools, ListNotesInput, GetNoteInput, SearchNotesInput, type ListNotesParams, type GetNoteParams, type SearchNotesParams, type INoteContentReader, type NoteDetails, nullNoteContentReader, } from './notes.js';
15
+ export { MailboxOrganizationTools, createMailboxOrganizationTools, PrepareDeleteEmailInput, ConfirmDeleteEmailInput, PrepareMoveEmailInput, ConfirmMoveEmailInput, PrepareArchiveEmailInput, ConfirmArchiveEmailInput, PrepareJunkEmailInput, ConfirmJunkEmailInput, PrepareDeleteFolderInput, ConfirmDeleteFolderInput, PrepareEmptyFolderInput, ConfirmEmptyFolderInput, PrepareBatchDeleteEmailsInput, PrepareBatchMoveEmailsInput, ConfirmBatchOperationInput, MarkEmailReadInput, MarkEmailUnreadInput, SetEmailFlagInput, ClearEmailFlagInput, SetEmailCategoriesInput, SetEmailImportanceInput, CreateFolderInput, RenameFolderInput, MoveFolderInput, } from './mailbox-organization.js';
16
+ export { MailSendTools, createMailSendTools, CreateDraftInput, UpdateDraftInput, ListDraftsInput, PrepareSendDraftInput, ConfirmSendDraftInput, PrepareSendEmailInput, ConfirmSendEmailInput, PrepareReplyEmailInput, ConfirmReplyEmailInput, PrepareForwardEmailInput, ConfirmForwardEmailInput, ReplyAsDraftInput, ForwardAsDraftInput, AddDraftAttachmentInput, AddDraftInlineImageInput, type IMailSendRepository, type CreateDraftResult, type CreateDraftParams, type UpdateDraftParams, type ListDraftsParams, type PrepareSendDraftParams, type ConfirmSendDraftParams, type PrepareSendEmailParams, type ConfirmSendEmailParams, type PrepareReplyEmailParams, type ConfirmReplyEmailParams, type PrepareForwardEmailParams, type ConfirmForwardEmailParams, type ReplyAsDraftParams, type ForwardAsDraftParams, } from './mail-send.js';
17
+ export * from './scheduling.js';
18
+ export { MailRulesTools, CreateMailRuleInput, PrepareDeleteMailRuleInput, ConfirmDeleteMailRuleInput, type IMailRulesRepository, type CreateMailRuleParams, type PrepareDeleteMailRuleParams, type ConfirmDeleteMailRuleParams, } from './mail-rules.js';
19
+ export { CategoriesTools, CreateCategoryInput, PrepareDeleteCategoryInput, ConfirmDeleteCategoryInput, type ICategoriesRepository, type CreateCategoryParams, type PrepareDeleteCategoryParams, type ConfirmDeleteCategoryParams, } from './categories.js';
20
+ export { CalendarPermissionsTools, ListCalendarPermissionsInput, CreateCalendarPermissionInput, PrepareDeleteCalendarPermissionInput, ConfirmDeleteCalendarPermissionInput, type ICalendarPermissionsRepository, type ListCalendarPermissionsParams, type CreateCalendarPermissionParams, type PrepareDeleteCalendarPermissionParams, type ConfirmDeleteCalendarPermissionParams, } from './calendar-permissions.js';
21
+ export { FocusedOverridesTools, CreateFocusedOverrideInput, PrepareDeleteFocusedOverrideInput, ConfirmDeleteFocusedOverrideInput, type IFocusedOverridesRepository, type CreateFocusedOverrideParams, type PrepareDeleteFocusedOverrideParams, type ConfirmDeleteFocusedOverrideParams, } from './focused-overrides.js';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * MCP Tool exports.
7
+ *
8
+ * Re-exports all tools and schemas for convenient importing.
9
+ */
10
+ // Mail tools
11
+ export { MailTools, createMailTools, ListFoldersInput, ListEmailsInput, SearchEmailsInput, SearchEmailsAdvancedInput, GetEmailInput, GetEmailsInput, ListConversationInput, GetUnreadCountInput, ListAttachmentsInput, DownloadAttachmentInput, CheckNewEmailsInput, nullContentReader, } from './mail.js';
12
+ // Calendar tools
13
+ export { CalendarTools, createCalendarTools, ListCalendarsInput, ListEventsInput, GetEventInput, SearchEventsInput, CreateEventInput, RespondToEventInput, nullEventContentReader, } from './calendar.js';
14
+ // Contacts tools
15
+ export { ContactsTools, createContactsTools, ListContactsInput, SearchContactsInput, GetContactInput, nullContactContentReader, } from './contacts.js';
16
+ // Tasks tools
17
+ export { TasksTools, createTasksTools, ListTasksInput, SearchTasksInput, GetTaskInput, nullTaskContentReader, } from './tasks.js';
18
+ // Notes tools
19
+ export { NotesTools, createNotesTools, ListNotesInput, GetNoteInput, SearchNotesInput, nullNoteContentReader, } from './notes.js';
20
+ // Mailbox organization tools
21
+ export { MailboxOrganizationTools, createMailboxOrganizationTools, PrepareDeleteEmailInput, ConfirmDeleteEmailInput, PrepareMoveEmailInput, ConfirmMoveEmailInput, PrepareArchiveEmailInput, ConfirmArchiveEmailInput, PrepareJunkEmailInput, ConfirmJunkEmailInput, PrepareDeleteFolderInput, ConfirmDeleteFolderInput, PrepareEmptyFolderInput, ConfirmEmptyFolderInput, PrepareBatchDeleteEmailsInput, PrepareBatchMoveEmailsInput, ConfirmBatchOperationInput, MarkEmailReadInput, MarkEmailUnreadInput, SetEmailFlagInput, ClearEmailFlagInput, SetEmailCategoriesInput, SetEmailImportanceInput, CreateFolderInput, RenameFolderInput, MoveFolderInput, } from './mailbox-organization.js';
22
+ // Mail send tools
23
+ export { MailSendTools, createMailSendTools, CreateDraftInput, UpdateDraftInput, ListDraftsInput, PrepareSendDraftInput, ConfirmSendDraftInput, PrepareSendEmailInput, ConfirmSendEmailInput, PrepareReplyEmailInput, ConfirmReplyEmailInput, PrepareForwardEmailInput, ConfirmForwardEmailInput, ReplyAsDraftInput, ForwardAsDraftInput, AddDraftAttachmentInput, AddDraftInlineImageInput, } from './mail-send.js';
24
+ // Scheduling tools
25
+ export * from './scheduling.js';
26
+ // Mail rules tools
27
+ export { MailRulesTools, CreateMailRuleInput, PrepareDeleteMailRuleInput, ConfirmDeleteMailRuleInput, } from './mail-rules.js';
28
+ // Categories tools
29
+ export { CategoriesTools, CreateCategoryInput, PrepareDeleteCategoryInput, ConfirmDeleteCategoryInput, } from './categories.js';
30
+ // Calendar permissions tools
31
+ export { CalendarPermissionsTools, ListCalendarPermissionsInput, CreateCalendarPermissionInput, PrepareDeleteCalendarPermissionInput, ConfirmDeleteCalendarPermissionInput, } from './calendar-permissions.js';
32
+ // Focused overrides tools
33
+ export { FocusedOverridesTools, CreateFocusedOverrideInput, PrepareDeleteFocusedOverrideInput, ConfirmDeleteFocusedOverrideInput, } from './focused-overrides.js';
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,aAAa;AACb,OAAO,EACL,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EAUnB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EAWnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EAMf,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAEvB,cAAc;AACd,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EAMZ,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,cAAc;AACd,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAMhB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,6BAA6B;AAC7B,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,kBAAkB;AAClB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GAgBzB,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,cAAc,iBAAiB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,GAK3B,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,GAK3B,MAAM,iBAAiB,CAAC;AAEzB,6BAA6B;AAC7B,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,oCAAoC,EACpC,oCAAoC,GAMrC,MAAM,2BAA2B,CAAC;AAEnC,0BAA0B;AAC1B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,iCAAiC,EACjC,iCAAiC,GAKlC,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Linked Resource MCP tools for Microsoft To Do.
7
+ *
8
+ * Provides tools for managing linked resources on To Do tasks with a two-phase
9
+ * approval pattern for destructive delete operations.
10
+ */
11
+ import { z } from 'zod';
12
+ import type { ApprovalTokenManager } from '../approval/index.js';
13
+ export declare const ListLinkedResourcesInput: z.ZodObject<{
14
+ task_id: z.ZodNumber;
15
+ }, z.core.$strict>;
16
+ export declare const CreateLinkedResourceInput: z.ZodObject<{
17
+ task_id: z.ZodNumber;
18
+ web_url: z.ZodString;
19
+ application_name: z.ZodString;
20
+ display_name: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strict>;
22
+ export declare const PrepareDeleteLinkedResourceInput: z.ZodObject<{
23
+ linked_resource_id: z.ZodNumber;
24
+ }, z.core.$strict>;
25
+ export declare const ConfirmDeleteLinkedResourceInput: z.ZodObject<{
26
+ approval_token: z.ZodString;
27
+ }, z.core.$strict>;
28
+ export type ListLinkedResourcesParams = z.infer<typeof ListLinkedResourcesInput>;
29
+ export type CreateLinkedResourceParams = z.infer<typeof CreateLinkedResourceInput>;
30
+ export type PrepareDeleteLinkedResourceParams = z.infer<typeof PrepareDeleteLinkedResourceInput>;
31
+ export type ConfirmDeleteLinkedResourceParams = z.infer<typeof ConfirmDeleteLinkedResourceInput>;
32
+ export interface ILinkedResourcesRepository {
33
+ listLinkedResourcesAsync(taskId: number): Promise<Array<{
34
+ id: number;
35
+ webUrl: string;
36
+ applicationName: string;
37
+ displayName: string;
38
+ }>>;
39
+ createLinkedResourceAsync(taskId: number, webUrl: string, applicationName: string, displayName?: string): Promise<number>;
40
+ deleteLinkedResourceAsync(linkedResourceId: number): Promise<void>;
41
+ }
42
+ /**
43
+ * Linked resource tools with two-phase approval for delete operations.
44
+ */
45
+ export declare class LinkedResourcesTools {
46
+ private readonly repo;
47
+ private readonly tokenManager;
48
+ constructor(repo: ILinkedResourcesRepository, tokenManager: ApprovalTokenManager);
49
+ listLinkedResources(params: ListLinkedResourcesParams): Promise<{
50
+ content: Array<{
51
+ type: 'text';
52
+ text: string;
53
+ }>;
54
+ }>;
55
+ createLinkedResource(params: CreateLinkedResourceParams): Promise<{
56
+ content: Array<{
57
+ type: 'text';
58
+ text: string;
59
+ }>;
60
+ }>;
61
+ prepareDeleteLinkedResource(params: PrepareDeleteLinkedResourceParams): {
62
+ content: Array<{
63
+ type: 'text';
64
+ text: string;
65
+ }>;
66
+ };
67
+ confirmDeleteLinkedResource(params: ConfirmDeleteLinkedResourceParams): Promise<{
68
+ content: Array<{
69
+ type: 'text';
70
+ text: string;
71
+ }>;
72
+ }>;
73
+ }
74
+ //# sourceMappingURL=linked-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linked-resources.d.ts","sourceRoot":"","sources":["../../src/tools/linked-resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMjE,eAAO,MAAM,wBAAwB;;kBAEnC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;kBAKpC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;kBAE3C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;kBAE3C,CAAC;AAMH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACjF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACnF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AACjG,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAMjG,MAAM,WAAW,0BAA0B;IACzC,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACvI,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1H,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAMD;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,IAAI,EAAE,0BAA0B,EAChC,YAAY,EAAE,oBAAoB;IAG/C,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC;QACpE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUI,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC;QACtE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUF,2BAA2B,CAAC,MAAM,EAAE,iCAAiC,GAAG;QACtE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD;IAqBK,2BAA2B,CAAC,MAAM,EAAE,iCAAiC,GAAG,OAAO,CAAC;QACpF,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;CA2CH"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Linked Resource MCP tools for Microsoft To Do.
7
+ *
8
+ * Provides tools for managing linked resources on To Do tasks with a two-phase
9
+ * approval pattern for destructive delete operations.
10
+ */
11
+ import { z } from 'zod';
12
+ // =============================================================================
13
+ // Input Schemas
14
+ // =============================================================================
15
+ export const ListLinkedResourcesInput = z.strictObject({
16
+ task_id: z.number().int().positive().describe('Task ID from list_tasks or search_tasks'),
17
+ });
18
+ export const CreateLinkedResourceInput = z.strictObject({
19
+ task_id: z.number().int().positive().describe('Task ID'),
20
+ web_url: z.string().min(1).describe('URL of the linked resource'),
21
+ application_name: z.string().min(1).describe('Name of the application the resource is associated with'),
22
+ display_name: z.string().min(1).optional().describe('Display name of the linked resource'),
23
+ });
24
+ export const PrepareDeleteLinkedResourceInput = z.strictObject({
25
+ linked_resource_id: z.number().int().positive().describe('Linked resource ID to delete'),
26
+ });
27
+ export const ConfirmDeleteLinkedResourceInput = z.strictObject({
28
+ approval_token: z.string().describe('Approval token from prepare_delete_linked_resource'),
29
+ });
30
+ // =============================================================================
31
+ // Linked Resources Tools
32
+ // =============================================================================
33
+ /**
34
+ * Linked resource tools with two-phase approval for delete operations.
35
+ */
36
+ export class LinkedResourcesTools {
37
+ repo;
38
+ tokenManager;
39
+ constructor(repo, tokenManager) {
40
+ this.repo = repo;
41
+ this.tokenManager = tokenManager;
42
+ }
43
+ async listLinkedResources(params) {
44
+ const items = await this.repo.listLinkedResourcesAsync(params.task_id);
45
+ return {
46
+ content: [{
47
+ type: 'text',
48
+ text: JSON.stringify({ linked_resources: items }, null, 2),
49
+ }],
50
+ };
51
+ }
52
+ async createLinkedResource(params) {
53
+ const itemId = await this.repo.createLinkedResourceAsync(params.task_id, params.web_url, params.application_name, params.display_name);
54
+ return {
55
+ content: [{
56
+ type: 'text',
57
+ text: JSON.stringify({ success: true, linked_resource_id: itemId, message: 'Linked resource created' }, null, 2),
58
+ }],
59
+ };
60
+ }
61
+ prepareDeleteLinkedResource(params) {
62
+ const token = this.tokenManager.generateToken({
63
+ operation: 'delete_linked_resource',
64
+ targetType: 'linked_resource',
65
+ targetId: params.linked_resource_id,
66
+ targetHash: String(params.linked_resource_id),
67
+ });
68
+ return {
69
+ content: [{
70
+ type: 'text',
71
+ text: JSON.stringify({
72
+ approval_token: token.tokenId,
73
+ expires_at: new Date(token.expiresAt).toISOString(),
74
+ linked_resource_id: params.linked_resource_id,
75
+ action: `To confirm deleting linked resource ${params.linked_resource_id}, call confirm_delete_linked_resource with the approval_token.`,
76
+ }, null, 2),
77
+ }],
78
+ };
79
+ }
80
+ async confirmDeleteLinkedResource(params) {
81
+ // Look up the token to get the targetId, then consume it
82
+ const token = this.tokenManager.lookupToken(params.approval_token);
83
+ if (token == null) {
84
+ return {
85
+ content: [{
86
+ type: 'text',
87
+ text: JSON.stringify({
88
+ success: false,
89
+ error: 'Token not found or already used',
90
+ }, null, 2),
91
+ }],
92
+ };
93
+ }
94
+ const result = this.tokenManager.consumeToken(params.approval_token, 'delete_linked_resource', token.targetId);
95
+ if (!result.valid) {
96
+ const errorMessages = {
97
+ NOT_FOUND: 'Token not found or already used',
98
+ EXPIRED: 'Token has expired. Please call prepare_delete_linked_resource again.',
99
+ OPERATION_MISMATCH: 'Token was not generated for delete_linked_resource',
100
+ TARGET_MISMATCH: 'Token was generated for a different linked resource',
101
+ ALREADY_CONSUMED: 'Token has already been used',
102
+ };
103
+ return {
104
+ content: [{
105
+ type: 'text',
106
+ text: JSON.stringify({
107
+ success: false,
108
+ error: errorMessages[result.error ?? ''] ?? 'Invalid token',
109
+ }, null, 2),
110
+ }],
111
+ };
112
+ }
113
+ await this.repo.deleteLinkedResourceAsync(result.token.targetId);
114
+ return {
115
+ content: [{
116
+ type: 'text',
117
+ text: JSON.stringify({ success: true, message: 'Linked resource deleted' }, null, 2),
118
+ }],
119
+ };
120
+ }
121
+ }
122
+ //# sourceMappingURL=linked-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linked-resources.js","sourceRoot":"","sources":["../../src/tools/linked-resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Mail rules MCP tools.
7
+ *
8
+ * Provides tools for managing inbox mail rules with a two-phase
9
+ * approval pattern for destructive delete operations.
10
+ */
11
+ import { z } from 'zod';
12
+ import type { ApprovalTokenManager } from '../approval/index.js';
13
+ export declare const CreateMailRuleInput: z.ZodObject<{
14
+ display_name: z.ZodString;
15
+ sequence: z.ZodOptional<z.ZodNumber>;
16
+ is_enabled: z.ZodDefault<z.ZodBoolean>;
17
+ conditions: z.ZodObject<{
18
+ from_addresses: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
+ subject_contains: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
+ body_contains: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
+ sender_contains: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ has_attachments: z.ZodOptional<z.ZodBoolean>;
23
+ importance: z.ZodOptional<z.ZodEnum<{
24
+ high: "high";
25
+ low: "low";
26
+ normal: "normal";
27
+ }>>;
28
+ }, z.core.$strict>;
29
+ actions: z.ZodObject<{
30
+ move_to_folder: z.ZodOptional<z.ZodNumber>;
31
+ mark_as_read: z.ZodOptional<z.ZodBoolean>;
32
+ mark_importance: z.ZodOptional<z.ZodEnum<{
33
+ high: "high";
34
+ low: "low";
35
+ normal: "normal";
36
+ }>>;
37
+ forward_to: z.ZodOptional<z.ZodArray<z.ZodString>>;
38
+ delete: z.ZodOptional<z.ZodBoolean>;
39
+ stop_processing_rules: z.ZodOptional<z.ZodBoolean>;
40
+ }, z.core.$strict>;
41
+ }, z.core.$strict>;
42
+ export declare const PrepareDeleteMailRuleInput: z.ZodObject<{
43
+ rule_id: z.ZodNumber;
44
+ }, z.core.$strict>;
45
+ export declare const ConfirmDeleteMailRuleInput: z.ZodObject<{
46
+ token_id: z.ZodString;
47
+ rule_id: z.ZodNumber;
48
+ }, z.core.$strict>;
49
+ export type CreateMailRuleParams = z.infer<typeof CreateMailRuleInput>;
50
+ export type PrepareDeleteMailRuleParams = z.infer<typeof PrepareDeleteMailRuleInput>;
51
+ export type ConfirmDeleteMailRuleParams = z.infer<typeof ConfirmDeleteMailRuleInput>;
52
+ export interface IMailRulesRepository {
53
+ listMailRulesAsync(): Promise<Array<{
54
+ id: number;
55
+ displayName: string;
56
+ sequence: number;
57
+ isEnabled: boolean;
58
+ conditions: unknown;
59
+ actions: unknown;
60
+ }>>;
61
+ createMailRuleAsync(rule: Record<string, unknown>): Promise<number>;
62
+ deleteMailRuleAsync(ruleId: number): Promise<void>;
63
+ /** Resolve a numeric folder ID to the Graph string ID for move_to_folder action. */
64
+ getFolderGraphId(folderId: number): string | undefined;
65
+ }
66
+ /**
67
+ * Mail rules tools with two-phase approval for delete operations.
68
+ */
69
+ export declare class MailRulesTools {
70
+ private readonly repo;
71
+ private readonly tokenManager;
72
+ constructor(repo: IMailRulesRepository, tokenManager: ApprovalTokenManager);
73
+ listMailRules(): Promise<{
74
+ content: Array<{
75
+ type: 'text';
76
+ text: string;
77
+ }>;
78
+ }>;
79
+ createMailRule(params: CreateMailRuleParams): Promise<{
80
+ content: Array<{
81
+ type: 'text';
82
+ text: string;
83
+ }>;
84
+ }>;
85
+ prepareDeleteMailRule(params: PrepareDeleteMailRuleParams): {
86
+ content: Array<{
87
+ type: 'text';
88
+ text: string;
89
+ }>;
90
+ };
91
+ confirmDeleteMailRule(params: ConfirmDeleteMailRuleParams): Promise<{
92
+ content: Array<{
93
+ type: 'text';
94
+ text: string;
95
+ }>;
96
+ }>;
97
+ }
98
+ //# sourceMappingURL=mail-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-rules.d.ts","sourceRoot":"","sources":["../../src/tools/mail-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAMjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoB9B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;kBAErC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;kBAGrC,CAAC;AAMH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACvE,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACrF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAMrF,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IACvJ,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,oFAAoF;IACpF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxD;AAMD;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,IAAI,EAAE,oBAAoB,EAC1B,YAAY,EAAE,oBAAoB;IAG/C,aAAa,IAAI,OAAO,CAAC;QAC7B,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAUI,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAC1D,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAiDF,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG;QAC1D,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD;IAqBK,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC;QACxE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;CA6BH"}