@frontmcp/plugin-dashboard 0.0.1 → 0.7.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/plugin-dashboard",
3
- "version": "0.0.1",
3
+ "version": "0.7.0",
4
4
  "description": "Dashboard plugin for FrontMCP - visual monitoring and introspection of MCP servers",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "license": "Apache-2.0",
@@ -0,0 +1,59 @@
1
+ import { ScopeEntry } from '@frontmcp/sdk';
2
+ import type { GraphData } from '../shared/types';
3
+ import { GraphDataProviderToken } from '../dashboard.symbol';
4
+ export { GraphDataProviderToken };
5
+ /**
6
+ * Provider that extracts graph data from all scopes at runtime.
7
+ *
8
+ * This provider introspects the FrontMCP server structure and builds a graph
9
+ * representation of all registered tools, resources, prompts, and apps.
10
+ *
11
+ * Features:
12
+ * - Traverses all scopes (excluding the dashboard scope itself)
13
+ * - Caches extracted data for 5 seconds to avoid expensive re-extraction
14
+ * - Supports standalone apps by traversing the provider hierarchy
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const provider = this.get(GraphDataProvider);
19
+ * const graph = await provider.getGraphData();
20
+ * console.log(`Found ${graph.nodes.length} nodes`);
21
+ * ```
22
+ */
23
+ export declare class GraphDataProvider {
24
+ private readonly scope;
25
+ private readonly serverName;
26
+ private readonly serverVersion?;
27
+ /** Cached graph data to avoid re-extraction on every request */
28
+ private cachedData;
29
+ /** Timestamp of when the cache was last updated */
30
+ private cacheTimestamp;
31
+ /** Cache time-to-live in milliseconds */
32
+ private readonly cacheTTL;
33
+ constructor(scope: ScopeEntry, serverName: string, serverVersion?: string | undefined);
34
+ /**
35
+ * Get graph data for the current scope.
36
+ * Uses caching to avoid expensive extraction on every request.
37
+ */
38
+ getGraphData(): Promise<GraphData>;
39
+ /**
40
+ * Invalidate the cache to force fresh extraction.
41
+ */
42
+ invalidateCache(): void;
43
+ /**
44
+ * Get all scopes from the ScopeRegistry, excluding the dashboard scope.
45
+ * Traverses up the provider hierarchy to find the ScopeRegistry if not found locally.
46
+ */
47
+ private getMonitoredScopes;
48
+ /**
49
+ * Extract graph data from all monitored scopes.
50
+ */
51
+ private extractGraphData;
52
+ private extractToolsFromScope;
53
+ private extractResourcesFromScope;
54
+ private extractResourceTemplatesFromScope;
55
+ private extractPromptsFromScope;
56
+ private extractAppsFromScope;
57
+ private createMetadata;
58
+ }
59
+ //# sourceMappingURL=graph-data.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-data.provider.d.ts","sourceRoot":"","sources":["../../src/providers/graph-data.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAuC,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAGa,iBAAiB;IAW1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAZjC,gEAAgE;IAChE,OAAO,CAAC,UAAU,CAA0B;IAE5C,mDAAmD;IACnD,OAAO,CAAC,cAAc,CAAK;IAE3B,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAGd,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,YAAA;IAGzC;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAexC;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoC1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsExB,OAAO,CAAC,qBAAqB;IAwC7B,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,iCAAiC;IAkCzC,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,cAAc;CAUvB"}
@@ -0,0 +1,2 @@
1
+ export { GraphDataProvider, GraphDataProviderToken } from './graph-data.provider';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Safely create a RegExp from user input to prevent ReDoS attacks.
3
+ * Returns null if the pattern is invalid or potentially dangerous.
4
+ *
5
+ * @param pattern - The regex pattern string from user input
6
+ * @returns A compiled RegExp or null if the pattern is unsafe/invalid
7
+ */
8
+ export declare function safeRegex(pattern: string): RegExp | null;
9
+ //# sourceMappingURL=safe-regex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-regex.d.ts","sourceRoot":"","sources":["../../src/shared/safe-regex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcxD"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Shared types for dashboard plugin.
3
+ */
4
+ /**
5
+ * Node types in the MCP server graph.
6
+ */
7
+ export type GraphNodeType = 'server' | 'scope' | 'app' | 'plugin' | 'adapter' | 'tool' | 'resource' | 'resource-template' | 'prompt' | 'auth';
8
+ /**
9
+ * Owner reference for lineage tracking.
10
+ */
11
+ export interface GraphOwnerRef {
12
+ kind: string;
13
+ id: string;
14
+ }
15
+ /**
16
+ * Prompt argument definition.
17
+ */
18
+ export interface PromptArgument {
19
+ name: string;
20
+ description?: string;
21
+ required?: boolean;
22
+ }
23
+ /**
24
+ * Node data containing metadata.
25
+ */
26
+ export interface GraphNodeData {
27
+ name: string;
28
+ description?: string;
29
+ owner?: GraphOwnerRef;
30
+ lineage?: GraphOwnerRef[];
31
+ inputSchema?: unknown;
32
+ outputSchema?: unknown;
33
+ tags?: string[];
34
+ annotations?: Record<string, unknown>;
35
+ uri?: string;
36
+ mimeType?: string;
37
+ arguments?: PromptArgument[];
38
+ authType?: string;
39
+ }
40
+ /**
41
+ * A node in the MCP server graph.
42
+ */
43
+ export interface GraphNode {
44
+ id: string;
45
+ type: GraphNodeType;
46
+ label: string;
47
+ data: GraphNodeData;
48
+ }
49
+ /**
50
+ * Edge types in the graph.
51
+ */
52
+ export type GraphEdgeType = 'contains' | 'provides' | 'uses';
53
+ /**
54
+ * An edge connecting two nodes in the graph.
55
+ */
56
+ export interface GraphEdge {
57
+ id: string;
58
+ source: string;
59
+ target: string;
60
+ type: GraphEdgeType;
61
+ label?: string;
62
+ }
63
+ /**
64
+ * Metadata about the graph generation.
65
+ */
66
+ export interface GraphMetadata {
67
+ serverName: string;
68
+ serverVersion?: string;
69
+ generatedAt: string;
70
+ entryFile: string;
71
+ nodeCount: number;
72
+ edgeCount: number;
73
+ }
74
+ /**
75
+ * Complete graph data structure.
76
+ */
77
+ export interface GraphData {
78
+ nodes: GraphNode[];
79
+ edges: GraphEdge[];
80
+ metadata: GraphMetadata;
81
+ }
82
+ /**
83
+ * Registry change event types.
84
+ */
85
+ export type RegistryChangeKind = 'added' | 'removed' | 'updated';
86
+ /**
87
+ * Registry type.
88
+ */
89
+ export type RegistryType = 'tools' | 'resources' | 'prompts' | 'adapters' | 'plugins' | 'apps';
90
+ /**
91
+ * Registry change event payload.
92
+ */
93
+ export interface RegistryChangeEvent {
94
+ registry: RegistryType;
95
+ kind: RegistryChangeKind;
96
+ id: string;
97
+ name?: string;
98
+ timestamp: string;
99
+ }
100
+ /**
101
+ * Traffic request event payload.
102
+ */
103
+ export interface TrafficEvent {
104
+ id: string;
105
+ method: string;
106
+ path: string;
107
+ statusCode: number;
108
+ duration: number;
109
+ timestamp: string;
110
+ clientId?: string;
111
+ }
112
+ /**
113
+ * Log entry event payload.
114
+ */
115
+ export interface LogEntry {
116
+ id: string;
117
+ level: 'debug' | 'info' | 'warn' | 'error';
118
+ message: string;
119
+ timestamp: string;
120
+ metadata?: Record<string, unknown>;
121
+ }
122
+ /**
123
+ * Metric update event payload.
124
+ */
125
+ export interface MetricEvent {
126
+ name: string;
127
+ value: number;
128
+ unit?: string;
129
+ timestamp: string;
130
+ labels?: Record<string, string>;
131
+ }
132
+ /**
133
+ * Dashboard event types for SSE.
134
+ */
135
+ export type DashboardEvent = {
136
+ type: 'registry:change';
137
+ payload: RegistryChangeEvent;
138
+ } | {
139
+ type: 'traffic:request';
140
+ payload: TrafficEvent;
141
+ } | {
142
+ type: 'log:entry';
143
+ payload: LogEntry;
144
+ } | {
145
+ type: 'metric:update';
146
+ payload: MetricEvent;
147
+ } | {
148
+ type: 'graph:update';
149
+ payload: GraphData;
150
+ } | {
151
+ type: 'connected';
152
+ payload: {
153
+ clientId: string;
154
+ timestamp: string;
155
+ };
156
+ };
157
+ /**
158
+ * Connection status for dashboard.
159
+ */
160
+ export type ConnectionStatus = 'connected' | 'connecting' | 'disconnected' | 'error';
161
+ /**
162
+ * Server info for dashboard.
163
+ */
164
+ export interface ServerInfo {
165
+ name: string;
166
+ version?: string;
167
+ url: string;
168
+ status: ConnectionStatus;
169
+ }
170
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { ToolContext } from '@frontmcp/sdk';
2
+ import { z } from 'zod';
3
+ import type { GraphData } from '../shared/types';
4
+ /**
5
+ * Input schema for the graph tool.
6
+ */
7
+ export declare const graphToolInputSchema: {
8
+ includeSchemas: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
9
+ refresh: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
10
+ };
11
+ export type GraphToolInput = z.infer<z.ZodObject<typeof graphToolInputSchema>>;
12
+ /**
13
+ * Tool to get the server graph showing all tools, resources, prompts, and their relationships.
14
+ */
15
+ export default class GraphTool extends ToolContext {
16
+ execute(input: GraphToolInput): Promise<GraphData>;
17
+ }
18
+ //# sourceMappingURL=graph.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.tool.d.ts","sourceRoot":"","sources":["../../src/tools/graph.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAE/E;;GAEG;AAUH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAC1C,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;CA2BzD"}
@@ -0,0 +1,4 @@
1
+ export { default as GraphTool } from './graph.tool';
2
+ export { default as ListToolsTool } from './list-tools.tool';
3
+ export { default as ListResourcesTool } from './list-resources.tool';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { ToolContext } from '@frontmcp/sdk';
2
+ import { z } from 'zod';
3
+ /**
4
+ * Input schema for the list-resources tool.
5
+ */
6
+ export declare const listResourcesInputSchema: z.ZodObject<{
7
+ filter: z.ZodOptional<z.ZodString>;
8
+ includeTemplates: z.ZodDefault<z.ZodBoolean>;
9
+ }, z.core.$strip>;
10
+ export type ListResourcesInput = z.output<typeof listResourcesInputSchema>;
11
+ /**
12
+ * Output schema for the list-resources tool.
13
+ */
14
+ export declare const listResourcesOutputSchema: z.ZodObject<{
15
+ resources: z.ZodArray<z.ZodObject<{
16
+ name: z.ZodString;
17
+ uri: z.ZodString;
18
+ description: z.ZodOptional<z.ZodString>;
19
+ mimeType: z.ZodOptional<z.ZodString>;
20
+ isTemplate: z.ZodBoolean;
21
+ }, z.core.$strip>>;
22
+ count: z.ZodNumber;
23
+ }, z.core.$strip>;
24
+ export type ListResourcesOutput = z.output<typeof listResourcesOutputSchema>;
25
+ /**
26
+ * Tool to list all resources available in the monitored server (parent scope).
27
+ */
28
+ export default class ListResourcesTool extends ToolContext {
29
+ execute(input: ListResourcesInput): Promise<ListResourcesOutput>;
30
+ }
31
+ //# sourceMappingURL=list-resources.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-resources.tool.d.ts","sourceRoot":"","sources":["../../src/tools/list-resources.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAc,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;iBAWpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE7E;;GAEG;AAUH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW;IAClD,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAwDvE"}
@@ -0,0 +1,33 @@
1
+ import { ToolContext } from '@frontmcp/sdk';
2
+ import { z } from 'zod';
3
+ /**
4
+ * Input schema for the list-tools tool.
5
+ */
6
+ export declare const listToolsInputSchema: z.ZodObject<{
7
+ filter: z.ZodOptional<z.ZodString>;
8
+ includePlugins: z.ZodDefault<z.ZodBoolean>;
9
+ includeSchemas: z.ZodDefault<z.ZodBoolean>;
10
+ }, z.core.$strip>;
11
+ export type ListToolsInput = z.output<typeof listToolsInputSchema>;
12
+ /**
13
+ * Output schema for the list-tools tool.
14
+ */
15
+ export declare const listToolsOutputSchema: z.ZodObject<{
16
+ tools: z.ZodArray<z.ZodObject<{
17
+ name: z.ZodString;
18
+ fullName: z.ZodString;
19
+ description: z.ZodOptional<z.ZodString>;
20
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
+ inputSchema: z.ZodOptional<z.ZodUnknown>;
22
+ outputSchema: z.ZodOptional<z.ZodUnknown>;
23
+ }, z.core.$strip>>;
24
+ count: z.ZodNumber;
25
+ }, z.core.$strip>;
26
+ export type ListToolsOutput = z.output<typeof listToolsOutputSchema>;
27
+ /**
28
+ * Tool to list all tools available in the monitored server (parent scope).
29
+ */
30
+ export default class ListToolsTool extends ToolContext {
31
+ execute(input: ListToolsInput): Promise<ListToolsOutput>;
32
+ }
33
+ //# sourceMappingURL=list-tools.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-tools.tool.d.ts","sourceRoot":"","sources":["../../src/tools/list-tools.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAc,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAYhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAErE;;GAEG;AAWH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IAC9C,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CAgD/D"}