@mcp-consultant-tools/teams 27.0.0 → 28.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.d.ts +9 -21
- package/build/index.d.ts.map +1 -1
- package/build/index.js +23 -53
- package/build/index.js.map +1 -1
- package/build/services/index.d.ts +6 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +5 -0
- package/build/services/index.js.map +1 -0
- package/build/services/teams-service.d.ts +110 -0
- package/build/services/teams-service.d.ts.map +1 -0
- package/build/services/teams-service.js +598 -0
- package/build/services/teams-service.js.map +1 -0
- package/build/tools/authenticate.d.ts +4 -4
- package/build/tools/authenticate.d.ts.map +1 -1
- package/build/tools/authenticate.js +6 -9
- package/build/tools/authenticate.js.map +1 -1
- package/build/tools/index.d.ts +10 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +21 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/list-channels.d.ts +3 -3
- package/build/tools/list-channels.d.ts.map +1 -1
- package/build/tools/list-channels.js +4 -4
- package/build/tools/list-channels.js.map +1 -1
- package/build/tools/send-card.d.ts +2 -2
- package/build/tools/send-card.d.ts.map +1 -1
- package/build/tools/send-card.js +2 -2
- package/build/tools/send-card.js.map +1 -1
- package/build/tools/send-message.d.ts +2 -2
- package/build/tools/send-message.d.ts.map +1 -1
- package/build/tools/send-message.js +2 -2
- package/build/tools/send-message.js.map +1 -1
- package/build/types.d.ts +8 -0
- package/build/types.d.ts.map +1 -1
- package/package.json +1 -1
package/build/index.d.ts
CHANGED
|
@@ -3,28 +3,16 @@
|
|
|
3
3
|
* @mcp-consultant-tools/teams
|
|
4
4
|
*
|
|
5
5
|
* MCP server for Microsoft Teams integration.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Authentication: Client Credentials (app-only) - no user interaction required.
|
|
9
|
-
*/
|
|
10
|
-
import { TeamsService } from "./TeamsService.js";
|
|
11
|
-
/**
|
|
12
|
-
* Register Teams tools and prompts to an MCP server
|
|
13
|
-
* @param server - The MCP server instance
|
|
14
|
-
* @param teamsService - Optional pre-configured service (for testing)
|
|
15
|
-
*/
|
|
16
|
-
export declare function registerTeamsTools(server: any, teamsService?: TeamsService): void;
|
|
17
|
-
/**
|
|
18
|
-
* Export service class for direct usage
|
|
19
|
-
*/
|
|
20
|
-
export { TeamsService } from "./TeamsService.js";
|
|
21
|
-
export type { TeamsConfig } from "./TeamsService.js";
|
|
22
|
-
/**
|
|
23
|
-
* Export types
|
|
6
|
+
* Entry point: MCP server startup + backward-compatible registerTeamsTools().
|
|
24
7
|
*/
|
|
25
|
-
export * from "./types.js";
|
|
26
8
|
/**
|
|
27
|
-
*
|
|
9
|
+
* Register Teams tools to an MCP server.
|
|
10
|
+
* Backward-compatible API for the meta package.
|
|
28
11
|
*/
|
|
29
|
-
export
|
|
12
|
+
export declare function registerTeamsTools(server: any): void;
|
|
13
|
+
export { TeamsService } from './services/teams-service.js';
|
|
14
|
+
export type { TeamsConfig } from './types.js';
|
|
15
|
+
export type { ServiceContext } from './types.js';
|
|
16
|
+
export * from './types.js';
|
|
17
|
+
export { getCardFromTemplate, AVAILABLE_TEMPLATES } from './cards/templates.js';
|
|
30
18
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAwEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAGpD;AAGD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -3,41 +3,24 @@
|
|
|
3
3
|
* @mcp-consultant-tools/teams
|
|
4
4
|
*
|
|
5
5
|
* MCP server for Microsoft Teams integration.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Authentication: Client Credentials (app-only) - no user interaction required.
|
|
6
|
+
* Entry point: MCP server startup + backward-compatible registerTeamsTools().
|
|
9
7
|
*/
|
|
10
8
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
11
9
|
import { pathToFileURL } from "node:url";
|
|
12
10
|
import { realpathSync } from "node:fs";
|
|
13
11
|
import { createMcpServer, createEnvLoader } from "@mcp-consultant-tools/core";
|
|
14
|
-
import { TeamsService } from
|
|
15
|
-
import {
|
|
16
|
-
import { registerSendCardTool } from "./tools/send-card.js";
|
|
17
|
-
import { registerListChannelsTool, registerListTeamsTool } from "./tools/list-channels.js";
|
|
18
|
-
import { registerAuthenticateTool, registerAuthStatusTool, registerLogoutTool, } from "./tools/authenticate.js";
|
|
12
|
+
import { TeamsService } from './services/teams-service.js';
|
|
13
|
+
import { registerAllTools } from './tools/index.js';
|
|
19
14
|
/**
|
|
20
|
-
*
|
|
21
|
-
* @param server - The MCP server instance
|
|
22
|
-
* @param teamsService - Optional pre-configured service (for testing)
|
|
15
|
+
* Build a ServiceContext from environment variables (lazy service initialization).
|
|
23
16
|
*/
|
|
24
|
-
|
|
25
|
-
let service =
|
|
26
|
-
|
|
27
|
-
* Lazy initialization - service created on first use
|
|
28
|
-
* Supports two auth modes:
|
|
29
|
-
* - client-credentials: Requires TEAMS_CLIENT_SECRET (for automation)
|
|
30
|
-
* - device-code: No secret needed, authenticates via browser (default)
|
|
31
|
-
*/
|
|
32
|
-
function getTeamsService() {
|
|
17
|
+
function createServiceContext() {
|
|
18
|
+
let service = null;
|
|
19
|
+
function getService() {
|
|
33
20
|
if (!service) {
|
|
34
|
-
// Determine auth mode
|
|
35
21
|
const authMode = process.env.TEAMS_AUTH_MODE === "client-credentials"
|
|
36
22
|
? "client-credentials"
|
|
37
23
|
: "device-code";
|
|
38
|
-
// TEAMS_CLIENT_ID is required - must be a custom app registration
|
|
39
|
-
// The previously used "Microsoft Graph Command Line Tools" client ID was retired March 2025
|
|
40
|
-
// See: https://devblogs.microsoft.com/microsoft365dev/microsoft-graph-cli-retirement/
|
|
41
24
|
const clientId = process.env.TEAMS_CLIENT_ID;
|
|
42
25
|
const tenantId = process.env.TEAMS_TENANT_ID;
|
|
43
26
|
if (!clientId) {
|
|
@@ -52,11 +35,9 @@ export function registerTeamsTools(server, teamsService) {
|
|
|
52
35
|
throw new Error("TEAMS_TENANT_ID is required. Set it to your Azure AD tenant ID.\n" +
|
|
53
36
|
"Find it in Azure Portal → Azure Active Directory → Overview → Tenant ID");
|
|
54
37
|
}
|
|
55
|
-
if (authMode === "client-credentials") {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"For interactive authentication, use TEAMS_AUTH_MODE=device-code (default).");
|
|
59
|
-
}
|
|
38
|
+
if (authMode === "client-credentials" && !process.env.TEAMS_CLIENT_SECRET) {
|
|
39
|
+
throw new Error("TEAMS_CLIENT_SECRET is required for client-credentials auth mode. " +
|
|
40
|
+
"For interactive authentication, use TEAMS_AUTH_MODE=device-code (default).");
|
|
60
41
|
}
|
|
61
42
|
const config = {
|
|
62
43
|
authMode,
|
|
@@ -71,33 +52,22 @@ export function registerTeamsTools(server, teamsService) {
|
|
|
71
52
|
}
|
|
72
53
|
return service;
|
|
73
54
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// Authentication tools (call these first for device-code mode)
|
|
78
|
-
registerAuthenticateTool(server, getTeamsService);
|
|
79
|
-
registerAuthStatusTool(server, getTeamsService);
|
|
80
|
-
registerLogoutTool(server, getTeamsService);
|
|
81
|
-
// Messaging tools
|
|
82
|
-
registerSendMessageTool(server, getTeamsService);
|
|
83
|
-
registerSendCardTool(server, getTeamsService);
|
|
84
|
-
registerListChannelsTool(server, getTeamsService);
|
|
85
|
-
registerListTeamsTool(server, getTeamsService);
|
|
86
|
-
console.error("Teams tools registered: authenticate, auth-status, logout, " +
|
|
87
|
-
"send-channel-message, send-adaptive-card, list-channels, list-teams");
|
|
55
|
+
return {
|
|
56
|
+
get teams() { return getService(); },
|
|
57
|
+
};
|
|
88
58
|
}
|
|
89
59
|
/**
|
|
90
|
-
*
|
|
91
|
-
|
|
92
|
-
export { TeamsService } from "./TeamsService.js";
|
|
93
|
-
/**
|
|
94
|
-
* Export types
|
|
60
|
+
* Register Teams tools to an MCP server.
|
|
61
|
+
* Backward-compatible API for the meta package.
|
|
95
62
|
*/
|
|
96
|
-
export
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
63
|
+
export function registerTeamsTools(server) {
|
|
64
|
+
const ctx = createServiceContext();
|
|
65
|
+
registerAllTools(server, ctx);
|
|
66
|
+
}
|
|
67
|
+
// Backward-compatible exports
|
|
68
|
+
export { TeamsService } from './services/teams-service.js';
|
|
69
|
+
export * from './types.js';
|
|
70
|
+
export { getCardFromTemplate, AVAILABLE_TEMPLATES } from './cards/templates.js';
|
|
101
71
|
/**
|
|
102
72
|
* Standalone CLI server (when run directly)
|
|
103
73
|
* Uses realpathSync to resolve symlinks created by npx
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Teams Service - Microsoft Graph API client for Teams operations
|
|
3
|
+
*
|
|
4
|
+
* Supports two authentication modes:
|
|
5
|
+
* - Client Credentials (app-only) - for automation, requires client secret
|
|
6
|
+
* - Device Code (user auth) - for interactive use, authenticates via browser
|
|
7
|
+
*
|
|
8
|
+
* For device-code mode, use the authenticate() method first, which returns
|
|
9
|
+
* the URL and code for the user to complete authentication.
|
|
10
|
+
*/
|
|
11
|
+
import type { TeamsConfig, AdaptiveCard, TeamInfo, ChannelInfo, SendMessageResult, MessageImportance, AuthStatusResponse, DeviceCodeResponse, AuthResult } from "../types.js";
|
|
12
|
+
export declare class TeamsService {
|
|
13
|
+
private config;
|
|
14
|
+
private msalConfidentialClient;
|
|
15
|
+
private msalPublicClient;
|
|
16
|
+
private graphClient;
|
|
17
|
+
private accessToken;
|
|
18
|
+
private tokenExpirationTime;
|
|
19
|
+
private pendingAuth;
|
|
20
|
+
constructor(config: TeamsConfig);
|
|
21
|
+
/**
|
|
22
|
+
* Load stored token from disk (device-code mode)
|
|
23
|
+
*/
|
|
24
|
+
private loadStoredToken;
|
|
25
|
+
/**
|
|
26
|
+
* Save token to disk (device-code mode)
|
|
27
|
+
*/
|
|
28
|
+
private saveToken;
|
|
29
|
+
/**
|
|
30
|
+
* Get access token - handles both auth modes
|
|
31
|
+
*/
|
|
32
|
+
private getAccessToken;
|
|
33
|
+
/**
|
|
34
|
+
* Get token using client credentials flow
|
|
35
|
+
*/
|
|
36
|
+
private getTokenClientCredentials;
|
|
37
|
+
/**
|
|
38
|
+
* Get token using device code flow
|
|
39
|
+
* This method checks for existing/cached tokens or waits for pending auth.
|
|
40
|
+
* It does NOT start a new auth flow - use startAuthentication() for that.
|
|
41
|
+
*/
|
|
42
|
+
private getTokenDeviceCode;
|
|
43
|
+
/**
|
|
44
|
+
* Check if authenticated (device-code mode)
|
|
45
|
+
*/
|
|
46
|
+
isAuthenticated(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Get current authentication status
|
|
49
|
+
*/
|
|
50
|
+
getAuthStatus(): AuthStatusResponse;
|
|
51
|
+
/**
|
|
52
|
+
* Start device-code authentication flow
|
|
53
|
+
* Returns immediately with the URL and code for the user
|
|
54
|
+
* Polls in background and resolves when complete
|
|
55
|
+
*/
|
|
56
|
+
startAuthentication(): Promise<DeviceCodeResponse | AuthResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Wait for pending authentication to complete
|
|
59
|
+
* @param timeoutMs Maximum time to wait (default 5 minutes)
|
|
60
|
+
*/
|
|
61
|
+
waitForAuthentication(timeoutMs?: number): Promise<AuthResult>;
|
|
62
|
+
/**
|
|
63
|
+
* Require authentication before proceeding
|
|
64
|
+
* Throws a helpful error if not authenticated
|
|
65
|
+
*/
|
|
66
|
+
requireAuth(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Clear stored authentication (device-code mode)
|
|
69
|
+
*/
|
|
70
|
+
logout(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Get or create Graph client with current access token
|
|
73
|
+
*/
|
|
74
|
+
private getGraphClient;
|
|
75
|
+
/**
|
|
76
|
+
* Get the effective team ID (from parameter or default)
|
|
77
|
+
*/
|
|
78
|
+
private getTeamId;
|
|
79
|
+
/**
|
|
80
|
+
* Get the effective channel ID (from parameter or default)
|
|
81
|
+
*/
|
|
82
|
+
private getChannelId;
|
|
83
|
+
/**
|
|
84
|
+
* List teams the user/app has access to
|
|
85
|
+
*/
|
|
86
|
+
listTeams(): Promise<TeamInfo[]>;
|
|
87
|
+
/**
|
|
88
|
+
* List channels in a team
|
|
89
|
+
*/
|
|
90
|
+
listChannels(teamId?: string): Promise<ChannelInfo[]>;
|
|
91
|
+
/**
|
|
92
|
+
* Send a text or HTML message to a channel
|
|
93
|
+
*/
|
|
94
|
+
sendChannelMessage(content: string, options?: {
|
|
95
|
+
teamId?: string;
|
|
96
|
+
channelId?: string;
|
|
97
|
+
contentType?: "text" | "html";
|
|
98
|
+
importance?: MessageImportance;
|
|
99
|
+
}): Promise<SendMessageResult>;
|
|
100
|
+
/**
|
|
101
|
+
* Send an Adaptive Card to a channel
|
|
102
|
+
*/
|
|
103
|
+
sendAdaptiveCard(card: AdaptiveCard, options?: {
|
|
104
|
+
teamId?: string;
|
|
105
|
+
channelId?: string;
|
|
106
|
+
importance?: MessageImportance;
|
|
107
|
+
}): Promise<SendMessageResult>;
|
|
108
|
+
}
|
|
109
|
+
export type { TeamsConfig };
|
|
110
|
+
//# sourceMappingURL=teams-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams-service.d.ts","sourceRoot":"","sources":["../../src/services/teams-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAEjB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACX,MAAM,aAAa,CAAC;AAoBrB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,EAAE,WAAW;IA8B/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,SAAS;IAoBjB;;OAEG;YACW,cAAc;IAe5B;;OAEG;YACW,yBAAyB;IA2BvC;;;;OAIG;YACW,kBAAkB;IAiDhC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,aAAa,IAAI,kBAAkB;IAgEnC;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC;IAuHrE;;;OAGG;IACG,qBAAqB,CAAC,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IA6C5E;;;OAGG;IACH,WAAW,IAAI,IAAI;IAsBnB;;OAEG;IACH,MAAM,IAAI,IAAI;IAed;;OAEG;YACW,cAAc;IAY5B;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0BtC;;OAEG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAsB3D;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,UAAU,CAAC,EAAE,iBAAiB,CAAC;KAC3B,GACL,OAAO,CAAC,iBAAiB,CAAC;IA+B7B;;OAEG;IACG,gBAAgB,CACpB,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,iBAAiB,CAAC;KAC3B,GACL,OAAO,CAAC,iBAAiB,CAAC;CAqC9B;AAED,YAAY,EAAE,WAAW,EAAE,CAAC"}
|