mcp-dashboards 2.1.0 → 2.4.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/README.md +291 -244
- package/THIRD_PARTY_LICENSES.md +337 -0
- package/dist/index.js +38 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp-app.html +543 -416
- package/dist/preview-server.d.ts +3 -2
- package/dist/preview-server.d.ts.map +1 -1
- package/dist/preview-server.js +69 -10
- package/dist/preview-server.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +453 -86
- package/dist/server.js.map +1 -1
- package/dist/url-safety.d.ts +30 -0
- package/dist/url-safety.d.ts.map +1 -0
- package/dist/url-safety.js +164 -0
- package/dist/url-safety.js.map +1 -0
- package/package.json +112 -103
package/dist/preview-server.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
export declare const TEMP_DIR: string;
|
|
2
|
+
export declare const CHART_FILENAME_RE: RegExp;
|
|
3
|
+
export declare function evictChartFromCache(id: string): boolean;
|
|
2
4
|
export interface PreviewUrls {
|
|
3
5
|
httpUrl: string;
|
|
4
6
|
fileUrl: string;
|
|
5
7
|
}
|
|
6
8
|
export declare function getPreviewUrls(data: any): Promise<PreviewUrls | null>;
|
|
7
|
-
export declare function getPreviewServer(): http.Server | null;
|
|
8
9
|
//# sourceMappingURL=preview-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-server.d.ts","sourceRoot":"","sources":["../preview-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preview-server.d.ts","sourceRoot":"","sources":["../preview-server.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,QAAQ,QAA2C,CAAC;AACjE,eAAO,MAAM,iBAAiB,QAA+B,CAAC;AAkD9D,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvD;AA0GD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmB3E"}
|
package/dist/preview-server.js
CHANGED
|
@@ -7,12 +7,15 @@ import { fileURLToPath, pathToFileURL } from "node:url";
|
|
|
7
7
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
8
|
const __dirname = path.dirname(__filename);
|
|
9
9
|
const DIST_DIR = __filename.endsWith(".ts") ? path.join(__dirname, "dist") : __dirname;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
export const TEMP_DIR = path.join(os.tmpdir(), "mcp-dashboards");
|
|
11
|
+
export const CHART_FILENAME_RE = /^chart-[a-f0-9]{12}\.html$/;
|
|
12
|
+
const MAX_CHARTS_IN_MEMORY = 50;
|
|
13
|
+
const DEFAULT_RETAIN_DAYS = 7;
|
|
12
14
|
const chartStore = new Map();
|
|
13
15
|
let cachedHtml = null;
|
|
14
16
|
let httpServer = null;
|
|
15
17
|
let serverPort = null;
|
|
18
|
+
let cleanupDone = false;
|
|
16
19
|
async function loadHtml() {
|
|
17
20
|
if (cachedHtml)
|
|
18
21
|
return cachedHtml;
|
|
@@ -21,20 +24,73 @@ async function loadHtml() {
|
|
|
21
24
|
return cachedHtml;
|
|
22
25
|
}
|
|
23
26
|
function injectChartData(html, data) {
|
|
27
|
+
// Escape </ in the JSON payload so chart data containing the literal string
|
|
28
|
+
// "</script>" cannot prematurely terminate the inline <script> block below.
|
|
24
29
|
const payload = JSON.stringify(data).replace(/<\//g, "<\\/");
|
|
25
30
|
return html.replace("</head>", `<script>window.__CHART_DATA__=${payload};</script></head>`);
|
|
26
31
|
}
|
|
32
|
+
function getRetainDays() {
|
|
33
|
+
const raw = process.env.MCP_DASHBOARDS_RETAIN_DAYS;
|
|
34
|
+
if (raw === undefined)
|
|
35
|
+
return DEFAULT_RETAIN_DAYS;
|
|
36
|
+
const n = Number.parseInt(raw, 10);
|
|
37
|
+
if (Number.isNaN(n) || n < 0)
|
|
38
|
+
return DEFAULT_RETAIN_DAYS;
|
|
39
|
+
return n;
|
|
40
|
+
}
|
|
27
41
|
function storeChart(data) {
|
|
28
42
|
const id = crypto.randomBytes(6).toString("hex");
|
|
29
43
|
chartStore.set(id, data);
|
|
30
|
-
//
|
|
31
|
-
if (chartStore.size >
|
|
44
|
+
// In-memory eviction only - does not touch on-disk chart files.
|
|
45
|
+
if (chartStore.size > MAX_CHARTS_IN_MEMORY) {
|
|
32
46
|
const firstKey = chartStore.keys().next().value;
|
|
33
47
|
if (firstKey)
|
|
34
48
|
chartStore.delete(firstKey);
|
|
35
49
|
}
|
|
36
50
|
return id;
|
|
37
51
|
}
|
|
52
|
+
// Remove a chart from the in-memory store so its localhost URL no longer
|
|
53
|
+
// resolves. Called by the delete_chart_files tool to ensure "delete" means
|
|
54
|
+
// "gone from both disk and memory" - otherwise the localhost URL would keep
|
|
55
|
+
// working from cache and confuse the user.
|
|
56
|
+
export function evictChartFromCache(id) {
|
|
57
|
+
return chartStore.delete(id);
|
|
58
|
+
}
|
|
59
|
+
// Lazy age-based cleanup. Runs once per server lifetime on first preview
|
|
60
|
+
// request. Only touches files in our own temp subfolder matching the strict
|
|
61
|
+
// chart-{hex}.html pattern. Anything else (including unrelated files a user
|
|
62
|
+
// might park in /tmp/mcp-dashboards) is left alone.
|
|
63
|
+
async function cleanStaleFiles() {
|
|
64
|
+
if (cleanupDone)
|
|
65
|
+
return;
|
|
66
|
+
cleanupDone = true;
|
|
67
|
+
const retainDays = getRetainDays();
|
|
68
|
+
if (retainDays === 0)
|
|
69
|
+
return;
|
|
70
|
+
try {
|
|
71
|
+
const entries = await fs.readdir(TEMP_DIR).catch(() => []);
|
|
72
|
+
const cutoff = Date.now() - retainDays * 24 * 60 * 60 * 1000;
|
|
73
|
+
await Promise.all(entries.map(async (name) => {
|
|
74
|
+
if (!CHART_FILENAME_RE.test(name))
|
|
75
|
+
return;
|
|
76
|
+
const full = path.join(TEMP_DIR, name);
|
|
77
|
+
try {
|
|
78
|
+
const stat = await fs.stat(full);
|
|
79
|
+
if (stat.mtimeMs < cutoff) {
|
|
80
|
+
await fs.unlink(full);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch { /* locked file, permission error, etc - skip */ }
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
process.stderr.write(`[mcp-dashboards] Cleanup skipped: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Lazy-init a tiny same-machine HTTP server on a random port. Its only job is
|
|
91
|
+
// to serve the in-memory chart HTML so Claude Code can render a clickable link
|
|
92
|
+
// (http:// is the only URL scheme that survives Claude Code's react-markdown
|
|
93
|
+
// link stripping - file://, vscode://, command:// are all stripped).
|
|
38
94
|
async function ensurePreviewServer() {
|
|
39
95
|
if (serverPort !== null)
|
|
40
96
|
return serverPort;
|
|
@@ -64,8 +120,13 @@ async function ensurePreviewServer() {
|
|
|
64
120
|
res.end(injected);
|
|
65
121
|
}
|
|
66
122
|
catch (err) {
|
|
123
|
+
// Log full error server-side for debugging, return generic message to the
|
|
124
|
+
// client. Even though we bind to 127.0.0.1, err.message can leak absolute
|
|
125
|
+
// filesystem paths and other internal details to anything that can reach
|
|
126
|
+
// the loopback (e.g. browser JS in the same machine).
|
|
127
|
+
process.stderr.write(`[mcp-dashboards] preview-server error: ${err instanceof Error ? err.stack ?? err.message : String(err)}\n`);
|
|
67
128
|
res.writeHead(500);
|
|
68
|
-
res.end(
|
|
129
|
+
res.end("Internal server error");
|
|
69
130
|
}
|
|
70
131
|
});
|
|
71
132
|
server.listen(0, "127.0.0.1", () => {
|
|
@@ -84,7 +145,7 @@ async function ensurePreviewServer() {
|
|
|
84
145
|
server.on("error", reject);
|
|
85
146
|
});
|
|
86
147
|
}
|
|
87
|
-
async function
|
|
148
|
+
async function writeChartHtml(id, data) {
|
|
88
149
|
await fs.mkdir(TEMP_DIR, { recursive: true });
|
|
89
150
|
const filePath = path.join(TEMP_DIR, `chart-${id}.html`);
|
|
90
151
|
const html = await loadHtml();
|
|
@@ -95,10 +156,11 @@ async function writeTempHtml(id, data) {
|
|
|
95
156
|
export async function getPreviewUrls(data) {
|
|
96
157
|
if (process.env.MCP_DASHBOARDS_DISABLE_PREVIEW === "1")
|
|
97
158
|
return null;
|
|
159
|
+
cleanStaleFiles().catch(() => { });
|
|
98
160
|
try {
|
|
99
161
|
const id = storeChart(data);
|
|
100
162
|
const port = await ensurePreviewServer();
|
|
101
|
-
const fileUrl = await
|
|
163
|
+
const fileUrl = await writeChartHtml(id, data);
|
|
102
164
|
return {
|
|
103
165
|
httpUrl: `http://localhost:${port}/chart/${id}`,
|
|
104
166
|
fileUrl,
|
|
@@ -109,7 +171,4 @@ export async function getPreviewUrls(data) {
|
|
|
109
171
|
return null;
|
|
110
172
|
}
|
|
111
173
|
}
|
|
112
|
-
export function getPreviewServer() {
|
|
113
|
-
return httpServer;
|
|
114
|
-
}
|
|
115
174
|
//# sourceMappingURL=preview-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview-server.js","sourceRoot":"","sources":["../preview-server.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEvF,MAAM,
|
|
1
|
+
{"version":3,"file":"preview-server.js","sourceRoot":"","sources":["../preview-server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyQpE;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAmvDxC"}
|