@mcp-consultant-tools/powerplatform 27.0.0 → 28.0.0-beta.13
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/PowerPlatformService.d.ts +23 -2
- package/build/PowerPlatformService.d.ts.map +1 -1
- package/build/PowerPlatformService.js +23 -1
- package/build/PowerPlatformService.js.map +1 -1
- package/build/cli/commands/app-commands.d.ts +7 -0
- package/build/cli/commands/app-commands.d.ts.map +1 -0
- package/build/cli/commands/app-commands.js +65 -0
- package/build/cli/commands/app-commands.js.map +1 -0
- package/build/cli/commands/flow-commands.d.ts +7 -0
- package/build/cli/commands/flow-commands.d.ts.map +1 -0
- package/build/cli/commands/flow-commands.js +170 -0
- package/build/cli/commands/flow-commands.js.map +1 -0
- package/build/cli/commands/form-commands.d.ts +7 -0
- package/build/cli/commands/form-commands.d.ts.map +1 -0
- package/build/cli/commands/form-commands.js +104 -0
- package/build/cli/commands/form-commands.js.map +1 -0
- package/build/cli/commands/index.d.ts +15 -0
- package/build/cli/commands/index.d.ts.map +1 -0
- package/build/cli/commands/index.js +30 -0
- package/build/cli/commands/index.js.map +1 -0
- package/build/cli/commands/integration-commands.d.ts +7 -0
- package/build/cli/commands/integration-commands.d.ts.map +1 -0
- package/build/cli/commands/integration-commands.js +97 -0
- package/build/cli/commands/integration-commands.js.map +1 -0
- package/build/cli/commands/metadata-commands.d.ts +7 -0
- package/build/cli/commands/metadata-commands.d.ts.map +1 -0
- package/build/cli/commands/metadata-commands.js +83 -0
- package/build/cli/commands/metadata-commands.js.map +1 -0
- package/build/cli/commands/plugin-commands.d.ts +7 -0
- package/build/cli/commands/plugin-commands.d.ts.map +1 -0
- package/build/cli/commands/plugin-commands.js +79 -0
- package/build/cli/commands/plugin-commands.js.map +1 -0
- package/build/cli/commands/security-commands.d.ts +7 -0
- package/build/cli/commands/security-commands.d.ts.map +1 -0
- package/build/cli/commands/security-commands.js +89 -0
- package/build/cli/commands/security-commands.js.map +1 -0
- package/build/cli/commands/solution-commands.d.ts +7 -0
- package/build/cli/commands/solution-commands.d.ts.map +1 -0
- package/build/cli/commands/solution-commands.js +146 -0
- package/build/cli/commands/solution-commands.js.map +1 -0
- package/build/cli/output.d.ts +11 -0
- package/build/cli/output.d.ts.map +1 -0
- package/build/cli/output.js +10 -0
- package/build/cli/output.js.map +1 -0
- package/build/cli.d.ts +9 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +30 -0
- package/build/cli.js.map +1 -0
- package/build/context-factory.d.ts +11 -0
- package/build/context-factory.d.ts.map +1 -0
- package/build/context-factory.js +39 -0
- package/build/context-factory.js.map +1 -0
- package/build/index.d.ts +10 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +26 -2394
- package/build/index.js.map +1 -1
- package/build/prompts/analysis-prompts.d.ts +3 -0
- package/build/prompts/analysis-prompts.d.ts.map +1 -0
- package/build/prompts/analysis-prompts.js +286 -0
- package/build/prompts/analysis-prompts.js.map +1 -0
- package/build/prompts/entity-prompts.d.ts +3 -0
- package/build/prompts/entity-prompts.d.ts.map +1 -0
- package/build/prompts/entity-prompts.js +304 -0
- package/build/prompts/entity-prompts.js.map +1 -0
- package/build/prompts/index.d.ts +8 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +11 -0
- package/build/prompts/index.js.map +1 -0
- package/build/services/index.d.ts +5 -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/tool-examples.d.ts +48 -0
- package/build/tool-examples.d.ts.map +1 -0
- package/build/tool-examples.js +91 -0
- package/build/tool-examples.js.map +1 -0
- package/build/tools/app-tools.d.ts +3 -0
- package/build/tools/app-tools.d.ts.map +1 -0
- package/build/tools/app-tools.js +127 -0
- package/build/tools/app-tools.js.map +1 -0
- package/build/tools/flow-tools.d.ts +3 -0
- package/build/tools/flow-tools.d.ts.map +1 -0
- package/build/tools/flow-tools.js +374 -0
- package/build/tools/flow-tools.js.map +1 -0
- package/build/tools/form-view-tools.d.ts +3 -0
- package/build/tools/form-view-tools.d.ts.map +1 -0
- package/build/tools/form-view-tools.js +162 -0
- package/build/tools/form-view-tools.js.map +1 -0
- package/build/tools/index.d.ts +14 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +29 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/integration-tools.d.ts +3 -0
- package/build/tools/integration-tools.d.ts.map +1 -0
- package/build/tools/integration-tools.js +325 -0
- package/build/tools/integration-tools.js.map +1 -0
- package/build/tools/metadata-tools.d.ts +3 -0
- package/build/tools/metadata-tools.d.ts.map +1 -0
- package/build/tools/metadata-tools.js +166 -0
- package/build/tools/metadata-tools.js.map +1 -0
- package/build/tools/plugin-tools.d.ts +3 -0
- package/build/tools/plugin-tools.d.ts.map +1 -0
- package/build/tools/plugin-tools.js +138 -0
- package/build/tools/plugin-tools.js.map +1 -0
- package/build/tools/security-tools.d.ts +3 -0
- package/build/tools/security-tools.d.ts.map +1 -0
- package/build/tools/security-tools.js +188 -0
- package/build/tools/security-tools.js.map +1 -0
- package/build/tools/solution-tools.d.ts +3 -0
- package/build/tools/solution-tools.d.ts.map +1 -0
- package/build/tools/solution-tools.js +284 -0
- package/build/tools/solution-tools.js.map +1 -0
- package/build/types.d.ts +9 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/package.json +6 -4
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App Tools - 4 tools for model-driven app inspection
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { descWithExamples, SOLUTION_NAME_EXAMPLES } from '../tool-examples.js';
|
|
6
|
+
export function registerAppTools(server, ctx) {
|
|
7
|
+
server.tool("get-apps", "Get all model-driven apps in the PowerPlatform environment. Returns app name, unique name, URL, published status, and solution association.", {
|
|
8
|
+
activeOnly: z.boolean().optional().describe("Only return active apps (default: false)"),
|
|
9
|
+
maxRecords: z.number().optional().describe("Maximum number of apps to return (default: 100)"),
|
|
10
|
+
includeUnpublished: z.boolean().optional().describe("Include unpublished/draft apps (default: true)"),
|
|
11
|
+
solutionUniqueName: z.string().optional().describe(descWithExamples("Filter apps by solution unique name", SOLUTION_NAME_EXAMPLES)),
|
|
12
|
+
}, async ({ activeOnly, maxRecords, includeUnpublished, solutionUniqueName }) => {
|
|
13
|
+
try {
|
|
14
|
+
const service = ctx.pp;
|
|
15
|
+
const result = await service.getApps(activeOnly || false, maxRecords || 100, includeUnpublished !== undefined ? includeUnpublished : true, solutionUniqueName);
|
|
16
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
17
|
+
return {
|
|
18
|
+
content: [
|
|
19
|
+
{
|
|
20
|
+
type: "text",
|
|
21
|
+
text: `Model-Driven Apps (found ${result.totalCount}):\n\n${resultStr}`,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error("Error getting apps:", error);
|
|
28
|
+
return {
|
|
29
|
+
content: [
|
|
30
|
+
{
|
|
31
|
+
type: "text",
|
|
32
|
+
text: `Failed to get apps: ${error.message}`,
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
isError: true
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
server.tool("get-app", "Get detailed information about a specific model-driven app", {
|
|
40
|
+
appId: z.string().describe("The GUID of the app (appmoduleid)"),
|
|
41
|
+
}, async ({ appId }) => {
|
|
42
|
+
try {
|
|
43
|
+
const service = ctx.pp;
|
|
44
|
+
const result = await service.getApp(appId);
|
|
45
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
46
|
+
return {
|
|
47
|
+
content: [
|
|
48
|
+
{
|
|
49
|
+
type: "text",
|
|
50
|
+
text: `Model-Driven App '${result.name}':\n\n${resultStr}`,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error("Error getting app:", error);
|
|
57
|
+
return {
|
|
58
|
+
content: [
|
|
59
|
+
{
|
|
60
|
+
type: "text",
|
|
61
|
+
text: `Failed to get app: ${error.message}`,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
isError: true
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
server.tool("get-app-components", "Get all components (entities, forms, views, sitemaps) in a model-driven app", {
|
|
69
|
+
appId: z.string().describe("The GUID of the app (appmoduleid)"),
|
|
70
|
+
}, async ({ appId }) => {
|
|
71
|
+
try {
|
|
72
|
+
const service = ctx.pp;
|
|
73
|
+
const result = await service.getAppComponents(appId);
|
|
74
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
75
|
+
return {
|
|
76
|
+
content: [
|
|
77
|
+
{
|
|
78
|
+
type: "text",
|
|
79
|
+
text: `App Components (found ${result.totalCount}):\n\n${resultStr}`,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
console.error("Error getting app components:", error);
|
|
86
|
+
return {
|
|
87
|
+
content: [
|
|
88
|
+
{
|
|
89
|
+
type: "text",
|
|
90
|
+
text: `Failed to get app components: ${error.message}`,
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
isError: true
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
server.tool("get-app-sitemap", "Get the sitemap (navigation) configuration for a model-driven app", {
|
|
98
|
+
appId: z.string().describe("The GUID of the app (appmoduleid)"),
|
|
99
|
+
}, async ({ appId }) => {
|
|
100
|
+
try {
|
|
101
|
+
const service = ctx.pp;
|
|
102
|
+
const result = await service.getAppSitemap(appId);
|
|
103
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
104
|
+
return {
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: "text",
|
|
108
|
+
text: `App Sitemap:\n\n${resultStr}`,
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error("Error getting app sitemap:", error);
|
|
115
|
+
return {
|
|
116
|
+
content: [
|
|
117
|
+
{
|
|
118
|
+
type: "text",
|
|
119
|
+
text: `Failed to get app sitemap: ${error.message}`,
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
isError: true
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=app-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-tools.js","sourceRoot":"","sources":["../../src/tools/app-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-tools.d.ts","sourceRoot":"","sources":["../../src/tools/flow-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAsbxE"}
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow Tools - 9 tools for flow/workflow/business rule inspection
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { descWithExamples, ENTITY_NAME_EXAMPLES, FLOW_CATEGORY_EXAMPLES, STATECODE_EXAMPLES, FLOW_RUN_STATUS_EXAMPLES } from '../tool-examples.js';
|
|
6
|
+
export function registerFlowTools(server, ctx) {
|
|
7
|
+
server.tool("get-flows", "Get Power Automate cloud flows. By default excludes non-custom flows (Customer Insights CXP_, SYSTEM, Copilot for Sales) to show only custom flows. Use exclude* parameters to override. Returns summary info only - use get-flow-definition for full flow details.", {
|
|
8
|
+
activeOnly: z.boolean().optional().describe("Only return activated flows (default: false)"),
|
|
9
|
+
maxRecords: z.number().optional().describe("Maximum number of flows to return (default: 25)"),
|
|
10
|
+
excludeCustomerInsights: z.boolean().optional().describe("Exclude Customer Insights flows (CXP_ prefix) (default: true)"),
|
|
11
|
+
excludeSystem: z.boolean().optional().describe("Exclude SYSTEM-modified flows (default: true)"),
|
|
12
|
+
excludeCopilotSales: z.boolean().optional().describe("Exclude Copilot for Sales flows (default: true)"),
|
|
13
|
+
nameContains: z.string().optional().describe("Filter flows by name (case-insensitive contains)"),
|
|
14
|
+
}, async ({ activeOnly, maxRecords, excludeCustomerInsights, excludeSystem, excludeCopilotSales, nameContains }) => {
|
|
15
|
+
try {
|
|
16
|
+
const service = ctx.pp;
|
|
17
|
+
const result = await service.getFlows({
|
|
18
|
+
activeOnly: activeOnly ?? false,
|
|
19
|
+
maxRecords: maxRecords ?? 25,
|
|
20
|
+
excludeCustomerInsights: excludeCustomerInsights ?? true,
|
|
21
|
+
excludeSystem: excludeSystem ?? true,
|
|
22
|
+
excludeCopilotSales: excludeCopilotSales ?? true,
|
|
23
|
+
nameContains,
|
|
24
|
+
});
|
|
25
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
26
|
+
let message = `Found ${result.totalCount} Power Automate flows`;
|
|
27
|
+
if (result.excluded.total > 0) {
|
|
28
|
+
const exclusions = [];
|
|
29
|
+
if (result.excluded.system > 0) {
|
|
30
|
+
exclusions.push(`${result.excluded.system} SYSTEM`);
|
|
31
|
+
}
|
|
32
|
+
if (result.excluded.copilotSales > 0) {
|
|
33
|
+
exclusions.push(`${result.excluded.copilotSales} Copilot for Sales`);
|
|
34
|
+
}
|
|
35
|
+
message += ` (excluded: ${exclusions.join(', ')})`;
|
|
36
|
+
}
|
|
37
|
+
if (result.filterApplied.excludeCustomerInsights) {
|
|
38
|
+
message += '\nNote: Customer Insights (CXP_) flows filtered server-side';
|
|
39
|
+
}
|
|
40
|
+
if (result.hasMore) {
|
|
41
|
+
message += `\n⚠️ More flows available - increase maxRecords (currently ${result.requestedMax}) to retrieve more`;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
content: [
|
|
45
|
+
{
|
|
46
|
+
type: "text",
|
|
47
|
+
text: `${message}:\n\n${resultStr}`,
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error("Error getting flows:", error);
|
|
54
|
+
return {
|
|
55
|
+
content: [
|
|
56
|
+
{
|
|
57
|
+
type: "text",
|
|
58
|
+
text: `Failed to get flows: ${error.message}`,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
server.tool("search-workflows", "Search workflows (both classic workflows and Power Automate flows) with flexible filtering. Supports searching by name, entity, description, category, and state. Useful for finding documented workflows (search description for 'AUTO-DOCS'), finding workflows by entity, or locating specific workflows by name.", {
|
|
65
|
+
name: z.string().optional().describe("Filter by workflow name (case-insensitive partial match)"),
|
|
66
|
+
primaryEntity: z.string().optional().describe(descWithExamples("Filter by primary entity logical name", ENTITY_NAME_EXAMPLES)),
|
|
67
|
+
description: z.string().optional().describe("Search in description field (e.g., 'AUTO-DOCS:v1' for documented workflows)"),
|
|
68
|
+
category: z.number().optional().describe(descWithExamples("Filter by workflow category", FLOW_CATEGORY_EXAMPLES)),
|
|
69
|
+
statecode: z.number().optional().describe(descWithExamples("Filter by state", STATECODE_EXAMPLES)),
|
|
70
|
+
includeDescription: z.boolean().optional().describe("Include full description field in results (default: true)"),
|
|
71
|
+
maxResults: z.number().optional().describe("Maximum number of workflows to return (default: 50, max: 1000)"),
|
|
72
|
+
}, async ({ name, primaryEntity, description, category, statecode, includeDescription, maxResults }) => {
|
|
73
|
+
try {
|
|
74
|
+
const service = ctx.pp;
|
|
75
|
+
const validatedMaxResults = maxResults ? Math.min(maxResults, 1000) : 50;
|
|
76
|
+
const result = await service.searchWorkflows({
|
|
77
|
+
name,
|
|
78
|
+
primaryEntity,
|
|
79
|
+
description,
|
|
80
|
+
category,
|
|
81
|
+
statecode,
|
|
82
|
+
includeDescription: includeDescription ?? true,
|
|
83
|
+
maxResults: validatedMaxResults,
|
|
84
|
+
});
|
|
85
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
86
|
+
let message = `Found ${result.totalCount} workflow(s)`;
|
|
87
|
+
const filters = [];
|
|
88
|
+
if (name)
|
|
89
|
+
filters.push(`name contains '${name}'`);
|
|
90
|
+
if (primaryEntity)
|
|
91
|
+
filters.push(`entity = '${primaryEntity}'`);
|
|
92
|
+
if (description)
|
|
93
|
+
filters.push(`description contains '${description}'`);
|
|
94
|
+
if (category !== undefined)
|
|
95
|
+
filters.push(`category = ${category}`);
|
|
96
|
+
if (statecode !== undefined)
|
|
97
|
+
filters.push(`state = ${statecode}`);
|
|
98
|
+
if (filters.length > 0) {
|
|
99
|
+
message += ` matching: ${filters.join(', ')}`;
|
|
100
|
+
}
|
|
101
|
+
if (result.hasMore) {
|
|
102
|
+
message += `\n⚠️ More workflows available - increase maxResults (currently ${result.requestedMax}) to retrieve more`;
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
content: [
|
|
106
|
+
{
|
|
107
|
+
type: "text",
|
|
108
|
+
text: `${message}:\n\n${resultStr}`,
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error("Error searching workflows:", error);
|
|
115
|
+
return {
|
|
116
|
+
content: [
|
|
117
|
+
{
|
|
118
|
+
type: "text",
|
|
119
|
+
text: `Failed to search workflows: ${error.message}`,
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
isError: true
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
server.tool("get-flow-definition", "Get the definition of a specific Power Automate flow. Use summary=true to get a parsed summary (trigger, actions, connectors) instead of the full JSON definition.", {
|
|
127
|
+
flowId: z.string().describe("The GUID of the flow (workflowid)"),
|
|
128
|
+
summary: z.boolean().optional().describe("Return parsed summary instead of full definition (default: false). Recommended for initial analysis to reduce response size."),
|
|
129
|
+
}, async ({ flowId, summary }) => {
|
|
130
|
+
try {
|
|
131
|
+
const service = ctx.pp;
|
|
132
|
+
const result = await service.getFlowDefinition(flowId, summary || false);
|
|
133
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
134
|
+
let message = `Flow definition for '${result.name}'`;
|
|
135
|
+
if (summary) {
|
|
136
|
+
message += ' (summary mode)';
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
content: [
|
|
140
|
+
{
|
|
141
|
+
type: "text",
|
|
142
|
+
text: `${message}:\n\n${resultStr}`,
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
console.error("Error getting flow definition:", error);
|
|
149
|
+
return {
|
|
150
|
+
content: [
|
|
151
|
+
{
|
|
152
|
+
type: "text",
|
|
153
|
+
text: `Failed to get flow definition: ${error.message}`,
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
server.tool("get-flow-runs", "Get the run history for a specific Power Automate flow using the Management API. Returns run status, timestamps, trigger info, and error details for failed runs. Use this to investigate flow failures during incident triage.", {
|
|
160
|
+
flowId: z.string().describe("The GUID of the flow (workflowid)"),
|
|
161
|
+
status: z.string().optional().describe(descWithExamples("Filter by run status", FLOW_RUN_STATUS_EXAMPLES)),
|
|
162
|
+
startedAfter: z.string().optional().describe("Only return runs started after this date (ISO 8601 format, e.g., '2026-01-21T00:00:00Z')"),
|
|
163
|
+
startedBefore: z.string().optional().describe("Only return runs started before this date (ISO 8601 format)"),
|
|
164
|
+
maxRecords: z.number().optional().describe("Maximum number of runs to return (default: 50, max: 250)"),
|
|
165
|
+
}, async ({ flowId, status, startedAfter, startedBefore, maxRecords }) => {
|
|
166
|
+
try {
|
|
167
|
+
const service = ctx.pp;
|
|
168
|
+
const result = await service.getFlowRuns(flowId, {
|
|
169
|
+
status,
|
|
170
|
+
startedAfter,
|
|
171
|
+
startedBefore,
|
|
172
|
+
maxRecords: maxRecords || 50,
|
|
173
|
+
});
|
|
174
|
+
const stats = (result.runs || []).reduce((acc, run) => {
|
|
175
|
+
if (run.status === 'Succeeded')
|
|
176
|
+
acc.succeeded++;
|
|
177
|
+
else if (run.status === 'Failed' || run.status === 'Faulted' || run.status === 'TimedOut')
|
|
178
|
+
acc.failed++;
|
|
179
|
+
else if (run.status === 'Running' || run.status === 'Waiting')
|
|
180
|
+
acc.inProgress++;
|
|
181
|
+
else if (run.status === 'Cancelled')
|
|
182
|
+
acc.cancelled++;
|
|
183
|
+
else
|
|
184
|
+
acc.other++;
|
|
185
|
+
return acc;
|
|
186
|
+
}, { succeeded: 0, failed: 0, inProgress: 0, cancelled: 0, other: 0 });
|
|
187
|
+
const failedRuns = result.runs.filter((r) => r.status === 'Failed' || r.error);
|
|
188
|
+
const failedSummary = failedRuns.length > 0
|
|
189
|
+
? `\n\nFailed Runs (${failedRuns.length}):\n` + failedRuns.map((r) => ` - ${r.runId}: ${r.error?.message || 'Unknown error'} (${r.startTime})`).join('\n')
|
|
190
|
+
: '';
|
|
191
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
192
|
+
return {
|
|
193
|
+
content: [
|
|
194
|
+
{
|
|
195
|
+
type: "text",
|
|
196
|
+
text: `Found ${result.totalCount} flow runs for flow ${flowId}${result.hasMore ? ' (more available)' : ''}:\n\nStats:\n- Succeeded: ${stats.succeeded}\n- Failed: ${stats.failed}\n- In Progress: ${stats.inProgress}\n- Cancelled: ${stats.cancelled}\n- Other: ${stats.other}${failedSummary}\n\nFilters Applied: ${JSON.stringify(result.filterApplied)}\n\n${resultStr}`,
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
console.error("Error getting flow runs:", error);
|
|
203
|
+
return {
|
|
204
|
+
content: [
|
|
205
|
+
{
|
|
206
|
+
type: "text",
|
|
207
|
+
text: `Failed to get flow runs: ${error.message}`,
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
isError: true,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
server.tool("get-flow-run-details", "Get detailed action-level execution information for a specific Power Automate flow run to verify which business logic steps were executed", {
|
|
215
|
+
flowId: z.string().describe("The GUID of the flow (workflowid)"),
|
|
216
|
+
runId: z.string().describe("The GUID of the flow run (flowrunid) - get this from get-flow-runs tool"),
|
|
217
|
+
}, async ({ flowId, runId }) => {
|
|
218
|
+
try {
|
|
219
|
+
const service = ctx.pp;
|
|
220
|
+
const result = await service.getFlowRunDetails(flowId, runId);
|
|
221
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
222
|
+
const r = result;
|
|
223
|
+
const actionsList = Object.entries(r.actions || {})
|
|
224
|
+
.map(([name, action]) => {
|
|
225
|
+
const statusIcon = action.status === 'Succeeded' ? '✓' : action.status === 'Failed' ? '✗' : action.status === 'Skipped' ? '⊘' : '?';
|
|
226
|
+
return ` ${statusIcon} ${name}: ${action.status}${action.error ? ' - ' + JSON.stringify(action.error) : ''}`;
|
|
227
|
+
})
|
|
228
|
+
.join('\n');
|
|
229
|
+
return {
|
|
230
|
+
content: [
|
|
231
|
+
{
|
|
232
|
+
type: "text",
|
|
233
|
+
text: `Flow Run Details for ${flowId}/${runId}:\n\nOverall Status: ${r.status}\nStart Time: ${r.startTime}\nEnd Time: ${r.endTime}\n\nTrigger:\n Name: ${r.trigger?.name}\n Status: ${r.trigger?.status}\n\nActions Summary:\n- Total: ${r.actionsSummary?.total}\n- Succeeded: ${r.actionsSummary?.succeeded}\n- Failed: ${r.actionsSummary?.failed}\n- Skipped: ${r.actionsSummary?.skipped}\n- Other: ${r.actionsSummary?.other}\n\nAction Execution Details:\n${actionsList}\n\nFull JSON Response:\n${resultStr}`,
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
console.error("Error getting flow run details:", error);
|
|
240
|
+
return {
|
|
241
|
+
content: [
|
|
242
|
+
{
|
|
243
|
+
type: "text",
|
|
244
|
+
text: `Failed to get flow run details: ${error.message}`,
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
server.tool("get-workflows", "Get a list of classic Dynamics workflows in the environment. Returns summary info only - use get-workflow-definition for full XAML.", {
|
|
251
|
+
activeOnly: z.boolean().optional().describe("Only return activated workflows (default: false)"),
|
|
252
|
+
maxRecords: z.number().optional().describe("Maximum number of workflows to return (default: 25)"),
|
|
253
|
+
}, async ({ activeOnly, maxRecords }) => {
|
|
254
|
+
try {
|
|
255
|
+
const service = ctx.pp;
|
|
256
|
+
const result = await service.getWorkflows(activeOnly || false, maxRecords || 25);
|
|
257
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
258
|
+
let message = `Found ${result.totalCount} classic Dynamics workflows`;
|
|
259
|
+
if (result.hasMore) {
|
|
260
|
+
message += `\n⚠️ More workflows available - increase maxRecords (currently ${result.requestedMax}) to retrieve more`;
|
|
261
|
+
}
|
|
262
|
+
return {
|
|
263
|
+
content: [
|
|
264
|
+
{
|
|
265
|
+
type: "text",
|
|
266
|
+
text: `${message}:\n\n${resultStr}`,
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
console.error("Error getting workflows:", error);
|
|
273
|
+
return {
|
|
274
|
+
content: [
|
|
275
|
+
{
|
|
276
|
+
type: "text",
|
|
277
|
+
text: `Failed to get workflows: ${error.message}`,
|
|
278
|
+
},
|
|
279
|
+
],
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
server.tool("get-workflow-definition", "Get the definition of a specific classic Dynamics workflow. Use summary=true to get a parsed summary (activities, conditions, email sends) instead of raw XAML.", {
|
|
284
|
+
workflowId: z.string().describe("The GUID of the workflow (workflowid)"),
|
|
285
|
+
summary: z.boolean().optional().describe("Return parsed summary instead of full XAML (default: false). Recommended for initial analysis to reduce response size."),
|
|
286
|
+
}, async ({ workflowId, summary }) => {
|
|
287
|
+
try {
|
|
288
|
+
const service = ctx.pp;
|
|
289
|
+
const result = await service.getWorkflowDefinition(workflowId, summary || false);
|
|
290
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
291
|
+
let message = `Workflow definition for '${result.name}'`;
|
|
292
|
+
if (summary) {
|
|
293
|
+
message += ' (summary mode)';
|
|
294
|
+
}
|
|
295
|
+
return {
|
|
296
|
+
content: [
|
|
297
|
+
{
|
|
298
|
+
type: "text",
|
|
299
|
+
text: `${message}:\n\n${resultStr}`,
|
|
300
|
+
},
|
|
301
|
+
],
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
console.error("Error getting workflow definition:", error);
|
|
306
|
+
return {
|
|
307
|
+
content: [
|
|
308
|
+
{
|
|
309
|
+
type: "text",
|
|
310
|
+
text: `Failed to get workflow definition: ${error.message}`,
|
|
311
|
+
},
|
|
312
|
+
],
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
server.tool("get-business-rules", "Get a list of all business rules in the environment (read-only for troubleshooting)", {
|
|
317
|
+
activeOnly: z.boolean().optional().describe("Only return activated business rules (default: false)"),
|
|
318
|
+
maxRecords: z.number().optional().describe("Maximum number of business rules to return (default: 100)"),
|
|
319
|
+
}, async ({ activeOnly, maxRecords }) => {
|
|
320
|
+
try {
|
|
321
|
+
const service = ctx.pp;
|
|
322
|
+
const result = await service.getBusinessRules(activeOnly || false, maxRecords || 100);
|
|
323
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
324
|
+
return {
|
|
325
|
+
content: [
|
|
326
|
+
{
|
|
327
|
+
type: "text",
|
|
328
|
+
text: `Found ${result.totalCount} business rules:\n\n${resultStr}`,
|
|
329
|
+
},
|
|
330
|
+
],
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
console.error("Error getting business rules:", error);
|
|
335
|
+
return {
|
|
336
|
+
content: [
|
|
337
|
+
{
|
|
338
|
+
type: "text",
|
|
339
|
+
text: `Failed to get business rules: ${error.message}`,
|
|
340
|
+
},
|
|
341
|
+
],
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
server.tool("get-business-rule", "Get the complete definition of a specific business rule including its XAML (read-only for troubleshooting)", {
|
|
346
|
+
workflowId: z.string().describe("The GUID of the business rule (workflowid)"),
|
|
347
|
+
}, async ({ workflowId }) => {
|
|
348
|
+
try {
|
|
349
|
+
const service = ctx.pp;
|
|
350
|
+
const result = await service.getBusinessRule(workflowId);
|
|
351
|
+
const resultStr = JSON.stringify(result, null, 2);
|
|
352
|
+
return {
|
|
353
|
+
content: [
|
|
354
|
+
{
|
|
355
|
+
type: "text",
|
|
356
|
+
text: `Business rule definition for '${result.name}':\n\n${resultStr}`,
|
|
357
|
+
},
|
|
358
|
+
],
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
catch (error) {
|
|
362
|
+
console.error("Error getting business rule:", error);
|
|
363
|
+
return {
|
|
364
|
+
content: [
|
|
365
|
+
{
|
|
366
|
+
type: "text",
|
|
367
|
+
text: `Failed to get business rule: ${error.message}`,
|
|
368
|
+
},
|
|
369
|
+
],
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=flow-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-tools.js","sourceRoot":"","sources":["../../src/tools/flow-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-view-tools.d.ts","sourceRoot":"","sources":["../../src/tools/form-view-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAiN5E"}
|