teams-api 1.4.0 → 1.6.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.
Files changed (92) hide show
  1. package/README.md +138 -20
  2. package/dist/actions/conversation-actions.d.ts.map +1 -1
  3. package/dist/actions/conversation-actions.js.map +1 -1
  4. package/dist/actions/definitions.d.ts.map +1 -1
  5. package/dist/actions/definitions.js +2 -0
  6. package/dist/actions/definitions.js.map +1 -1
  7. package/dist/actions/file-actions.d.ts.map +1 -1
  8. package/dist/actions/file-actions.js +3 -1
  9. package/dist/actions/file-actions.js.map +1 -1
  10. package/dist/actions/image-description-actions.d.ts +28 -0
  11. package/dist/actions/image-description-actions.d.ts.map +1 -0
  12. package/dist/actions/image-description-actions.js +148 -0
  13. package/dist/actions/image-description-actions.js.map +1 -0
  14. package/dist/actions/message-actions.d.ts.map +1 -1
  15. package/dist/actions/message-actions.js +175 -9
  16. package/dist/actions/message-actions.js.map +1 -1
  17. package/dist/actions/utility-actions.d.ts.map +1 -1
  18. package/dist/actions/utility-actions.js.map +1 -1
  19. package/dist/api/chat-service.d.ts +2 -12
  20. package/dist/api/chat-service.d.ts.map +1 -1
  21. package/dist/api/chat-service.js +33 -41
  22. package/dist/api/chat-service.js.map +1 -1
  23. package/dist/api/common.d.ts +4 -0
  24. package/dist/api/common.d.ts.map +1 -1
  25. package/dist/api/common.js +10 -1
  26. package/dist/api/common.js.map +1 -1
  27. package/dist/api/image-description.d.ts +20 -0
  28. package/dist/api/image-description.d.ts.map +1 -0
  29. package/dist/api/image-description.js +77 -0
  30. package/dist/api/image-description.js.map +1 -0
  31. package/dist/audit.d.ts +17 -0
  32. package/dist/audit.d.ts.map +1 -0
  33. package/dist/audit.js +53 -0
  34. package/dist/audit.js.map +1 -0
  35. package/dist/auth/auto-login.d.ts.map +1 -1
  36. package/dist/auth/auto-login.js +1 -3
  37. package/dist/auth/auto-login.js.map +1 -1
  38. package/dist/auth/interactive.d.ts.map +1 -1
  39. package/dist/auth/interactive.js +7 -8
  40. package/dist/auth/interactive.js.map +1 -1
  41. package/dist/auth/token-capture.d.ts.map +1 -1
  42. package/dist/auth/token-capture.js +62 -8
  43. package/dist/auth/token-capture.js.map +1 -1
  44. package/dist/browser-runtime.d.ts +11 -0
  45. package/dist/browser-runtime.d.ts.map +1 -1
  46. package/dist/browser-runtime.js +106 -0
  47. package/dist/browser-runtime.js.map +1 -1
  48. package/dist/cli.js.map +1 -1
  49. package/dist/conversation-protection.d.ts +21 -0
  50. package/dist/conversation-protection.d.ts.map +1 -0
  51. package/dist/conversation-protection.js +47 -0
  52. package/dist/conversation-protection.js.map +1 -0
  53. package/dist/credential-store.d.ts.map +1 -1
  54. package/dist/credential-store.js +10 -2
  55. package/dist/credential-store.js.map +1 -1
  56. package/dist/emoji-map.d.ts.map +1 -1
  57. package/dist/emoji-map.js.map +1 -1
  58. package/dist/html-utils.d.ts +23 -3
  59. package/dist/html-utils.d.ts.map +1 -1
  60. package/dist/html-utils.js +34 -3
  61. package/dist/html-utils.js.map +1 -1
  62. package/dist/mcp-auth.d.ts +56 -0
  63. package/dist/mcp-auth.d.ts.map +1 -0
  64. package/dist/mcp-auth.js +207 -0
  65. package/dist/mcp-auth.js.map +1 -0
  66. package/dist/mcp-server.d.ts +1 -0
  67. package/dist/mcp-server.d.ts.map +1 -1
  68. package/dist/mcp-server.js +37 -213
  69. package/dist/mcp-server.js.map +1 -1
  70. package/dist/model-context-protocol-download-content.d.ts +7 -0
  71. package/dist/model-context-protocol-download-content.d.ts.map +1 -0
  72. package/dist/model-context-protocol-download-content.js +90 -0
  73. package/dist/model-context-protocol-download-content.js.map +1 -0
  74. package/dist/server-instructions.d.ts.map +1 -1
  75. package/dist/server-instructions.js +4 -0
  76. package/dist/server-instructions.js.map +1 -1
  77. package/dist/smart-login.d.ts.map +1 -1
  78. package/dist/smart-login.js +3 -3
  79. package/dist/smart-login.js.map +1 -1
  80. package/dist/teams-client.d.ts +20 -3
  81. package/dist/teams-client.d.ts.map +1 -1
  82. package/dist/teams-client.js +117 -29
  83. package/dist/teams-client.js.map +1 -1
  84. package/dist/telemetry.d.ts.map +1 -1
  85. package/dist/telemetry.js +5 -1
  86. package/dist/telemetry.js.map +1 -1
  87. package/dist/token-store.d.ts.map +1 -1
  88. package/dist/token-store.js.map +1 -1
  89. package/dist/types.d.ts +54 -0
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/types.js.map +1 -1
  92. package/package.json +8 -2
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.McpAuthManager = exports.AuthenticationInProgressError = exports.NeedsEmailError = void 0;
4
+ const platform_js_1 = require("./platform.js");
5
+ const telemetry_js_1 = require("./telemetry.js");
6
+ class NeedsEmailError extends Error {
7
+ constructor() {
8
+ super("I need your corporate email address to log into Teams. " +
9
+ "Please provide your email and call this tool again.");
10
+ this.name = "NeedsEmailError";
11
+ }
12
+ }
13
+ exports.NeedsEmailError = NeedsEmailError;
14
+ class AuthenticationInProgressError extends Error {
15
+ constructor() {
16
+ super("A browser window has been opened for Microsoft Teams login. " +
17
+ "Please complete the login, then call this tool again.");
18
+ this.name = "AuthenticationInProgressError";
19
+ }
20
+ }
21
+ exports.AuthenticationInProgressError = AuthenticationInProgressError;
22
+ function getEnvironmentValue(environment, name) {
23
+ const value = environment[name];
24
+ return value && value.length > 0 ? value : undefined;
25
+ }
26
+ function resolveMcpAuthEnvironment(environment) {
27
+ const debugPortValue = getEnvironmentValue(environment, "TEAMS_DEBUG_PORT");
28
+ return {
29
+ auto: environment.TEAMS_AUTO === "true",
30
+ bearerToken: getEnvironmentValue(environment, "TEAMS_BEARER_TOKEN"),
31
+ debug: environment.TEAMS_DEBUG === "true",
32
+ debugPort: debugPortValue ? Number(debugPortValue) : 9222,
33
+ email: getEnvironmentValue(environment, "TEAMS_EMAIL"),
34
+ login: environment.TEAMS_LOGIN === "true",
35
+ region: getEnvironmentValue(environment, "TEAMS_REGION"),
36
+ substrateToken: getEnvironmentValue(environment, "TEAMS_SUBSTRATE_TOKEN"),
37
+ token: getEnvironmentValue(environment, "TEAMS_TOKEN"),
38
+ };
39
+ }
40
+ function formatError(error) {
41
+ return error instanceof Error ? error.message : String(error);
42
+ }
43
+ class McpAuthManager {
44
+ canAttemptAutoLogin;
45
+ clientFactory;
46
+ environment;
47
+ log;
48
+ recordAuth;
49
+ authenticationPromise = null;
50
+ clientInstance = null;
51
+ constructor(options) {
52
+ this.canAttemptAutoLogin =
53
+ options.canAttemptAutoLogin ?? platform_js_1.canAttemptAutoLogin;
54
+ this.clientFactory = options.clientFactory;
55
+ this.environment = options.environment ?? process.env;
56
+ this.log = options.log ?? (() => { });
57
+ this.recordAuth = options.recordAuth ?? telemetry_js_1.recordAuth;
58
+ }
59
+ async authenticateOnStartup() {
60
+ const authEnvironment = resolveMcpAuthEnvironment(this.environment);
61
+ if (!authEnvironment.token && !authEnvironment.email) {
62
+ return;
63
+ }
64
+ try {
65
+ this.log("Starting Teams authentication during MCP server startup...");
66
+ await this.getClient();
67
+ }
68
+ catch (error) {
69
+ this.log(`Teams authentication during MCP server startup failed: ${formatError(error)}`);
70
+ }
71
+ }
72
+ async getClient(toolEmail) {
73
+ if (this.clientInstance) {
74
+ return this.clientInstance;
75
+ }
76
+ const authEnvironment = resolveMcpAuthEnvironment(this.environment);
77
+ if (this.shouldUseTwoPhaseAuthentication(toolEmail, authEnvironment)) {
78
+ if (!this.authenticationPromise) {
79
+ this.log("Starting Microsoft Teams login in the background...");
80
+ void this.startAuthentication(toolEmail).catch((error) => {
81
+ this.log(`Microsoft Teams login failed: ${formatError(error)}`);
82
+ });
83
+ }
84
+ throw new AuthenticationInProgressError();
85
+ }
86
+ return this.startAuthentication(toolEmail);
87
+ }
88
+ shouldUseTwoPhaseAuthentication(toolEmail, authEnvironment) {
89
+ if (!toolEmail ||
90
+ authEnvironment.email ||
91
+ authEnvironment.token ||
92
+ authEnvironment.debug) {
93
+ return false;
94
+ }
95
+ if (authEnvironment.login) {
96
+ return true;
97
+ }
98
+ if (authEnvironment.auto) {
99
+ return !this.canAttemptAutoLogin();
100
+ }
101
+ return !this.canAttemptAutoLogin();
102
+ }
103
+ startAuthentication(toolEmail) {
104
+ this.authenticationPromise ??= this.authenticate(toolEmail)
105
+ .then((client) => {
106
+ this.clientInstance = client;
107
+ return client;
108
+ })
109
+ .finally(() => {
110
+ this.authenticationPromise = null;
111
+ });
112
+ return this.authenticationPromise;
113
+ }
114
+ async authenticate(toolEmail) {
115
+ const authEnvironment = resolveMcpAuthEnvironment(this.environment);
116
+ const email = authEnvironment.email ?? toolEmail;
117
+ const log = this.log;
118
+ if (authEnvironment.token) {
119
+ if (!authEnvironment.region) {
120
+ throw new Error("TEAMS_REGION is required when TEAMS_TOKEN is set");
121
+ }
122
+ const client = this.clientFactory.fromToken(authEnvironment.token, authEnvironment.region, authEnvironment.bearerToken, authEnvironment.substrateToken);
123
+ if (email) {
124
+ client.setEmail(email);
125
+ }
126
+ this.recordAuth({ strategy: "token", success: true });
127
+ this.log("Microsoft Teams authentication successful.");
128
+ return client;
129
+ }
130
+ if (authEnvironment.auto) {
131
+ if (!email) {
132
+ throw new NeedsEmailError();
133
+ }
134
+ try {
135
+ const client = await this.clientFactory.create({
136
+ email,
137
+ region: authEnvironment.region,
138
+ headless: true,
139
+ verbose: false,
140
+ log,
141
+ });
142
+ this.recordAuth({ strategy: "auto", success: true });
143
+ this.log("Microsoft Teams authentication successful.");
144
+ return client;
145
+ }
146
+ catch (error) {
147
+ this.recordAuth({ strategy: "auto", success: false, error });
148
+ throw error;
149
+ }
150
+ }
151
+ if (authEnvironment.login) {
152
+ try {
153
+ const client = await this.clientFactory.fromInteractiveLogin({
154
+ region: authEnvironment.region,
155
+ email,
156
+ verbose: false,
157
+ log,
158
+ });
159
+ if (email) {
160
+ client.setEmail(email);
161
+ }
162
+ this.recordAuth({ strategy: "login", success: true });
163
+ this.log("Microsoft Teams authentication successful.");
164
+ return client;
165
+ }
166
+ catch (error) {
167
+ this.recordAuth({ strategy: "login", success: false, error });
168
+ throw error;
169
+ }
170
+ }
171
+ if (authEnvironment.debug) {
172
+ try {
173
+ const client = await this.clientFactory.fromDebugSession({
174
+ debugPort: authEnvironment.debugPort,
175
+ region: authEnvironment.region,
176
+ });
177
+ this.recordAuth({ strategy: "debug", success: true });
178
+ this.log("Microsoft Teams authentication successful.");
179
+ return client;
180
+ }
181
+ catch (error) {
182
+ this.recordAuth({ strategy: "debug", success: false, error });
183
+ throw error;
184
+ }
185
+ }
186
+ try {
187
+ const client = await this.clientFactory.connect({
188
+ email,
189
+ region: authEnvironment.region,
190
+ verbose: false,
191
+ log,
192
+ });
193
+ if (email) {
194
+ client.setEmail(email);
195
+ }
196
+ this.recordAuth({ strategy: "auto", success: true });
197
+ this.log("Microsoft Teams authentication successful.");
198
+ return client;
199
+ }
200
+ catch (error) {
201
+ this.recordAuth({ strategy: "auto", success: false, error });
202
+ throw error;
203
+ }
204
+ }
205
+ }
206
+ exports.McpAuthManager = McpAuthManager;
207
+ //# sourceMappingURL=mcp-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-auth.js","sourceRoot":"","sources":["../src/mcp-auth.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@
17
17
  * TEAMS_LOGIN — Set to "true" to use interactive browser login (all platforms)
