mcp-consultant-tools 35.0.0-beta.2 → 35.0.0-beta.3
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/duplicate-safe-server.d.ts +36 -0
- package/build/duplicate-safe-server.d.ts.map +1 -0
- package/build/duplicate-safe-server.js +70 -0
- package/build/duplicate-safe-server.js.map +1 -0
- package/build/index.d.ts +5 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +66 -22
- package/build/index.js.map +1 -1
- package/package.json +15 -9
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Duplicate-safe registration for the meta aggregator.
|
|
3
|
+
*
|
|
4
|
+
* Meta merges every package into a single MCP namespace. The SDK throws
|
|
5
|
+
* `Tool <name> is already registered` when two packages export the same tool
|
|
6
|
+
* name. Because each package registers inside one try/catch, that throw used to
|
|
7
|
+
* abort the *rest of that package* — a name collision silently dropped every
|
|
8
|
+
* tool the package had not yet registered. `azure-devops-admin` lost 28 of its
|
|
9
|
+
* 32 tools this way.
|
|
10
|
+
*
|
|
11
|
+
* The proxy below turns a collision into a per-name skip: the first package to
|
|
12
|
+
* claim a name keeps it, later packages lose only the colliding name and go on
|
|
13
|
+
* registering everything else. Registration order in `registerAllTools` therefore
|
|
14
|
+
* decides which package owns a shared name.
|
|
15
|
+
*
|
|
16
|
+
* Only the `is already registered` error is swallowed; anything else (a missing
|
|
17
|
+
* optional dependency, a bad schema) still propagates to the caller's try/catch.
|
|
18
|
+
*/
|
|
19
|
+
export interface SkippedRegistration {
|
|
20
|
+
package: string;
|
|
21
|
+
kind: "tool" | "prompt";
|
|
22
|
+
name: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Wrap `server` so `tool()` and `prompt()` skip an already-registered name
|
|
26
|
+
* rather than throwing. Every skip is appended to `skipped`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function duplicateSafeServer(server: any, packageName: string, skipped: SkippedRegistration[]): any;
|
|
29
|
+
/**
|
|
30
|
+
* Human-readable summary of the duplicate names, for stderr.
|
|
31
|
+
*
|
|
32
|
+
* Deliberately avoids the word "skipped": `<Package> skipped:` is reserved for a
|
|
33
|
+
* package that failed to load at all, and release checks grep for it.
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatDuplicates(skipped: SkippedRegistration[]): string[];
|
|
36
|
+
//# sourceMappingURL=duplicate-safe-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicate-safe-server.d.ts","sourceRoot":"","sources":["../src/duplicate-safe-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,GAAG,CAsBL;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAezE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Duplicate-safe registration for the meta aggregator.
|
|
3
|
+
*
|
|
4
|
+
* Meta merges every package into a single MCP namespace. The SDK throws
|
|
5
|
+
* `Tool <name> is already registered` when two packages export the same tool
|
|
6
|
+
* name. Because each package registers inside one try/catch, that throw used to
|
|
7
|
+
* abort the *rest of that package* — a name collision silently dropped every
|
|
8
|
+
* tool the package had not yet registered. `azure-devops-admin` lost 28 of its
|
|
9
|
+
* 32 tools this way.
|
|
10
|
+
*
|
|
11
|
+
* The proxy below turns a collision into a per-name skip: the first package to
|
|
12
|
+
* claim a name keeps it, later packages lose only the colliding name and go on
|
|
13
|
+
* registering everything else. Registration order in `registerAllTools` therefore
|
|
14
|
+
* decides which package owns a shared name.
|
|
15
|
+
*
|
|
16
|
+
* Only the `is already registered` error is swallowed; anything else (a missing
|
|
17
|
+
* optional dependency, a bad schema) still propagates to the caller's try/catch.
|
|
18
|
+
*/
|
|
19
|
+
const DUPLICATE_MESSAGE = / is already registered$/;
|
|
20
|
+
/**
|
|
21
|
+
* Wrap `server` so `tool()` and `prompt()` skip an already-registered name
|
|
22
|
+
* rather than throwing. Every skip is appended to `skipped`.
|
|
23
|
+
*/
|
|
24
|
+
export function duplicateSafeServer(server, packageName, skipped) {
|
|
25
|
+
const guard = (kind) => (...args) => {
|
|
26
|
+
try {
|
|
27
|
+
return server[kind](...args);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
31
|
+
if (!DUPLICATE_MESSAGE.test(message))
|
|
32
|
+
throw error;
|
|
33
|
+
skipped.push({ package: packageName, kind, name: String(args[0]) });
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
return new Proxy(server, {
|
|
38
|
+
get(target, prop) {
|
|
39
|
+
if (prop === "tool" || prop === "prompt")
|
|
40
|
+
return guard(prop);
|
|
41
|
+
const value = Reflect.get(target, prop);
|
|
42
|
+
// Bind to the real server: McpServer reads private fields off `this`.
|
|
43
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Human-readable summary of the duplicate names, for stderr.
|
|
49
|
+
*
|
|
50
|
+
* Deliberately avoids the word "skipped": `<Package> skipped:` is reserved for a
|
|
51
|
+
* package that failed to load at all, and release checks grep for it.
|
|
52
|
+
*/
|
|
53
|
+
export function formatDuplicates(skipped) {
|
|
54
|
+
if (skipped.length === 0)
|
|
55
|
+
return [];
|
|
56
|
+
const byPackage = new Map();
|
|
57
|
+
for (const entry of skipped) {
|
|
58
|
+
const list = byPackage.get(entry.package) ?? [];
|
|
59
|
+
list.push(entry);
|
|
60
|
+
byPackage.set(entry.package, list);
|
|
61
|
+
}
|
|
62
|
+
const lines = [
|
|
63
|
+
`⚠️ ${skipped.length} duplicate name(s) not registered (an earlier package owns them):`,
|
|
64
|
+
];
|
|
65
|
+
for (const [pkg, entries] of byPackage) {
|
|
66
|
+
lines.push(` ${pkg}: ${entries.map((e) => `${e.kind} ${e.name}`).join(", ")}`);
|
|
67
|
+
}
|
|
68
|
+
return lines;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=duplicate-safe-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicate-safe-server.js","sourceRoot":"","sources":["../src/duplicate-safe-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAW,EACX,WAAmB,EACnB,OAA8B;IAE9B,MAAM,KAAK,GACT,CAAC,IAAuB,EAAE,EAAE,CAC5B,CAAC,GAAG,IAAe,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,KAAK,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEJ,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxC,sEAAsE;YACtE,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA8B;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC3D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,OAAO,OAAO,CAAC,MAAM,mEAAmE;KACzF,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/build/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Register all MCP Consultant Tools
|
|
4
4
|
*
|
|
5
|
-
* This meta-package combines all
|
|
5
|
+
* This meta-package combines all 22 service packages:
|
|
6
6
|
* - PowerPlatform (read-only: 46 tools, 12 prompts)
|
|
7
7
|
* - PowerPlatform Customization (schema changes: 70 tools)
|
|
8
8
|
* - PowerPlatform Data (data CRUD: 10 tools)
|
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
* - Azure AD B2C (user management, password reset, groups)
|
|
19
19
|
* - Azure Data Factory (pipeline execution, monitoring, error debugging)
|
|
20
20
|
* - Azure Management (ARM API - Function Apps, App Services, Key Vaults, Storage, SQL, Monitoring)
|
|
21
|
+
* - Azure Defender for Cloud (secure score, assessments, regulatory compliance, attack paths)
|
|
22
|
+
* - Entra ID (app registration audit, client secret and certificate expiry)
|
|
23
|
+
* - Message Center (M365 service health, issues, incident reports, Message Center posts)
|
|
24
|
+
* - Code Review (repository .NET EOL scan, NuGet audit, complexity estimate, GitHub Packages)
|
|
21
25
|
* - Azure Storage (blobs, queues, tables, file shares)
|
|
22
26
|
* - REST API (generic HTTP requests with auth)
|
|
23
27
|
* - Teams (channel messages, adaptive cards for release announcements)
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA+BA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,QA4H3C"}
|
package/build/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
3
3
|
import { pathToFileURL } from "node:url";
|
|
4
4
|
import { realpathSync } from "node:fs";
|
|
5
5
|
import { createMcpServer, createEnvLoader, resolveSecrets } from "@mcp-consultant-tools/core";
|
|
6
|
+
import { duplicateSafeServer, formatDuplicates } from "./duplicate-safe-server.js";
|
|
6
7
|
import { registerPowerPlatformTools } from "@mcp-consultant-tools/powerplatform";
|
|
7
8
|
import { registerPowerplatformCustomizationTools } from "@mcp-consultant-tools/powerplatform-customization";
|
|
8
9
|
import { registerPowerplatformDataTools } from "@mcp-consultant-tools/powerplatform-data";
|
|
@@ -17,6 +18,10 @@ import { registerGitHubEnterpriseTools } from "@mcp-consultant-tools/github-ente
|
|
|
17
18
|
import { registerAzureB2CTools } from "@mcp-consultant-tools/azure-b2c";
|
|
18
19
|
import { registerAzureDataFactoryTools } from "@mcp-consultant-tools/azure-data-factory";
|
|
19
20
|
import { registerAzureManagementTools } from "@mcp-consultant-tools/azure-management";
|
|
21
|
+
import { registerAzureDefenderTools } from "@mcp-consultant-tools/azure-defender";
|
|
22
|
+
import { registerEntraIdTools } from "@mcp-consultant-tools/entra-id";
|
|
23
|
+
import { registerMessageCenterTools } from "@mcp-consultant-tools/message-center";
|
|
24
|
+
import { registerCodeReviewTools } from "@mcp-consultant-tools/code-review";
|
|
20
25
|
import { registerTeamsTools } from "@mcp-consultant-tools/teams";
|
|
21
26
|
import { registerAzureDevOpsAdminTools } from "@mcp-consultant-tools/azure-devops-admin";
|
|
22
27
|
import { registerAzureStorageTools } from "@mcp-consultant-tools/azure-storage";
|
|
@@ -26,7 +31,7 @@ import { registerFabricTools } from "@mcp-consultant-tools/fabric";
|
|
|
26
31
|
/**
|
|
27
32
|
* Register all MCP Consultant Tools
|
|
28
33
|
*
|
|
29
|
-
* This meta-package combines all
|
|
34
|
+
* This meta-package combines all 22 service packages:
|
|
30
35
|
* - PowerPlatform (read-only: 46 tools, 12 prompts)
|
|
31
36
|
* - PowerPlatform Customization (schema changes: 70 tools)
|
|
32
37
|
* - PowerPlatform Data (data CRUD: 10 tools)
|
|
@@ -42,95 +47,134 @@ import { registerFabricTools } from "@mcp-consultant-tools/fabric";
|
|
|
42
47
|
* - Azure AD B2C (user management, password reset, groups)
|
|
43
48
|
* - Azure Data Factory (pipeline execution, monitoring, error debugging)
|
|
44
49
|
* - Azure Management (ARM API - Function Apps, App Services, Key Vaults, Storage, SQL, Monitoring)
|
|
50
|
+
* - Azure Defender for Cloud (secure score, assessments, regulatory compliance, attack paths)
|
|
51
|
+
* - Entra ID (app registration audit, client secret and certificate expiry)
|
|
52
|
+
* - Message Center (M365 service health, issues, incident reports, Message Center posts)
|
|
53
|
+
* - Code Review (repository .NET EOL scan, NuGet audit, complexity estimate, GitHub Packages)
|
|
45
54
|
* - Azure Storage (blobs, queues, tables, file shares)
|
|
46
55
|
* - REST API (generic HTTP requests with auth)
|
|
47
56
|
* - Teams (channel messages, adaptive cards for release announcements)
|
|
48
57
|
*/
|
|
49
58
|
export function registerAllTools(server) {
|
|
50
59
|
console.error("Registering all MCP Consultant Tools...");
|
|
60
|
+
// Meta merges every package into one namespace, so two packages can claim the
|
|
61
|
+
// same tool name. `safe()` makes a collision skip that one name instead of
|
|
62
|
+
// aborting the rest of the package — first registration below wins the name.
|
|
63
|
+
const duplicates = [];
|
|
64
|
+
const safe = (packageName) => duplicateSafeServer(server, packageName, duplicates);
|
|
51
65
|
// Register all service tools
|
|
52
|
-
registerPowerPlatformTools(
|
|
66
|
+
registerPowerPlatformTools(safe("PowerPlatform"));
|
|
53
67
|
// PowerPlatform Customization (optional - install @mcp-consultant-tools/powerplatform-customization separately if needed)
|
|
54
68
|
try {
|
|
55
|
-
registerPowerplatformCustomizationTools(
|
|
69
|
+
registerPowerplatformCustomizationTools(safe("PowerPlatform Customization"));
|
|
56
70
|
}
|
|
57
71
|
catch (error) {
|
|
58
72
|
console.error("⚠️ PowerPlatform Customization skipped:", error.message);
|
|
59
73
|
}
|
|
60
74
|
// PowerPlatform Data (optional - install @mcp-consultant-tools/powerplatform-data separately if needed)
|
|
61
75
|
try {
|
|
62
|
-
registerPowerplatformDataTools(
|
|
76
|
+
registerPowerplatformDataTools(safe("PowerPlatform Data"));
|
|
63
77
|
}
|
|
64
78
|
catch (error) {
|
|
65
79
|
console.error("⚠️ PowerPlatform Data skipped:", error.message);
|
|
66
80
|
}
|
|
67
|
-
registerAzureDevOpsTools(
|
|
68
|
-
registerFigmaTools(
|
|
69
|
-
registerApplicationInsightsTools(
|
|
70
|
-
registerLogAnalyticsTools(
|
|
71
|
-
registerAzureSqlTools(
|
|
72
|
-
registerServiceBusTools(
|
|
73
|
-
registerSharePointTools(
|
|
74
|
-
registerGitHubEnterpriseTools(
|
|
75
|
-
registerAzureB2CTools(
|
|
81
|
+
registerAzureDevOpsTools(safe("Azure DevOps"));
|
|
82
|
+
registerFigmaTools(safe("Figma"));
|
|
83
|
+
registerApplicationInsightsTools(safe("Application Insights"));
|
|
84
|
+
registerLogAnalyticsTools(safe("Log Analytics"));
|
|
85
|
+
registerAzureSqlTools(safe("Azure SQL"));
|
|
86
|
+
registerServiceBusTools(safe("Service Bus"));
|
|
87
|
+
registerSharePointTools(safe("SharePoint"));
|
|
88
|
+
registerGitHubEnterpriseTools(safe("GitHub Enterprise"));
|
|
89
|
+
registerAzureB2CTools(safe("Azure B2C"));
|
|
76
90
|
// Azure Data Factory (optional - for pipeline execution and monitoring)
|
|
77
91
|
try {
|
|
78
|
-
registerAzureDataFactoryTools(
|
|
92
|
+
registerAzureDataFactoryTools(safe("Azure Data Factory"));
|
|
79
93
|
}
|
|
80
94
|
catch (error) {
|
|
81
95
|
console.error("⚠️ Azure Data Factory skipped:", error.message);
|
|
82
96
|
}
|
|
83
97
|
// Azure Management (optional - for ARM API resource discovery)
|
|
84
98
|
try {
|
|
85
|
-
registerAzureManagementTools(
|
|
99
|
+
registerAzureManagementTools(safe("Azure Management"));
|
|
86
100
|
}
|
|
87
101
|
catch (error) {
|
|
88
102
|
console.error("⚠️ Azure Management skipped:", error.message);
|
|
89
103
|
}
|
|
104
|
+
// Azure Defender for Cloud (optional - secure score, assessments, compliance, attack paths)
|
|
105
|
+
try {
|
|
106
|
+
registerAzureDefenderTools(safe("Azure Defender"));
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.error("⚠️ Azure Defender skipped:", error.message);
|
|
110
|
+
}
|
|
111
|
+
// Entra ID (optional - app registration audit, secret and certificate expiry)
|
|
112
|
+
try {
|
|
113
|
+
registerEntraIdTools(safe("Entra ID"));
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error("⚠️ Entra ID skipped:", error.message);
|
|
117
|
+
}
|
|
118
|
+
// Message Center (optional - M365 service health, issues, incident reports, Message Center posts)
|
|
119
|
+
try {
|
|
120
|
+
registerMessageCenterTools(safe("Message Center"));
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.error("⚠️ Message Center skipped:", error.message);
|
|
124
|
+
}
|
|
125
|
+
// Code Review (optional - repository .NET EOL scan, NuGet audit, complexity estimate, GitHub Packages)
|
|
126
|
+
try {
|
|
127
|
+
registerCodeReviewTools(safe("Code Review"));
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
console.error("⚠️ Code Review skipped:", error.message);
|
|
131
|
+
}
|
|
90
132
|
// Teams (optional - for release announcements)
|
|
91
133
|
try {
|
|
92
|
-
registerTeamsTools(
|
|
134
|
+
registerTeamsTools(safe("Teams"));
|
|
93
135
|
}
|
|
94
136
|
catch (error) {
|
|
95
137
|
console.error("⚠️ Teams skipped:", error.message);
|
|
96
138
|
}
|
|
97
139
|
// Azure DevOps Admin (optional - pipeline management, environments, service connections)
|
|
98
140
|
try {
|
|
99
|
-
registerAzureDevOpsAdminTools(
|
|
141
|
+
registerAzureDevOpsAdminTools(safe("Azure DevOps Admin"));
|
|
100
142
|
}
|
|
101
143
|
catch (error) {
|
|
102
144
|
console.error("⚠️ Azure DevOps Admin skipped:", error.message);
|
|
103
145
|
}
|
|
104
146
|
// Azure Storage (optional - blobs, queues, tables, file shares)
|
|
105
147
|
try {
|
|
106
|
-
registerAzureStorageTools(
|
|
148
|
+
registerAzureStorageTools(safe("Azure Storage"));
|
|
107
149
|
}
|
|
108
150
|
catch (error) {
|
|
109
151
|
console.error("⚠️ Azure Storage skipped:", error.message);
|
|
110
152
|
}
|
|
111
153
|
// REST API (optional - generic HTTP requests with auth)
|
|
112
154
|
try {
|
|
113
|
-
registerRestApiTools(
|
|
155
|
+
registerRestApiTools(safe("REST API"));
|
|
114
156
|
}
|
|
115
157
|
catch (error) {
|
|
116
158
|
console.error("⚠️ REST API skipped:", error.message);
|
|
117
159
|
}
|
|
118
160
|
// 1Password (optional - vault and item management)
|
|
119
161
|
try {
|
|
120
|
-
registerOnePasswordTools(
|
|
162
|
+
registerOnePasswordTools(safe("1Password"));
|
|
121
163
|
}
|
|
122
164
|
catch (error) {
|
|
123
165
|
console.error("⚠️ 1Password skipped:", error.message);
|
|
124
166
|
}
|
|
125
167
|
// Microsoft Fabric (optional - workspaces, capacities, items, shortcuts, domains)
|
|
126
168
|
try {
|
|
127
|
-
registerFabricTools(
|
|
169
|
+
registerFabricTools(safe("Microsoft Fabric"));
|
|
128
170
|
}
|
|
129
171
|
catch (error) {
|
|
130
172
|
console.error("⚠️ Microsoft Fabric skipped:", error.message);
|
|
131
173
|
}
|
|
174
|
+
for (const line of formatDuplicates(duplicates))
|
|
175
|
+
console.error(line);
|
|
132
176
|
console.error("All tools registered successfully!");
|
|
133
|
-
console.error("Total integrations:
|
|
177
|
+
console.error("Total integrations: 22 services");
|
|
134
178
|
}
|
|
135
179
|
// CLI entry point (standalone execution)
|
|
136
180
|
// 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":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,uCAAuC,EAAE,MAAM,mDAAmD,CAAC;AAC5G,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-consultant-tools",
|
|
3
|
-
"version": "35.0.0-beta.
|
|
3
|
+
"version": "35.0.0-beta.3",
|
|
4
4
|
"description": "Complete MCP Consultant Tools package with all integrations: PowerPlatform, Azure DevOps, Azure Management, Figma, Application Insights, Log Analytics, Azure SQL, Service Bus, SharePoint, GitHub Enterprise, and Azure AD B2C",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"scripts": {
|
|
23
23
|
"build": "tsc",
|
|
24
24
|
"clean": "rm -rf build *.tsbuildinfo",
|
|
25
|
+
"test": "vitest run",
|
|
25
26
|
"prepublishOnly": "npm run build"
|
|
26
27
|
},
|
|
27
28
|
"keywords": [
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
"monitoring",
|
|
47
48
|
"crm"
|
|
48
49
|
],
|
|
49
|
-
"author": "
|
|
50
|
+
"author": "Klemens Stelk",
|
|
50
51
|
"license": "MIT",
|
|
51
52
|
"repository": {
|
|
52
53
|
"type": "git",
|
|
@@ -60,18 +61,22 @@
|
|
|
60
61
|
"@mcp-consultant-tools/1password": "35.0.0-beta.1",
|
|
61
62
|
"@mcp-consultant-tools/application-insights": "35.0.0-beta.1",
|
|
62
63
|
"@mcp-consultant-tools/azure-b2c": "35.0.0-beta.1",
|
|
63
|
-
"@mcp-consultant-tools/azure-data-factory": "35.0.0-beta.
|
|
64
|
-
"@mcp-consultant-tools/azure-
|
|
65
|
-
"@mcp-consultant-tools/azure-devops
|
|
66
|
-
"@mcp-consultant-tools/azure-
|
|
67
|
-
"@mcp-consultant-tools/azure-
|
|
64
|
+
"@mcp-consultant-tools/azure-data-factory": "35.0.0-beta.2",
|
|
65
|
+
"@mcp-consultant-tools/azure-defender": "35.0.0-beta.1",
|
|
66
|
+
"@mcp-consultant-tools/azure-devops": "35.0.0-beta.2",
|
|
67
|
+
"@mcp-consultant-tools/azure-devops-admin": "35.0.0-beta.3",
|
|
68
|
+
"@mcp-consultant-tools/azure-management": "35.0.0-beta.2",
|
|
69
|
+
"@mcp-consultant-tools/azure-sql": "35.0.0-beta.2",
|
|
68
70
|
"@mcp-consultant-tools/azure-storage": "35.0.0-beta.1",
|
|
71
|
+
"@mcp-consultant-tools/code-review": "35.0.0-beta.1",
|
|
69
72
|
"@mcp-consultant-tools/core": "34.0.0",
|
|
73
|
+
"@mcp-consultant-tools/entra-id": "35.0.0-beta.1",
|
|
70
74
|
"@mcp-consultant-tools/fabric": "35.0.0-beta.1",
|
|
71
75
|
"@mcp-consultant-tools/figma": "35.0.0-beta.1",
|
|
72
76
|
"@mcp-consultant-tools/github-enterprise": "35.0.0-beta.1",
|
|
73
77
|
"@mcp-consultant-tools/log-analytics": "35.0.0-beta.1",
|
|
74
|
-
"@mcp-consultant-tools/
|
|
78
|
+
"@mcp-consultant-tools/message-center": "35.0.0-beta.1",
|
|
79
|
+
"@mcp-consultant-tools/powerplatform": "35.0.0-beta.2",
|
|
75
80
|
"@mcp-consultant-tools/powerplatform-customization": "35.0.0-beta.1",
|
|
76
81
|
"@mcp-consultant-tools/powerplatform-data": "35.0.0-beta.1",
|
|
77
82
|
"@mcp-consultant-tools/rest-api": "35.0.0-beta.1",
|
|
@@ -83,6 +88,7 @@
|
|
|
83
88
|
},
|
|
84
89
|
"devDependencies": {
|
|
85
90
|
"@types/node": "^22.10.5",
|
|
86
|
-
"typescript": "^5.8.2"
|
|
91
|
+
"typescript": "^5.8.2",
|
|
92
|
+
"vitest": "^2.1.9"
|
|
87
93
|
}
|
|
88
94
|
}
|