18
18
  * TEAMS_DEBUG_PORT — Chrome debug port (default: 9222)
19
19
  * TEAMS_TELEMETRY — Set to "true" to enable full debug telemetry (contributor use)
20
+ * TEAMS_IMAGE_DESCRIPTION_API_KEY — Optional vision API key for teams_describe_image
20
21
  *
21
22
  * Usage in VS Code settings (mcp config):
22
23
  * {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG"}
@@ -18,6 +18,7 @@
18
18
  * TEAMS_LOGIN — Set to "true" to use interactive browser login (all platforms)
19
19
  * TEAMS_DEBUG_PORT — Chrome debug port (default: 9222)
20
20
  * TEAMS_TELEMETRY — Set to "true" to enable full debug telemetry (contributor use)
21
+ * TEAMS_IMAGE_DESCRIPTION_API_KEY — Optional vision API key for teams_describe_image
21
22
  *
22
23
  * Usage in VS Code settings (mcp config):
23
24
  * {
@@ -41,107 +42,8 @@ const definitions_js_1 = require("./actions/definitions.js");
41
42
  const formatters_js_1 = require("./actions/formatters.js");
42
43
  const server_instructions_js_1 = require("./server-instructions.js");
43
44
  const telemetry_js_1 = require("./telemetry.js");
44
- let clientInstance = null;
45
- class NeedsEmailError extends Error {
46
- constructor() {
47
- super("I need your corporate email address to log into Teams. " +
48
- "Please provide your email and call this tool again.");
49
- this.name = "NeedsEmailError";
50
- }
51
- }
52
- async function getClient(toolEmail) {
53
- if (clientInstance) {
54
- return clientInstance;
55
- }
56
- const envToken = process.env.TEAMS_TOKEN;
57
- const envBearerToken = process.env.TEAMS_BEARER_TOKEN;
58
- const envSubstrateToken = process.env.TEAMS_SUBSTRATE_TOKEN;
59
- const envRegion = process.env.TEAMS_REGION;
60
- const email = process.env.TEAMS_EMAIL || toolEmail;
61
- const envAuto = process.env.TEAMS_AUTO === "true";
62
- const envLogin = process.env.TEAMS_LOGIN === "true";
63
- const envDebug = process.env.TEAMS_DEBUG === "true";
64
- const envDebugPort = process.env.TEAMS_DEBUG_PORT
65
- ? Number(process.env.TEAMS_DEBUG_PORT)
66
- : 9222;
67
- if (envToken) {
68
- if (!envRegion) {
69
- throw new Error("TEAMS_REGION is required when TEAMS_TOKEN is set");
70
- }
71
- clientInstance = teams_client_js_1.TeamsClient.fromToken(envToken, envRegion, envBearerToken, envSubstrateToken);
72
- if (email) {
73
- clientInstance.setEmail(email);
74
- }
75
- (0, telemetry_js_1.recordAuth)({ strategy: "token", success: true });
76
- }
77
- else if (envAuto) {
78
- if (!email) {
79
- throw new NeedsEmailError();
80
- }
81
- try {
82
- clientInstance = await teams_client_js_1.TeamsClient.create({
83
- email,
84
- region: envRegion,
85
- headless: true,
86
- verbose: false,
87
- });
88
- (0, telemetry_js_1.recordAuth)({ strategy: "auto", success: true });
89
- }
90
- catch (err) {
91
- (0, telemetry_js_1.recordAuth)({ strategy: "auto", success: false, error: err });
92
- throw err;
93
- }
94
- }
95
- else if (envLogin) {
96
- try {
97
- clientInstance = await teams_client_js_1.TeamsClient.fromInteractiveLogin({
98
- region: envRegion,
99
- email,
100
- verbose: false,
101
- });
102
- if (email) {
103
- clientInstance.setEmail(email);
104
- }
105
- (0, telemetry_js_1.recordAuth)({ strategy: "login", success: true });
106
- }
107
- catch (err) {
108
- (0, telemetry_js_1.recordAuth)({ strategy: "login", success: false, error: err });
109
- throw err;
110
- }
111
- }
112
- else if (envDebug) {
113
- try {
114
- clientInstance = await teams_client_js_1.TeamsClient.fromDebugSession({
115
- debugPort: envDebugPort,
116
- region: envRegion,
117
- });
118
- (0, telemetry_js_1.recordAuth)({ strategy: "debug", success: true });
119
- }
120
- catch (err) {
121
- (0, telemetry_js_1.recordAuth)({ strategy: "debug", success: false, error: err });
122
- throw err;
123
- }
124
- }
125
- else {
126
- // Default: smart login (cross-platform, zero-config)
127
- try {
128
- clientInstance = await teams_client_js_1.TeamsClient.connect({
129
- email,
130
- region: envRegion,
131
- verbose: false,
132
- });
133
- if (email) {
134
- clientInstance.setEmail(email);
135
- }
136
- (0, telemetry_js_1.recordAuth)({ strategy: "auto", success: true });
137
- }
138
- catch (err) {
139
- (0, telemetry_js_1.recordAuth)({ strategy: "auto", success: false, error: err });
140
- throw err;
141
- }
142
- }
143
- return clientInstance;
144
- }
45
+ const model_context_protocol_download_content_js_1 = require("./model-context-protocol-download-content.js");
46
+ const mcp_auth_js_1 = require("./mcp-auth.js");
145
47
  function parameterToZod(parameter) {
146
48
  let schema;
147
49
  switch (parameter.type) {
@@ -170,107 +72,32 @@ const server = new mcp_js_1.McpServer({
170
72
  }, {
171
73
  instructions: server_instructions_js_1.serverInstructions,
172
74
  });
173
- // ── Register all actions as MCP tools ─────────────────────────────────
174
- /** MIME types that are safe to return as inline text to the LLM. */
175
- const TEXT_MIME_PREFIXES = [
176
- "text/",
177
- "application/json",
178
- "application/xml",
179
- "application/javascript",
180
- "application/typescript",
181
- "application/x-yaml",
182
- "application/yaml",
183
- "application/toml",
184
- ];
185
- /** File extensions that are known to be text-based. */
186
- const TEXT_FILE_EXTENSIONS = new Set([
187
- "md",
188
- "txt",
189
- "csv",
190
- "tsv",
191
- "json",
192
- "xml",
193
- "yaml",
194
- "yml",
195
- "toml",
196
- "html",
197
- "htm",
198
- "css",
199
- "js",
200
- "ts",
201
- "jsx",
202
- "tsx",
203
- "py",
204
- "rb",
205
- "sh",
206
- "bash",
207
- "zsh",
208
- "ps1",
209
- "bat",
210
- "cmd",
211
- "sql",
212
- "graphql",
213
- "svg",
214
- "log",
215
- "ini",
216
- "cfg",
217
- "conf",
218
- "env",
219
- "properties",
220
- ]);
221
- function isTextContent(mimeType, fileName) {
222
- const lowerMime = mimeType.toLowerCase();
223
- if (TEXT_MIME_PREFIXES.some((prefix) => lowerMime.startsWith(prefix))) {
224
- return true;
225
- }
226
- // Fall back to file extension when MIME type is generic (e.g. application/octet-stream)
227
- const extension = fileName.includes(".")
228
- ? fileName.split(".").pop()?.toLowerCase()
229
- : undefined;
230
- return extension !== undefined && TEXT_FILE_EXTENSIONS.has(extension);
75
+ function formatLogMessage(messages) {
76
+ return messages
77
+ .map((message) => message instanceof Error ? message.message : String(message))
78
+ .join(" ");
231
79
  }
232
- /**
233
- * Build MCP content blocks for file download results.
234
- *
235
- * Returns the file content inline so the LLM can read it directly:
236
- * - Text files → EmbeddedResource with text content
237
- * - Images → ImageContent with base64 data
238
- * - Other binary → EmbeddedResource with base64 blob
239
- */
240
- function buildDownloadContentBlocks(downloads) {
241
- const blocks = [];
242
- for (const download of downloads) {
243
- const fileUri = `file://${download.savedTo}`;
244
- if (download.contentType.startsWith("image/")) {
245
- blocks.push({
246
- type: "image",
247
- data: download.data.toString("base64"),
248
- mimeType: download.contentType,
249
- });
250
- }
251
- else if (isTextContent(download.contentType, download.fileName)) {
252
- blocks.push({
253
- type: "resource",
254
- resource: {
255
- uri: fileUri,
256
- mimeType: download.contentType,
257
- text: download.data.toString("utf-8"),
258
- },
259
- });
260
- }
261
- else {
262
- blocks.push({
263
- type: "resource",
264
- resource: {
265
- uri: fileUri,
266
- mimeType: download.contentType,
267
- blob: download.data.toString("base64"),
268
- },
269
- });
270
- }
271
- }
272
- return blocks;
80
+ function createMcpAuthLogFunction(mcpServer) {
81
+ return (...messages) => {
82
+ const data = formatLogMessage(messages);
83
+ void mcpServer
84
+ .sendLoggingMessage({
85
+ level: "info",
86
+ logger: "teams-api.auth",
87
+ data,
88
+ })
89
+ .catch((error) => {
90
+ if (process.env.TEAMS_TELEMETRY === "true") {
91
+ console.error("Failed to send MCP auth logging message:", error instanceof Error ? error.message : error);
92
+ }
93
+ });
94
+ };
273
95
  }
96
+ const authManager = new mcp_auth_js_1.McpAuthManager({
97
+ clientFactory: teams_client_js_1.TeamsClient,
98
+ log: createMcpAuthLogFunction(server),
99
+ });
100
+ // ── Register all actions as MCP tools ─────────────────────────────────
274
101
  for (const action of definitions_js_1.actions) {
275
102
  const toolName = `teams_${action.name.replace(/-/g, "_")}`;
276
103
  const inputSchema = {};
@@ -296,23 +123,18 @@ for (const action of definitions_js_1.actions) {
296
123
  const outputFormat = parameters.format ?? "concise";
297
124
  const start = Date.now();
298
125
  try {
299
- const client = await getClient(parameters.email);
126
+ const client = await authManager.getClient(parameters.email);
300
127
  const result = await action.execute(client, parameters);
301
- const output = (0, formatters_js_1.formatOutput)(action, result, outputFormat);
302
- const durationMs = Date.now() - start;
303
- // Redact binary data before recording telemetry — Buffer serialises as
304
- // a large numeric array and would massively bloat telemetry.jsonl.
305
- const telemetryResult = action.name === "download-file" && Array.isArray(result)
306
- ? result.map(({ data, ...rest }) => ({
307
- ...rest,
308
- byteLength: data.byteLength,
309
- }))
128
+ const outputResult = action.name === "download-file" && Array.isArray(result)
129
+ ? (0, model_context_protocol_download_content_js_1.createDownloadOutputResults)(result)
310
130
  : result;
131
+ const output = (0, formatters_js_1.formatOutput)(action, outputResult, outputFormat);
132
+ const durationMs = Date.now() - start;
311
133
  (0, telemetry_js_1.recordToolCall)({
312
134
  tool: action.name,
313
135
  format: outputFormat,
314
136
  parameters: parameters,
315
- result: telemetryResult,
137
+ result: outputResult,
316
138
  output,
317
139
  durationMs,
318
140
  });
@@ -322,7 +144,7 @@ for (const action of definitions_js_1.actions) {
322
144
  ];
323
145
  if (action.name === "download-file" && Array.isArray(result)) {
324
146
  const downloads = result;
325
- contentBlocks.push(...buildDownloadContentBlocks(downloads));
147
+ contentBlocks.push(...(0, model_context_protocol_download_content_js_1.buildDownloadContentBlocks)(downloads));
326
148
  }
327
149
  return {
328
150
  content: contentBlocks,
@@ -330,7 +152,8 @@ for (const action of definitions_js_1.actions) {
330
152
  }
331
153
  catch (error) {
332
154
  const durationMs = Date.now() - start;
333
- if (error instanceof NeedsEmailError) {
155
+ if (error instanceof mcp_auth_js_1.NeedsEmailError ||
156
+ error instanceof mcp_auth_js_1.AuthenticationInProgressError) {
334
157
  (0, telemetry_js_1.recordToolError)({
335
158
  tool: action.name,
336
159
  format: outputFormat,
@@ -357,6 +180,7 @@ for (const action of definitions_js_1.actions) {
357
180
  async function main() {
358
181
  const transport = new stdio_js_1.StdioServerTransport();
359
182
  await server.connect(transport);
183
+ void authManager.authenticateOnStartup();
360
184
  }
361
185
  main().catch((error) => {
362
186
  console.error("MCP server error:", error.message);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ContentBlock } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { DownloadResult } from "./actions/file-actions.js";
3
+ export declare function buildDownloadContentBlocks(downloads: DownloadResult[]): ContentBlock[];
4
+ export declare function createDownloadOutputResults(downloads: DownloadResult[]): Array<Omit<DownloadResult, "data"> & {
5
+ byteLength: number;
6
+ }>;
7
+ //# sourceMappingURL=model-context-protocol-download-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-context-protocol-download-content.d.ts","sourceRoot":"","sources":["../src/model-context-protocol-download-content.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AA6DhE,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,cAAc,EAAE,GAC1B,YAAY,EAAE,CAqBhB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,cAAc,EAAE,GAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAK9D"}