@vint.tri/report_gen_mcp 1.0.4 → 1.0.5
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/claude-desktop-config.json +29 -0
- package/claude-desktop-corrected-config.json +35 -0
- package/dist/index.js +36 -1
- package/package.json +1 -1
- package/republished-test-report.html +14 -0
- package/src/index.ts +37 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Report Generator Server",
|
|
3
|
+
"description": "Local server for generating HTML reports with embedded charts",
|
|
4
|
+
"api": {
|
|
5
|
+
"url": "http://localhost:3000",
|
|
6
|
+
"health_check": "/health",
|
|
7
|
+
"endpoints": {
|
|
8
|
+
"generate_report": {
|
|
9
|
+
"path": "/generate-report",
|
|
10
|
+
"method": "POST",
|
|
11
|
+
"description": "Generate an HTML report with charts"
|
|
12
|
+
},
|
|
13
|
+
"root": {
|
|
14
|
+
"path": "/",
|
|
15
|
+
"method": "GET",
|
|
16
|
+
"description": "Server info page"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"commands": {
|
|
21
|
+
"start_server": "npx @vint.tri/report_gen_mcp start-server",
|
|
22
|
+
"generate_sample": "npx @vint.tri/report_gen_mcp generate --type sample"
|
|
23
|
+
},
|
|
24
|
+
"notes": {
|
|
25
|
+
"server_port": "Server runs on port 3000",
|
|
26
|
+
"background_process": "Server runs in background when started",
|
|
27
|
+
"stop_server": "Find and kill the node process running on port 3000 to stop the server"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"report_gen_mcp": {
|
|
3
|
+
"name": "Report Generator MCP Server",
|
|
4
|
+
"type": "server",
|
|
5
|
+
"isActive": true,
|
|
6
|
+
"registryUrl": "",
|
|
7
|
+
"longRunning": true,
|
|
8
|
+
"tags": ["server", "reports", "charts"],
|
|
9
|
+
"install": {
|
|
10
|
+
"command": "npm",
|
|
11
|
+
"args": ["install", "-g", "@vint.tri/report_gen_mcp"]
|
|
12
|
+
},
|
|
13
|
+
"start": {
|
|
14
|
+
"command": "tri",
|
|
15
|
+
"args": ["start-server"]
|
|
16
|
+
},
|
|
17
|
+
"stop": {
|
|
18
|
+
"command": "pkill",
|
|
19
|
+
"args": ["-f", "tri start-server"]
|
|
20
|
+
},
|
|
21
|
+
"health": {
|
|
22
|
+
"url": "http://localhost:3000/health",
|
|
23
|
+
"method": "GET"
|
|
24
|
+
},
|
|
25
|
+
"api": {
|
|
26
|
+
"baseUrl": "http://localhost:3000",
|
|
27
|
+
"endpoints": {
|
|
28
|
+
"generateReport": {
|
|
29
|
+
"path": "/generate-report",
|
|
30
|
+
"method": "POST"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -39,4 +39,39 @@ commander_1.program
|
|
|
39
39
|
const result = await (0, reportGenerator_1.generateReport)(opts.document, charts, opts.output);
|
|
40
40
|
console.log(result);
|
|
41
41
|
});
|
|
42
|
-
|
|
42
|
+
// Handle stdio mode for Claude Desktop integration
|
|
43
|
+
if (process.argv.length === 2) {
|
|
44
|
+
// No command specified, run in stdio mode
|
|
45
|
+
let inputData = '';
|
|
46
|
+
process.stdin.setEncoding('utf8');
|
|
47
|
+
process.stdin.on('readable', () => {
|
|
48
|
+
let chunk;
|
|
49
|
+
while ((chunk = process.stdin.read()) !== null) {
|
|
50
|
+
inputData += chunk;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
process.stdin.on('end', async () => {
|
|
54
|
+
try {
|
|
55
|
+
const request = JSON.parse(inputData);
|
|
56
|
+
// Handle different types of requests
|
|
57
|
+
if (request.method === 'generate-report') {
|
|
58
|
+
const { document, charts, outputFile = 'report.html' } = request.params;
|
|
59
|
+
const result = await (0, reportGenerator_1.generateReport)(document, charts, path_1.default.resolve(outputFile));
|
|
60
|
+
console.log(JSON.stringify(result));
|
|
61
|
+
}
|
|
62
|
+
else if (request.method === 'health') {
|
|
63
|
+
console.log(JSON.stringify({ status: 'ok' }));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
console.log(JSON.stringify({ error: 'Unknown method' }));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error(JSON.stringify({ error: error.message }));
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// Run commander program when arguments are provided
|
|
76
|
+
commander_1.program.parse();
|
|
77
|
+
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<title>Report</title>
|
|
7
|
+
<style> body { font-family: Arial, sans-serif; } img { max-width: 100%; } </style>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<h1>Test Report\n\nThis is a test report with a chart.\n\n<img src="data:image/png;base64,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iHjB4ufVWu8rpTxi0faZEXHfktfeFxF7jnLuDcd4HFj5vAfAqWucrv8z42CEwEp1V4xRgByyBqTrult279594aJdd5dS6tKDaq0fL6U8bdH20yPiY8s3JgAAsBIccgek1npjKeWGqampN5ZS1tda31BK2RIR0bbtG0spq2dmZn56YmJi0HXdX05NTX2iaZr5WutPNk3zA6P5IwAAACeLQ+6AzM7O/kpEvKGU8qyI+NamaV48MzPz3yIiSikfjYgPR0Rs27btQ6WU5zZN8+211ifWWl+wbdu2v0mfHgAAOKmUYz9l2VwYEXeM8PzAaG2M8foMOJBn3K5/a0BY6cZ3DQgAAMByEiAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkOWyAtG27anp6upc9DAAAsLKVxRtbt249Y35+fjYinhkRqyPijzZt2tSfnp6eX3pc27Z3RsQZCztqrZfMzs7+4ddx7gsj4o7jnBs4+W2MiD2jHgIYiXG7/s+MRX+ngRXorojoRj3EgkPucszNzb0mInrnn3/+Y3fv3r22lPK+PXv2TEbEtsXPm5yc/MaIuGswGDw2b1QAAOBkt/QjWBc0TbNtenq6GwwG99da/7zW+m1LDyqlXFBr/fCVV1557tatW89LmhUAADjJHXIHZHZ29sULv7/66qvX3XfffS8qpbx+6UFN0zyx1vqsubm590bEo6ampj5VSnnxYDC4d9HT1kbE+mOcf+PDGR44qW0Y9QDAyIzb9X9GRJw+6iFgGTUxrh/BWjA1NfWv77///rfVWv9iMBi8a+njtdaPllJeOTMz857p6enerl273hkRPxsRP7foafvi6J/v3HCMx4GVz3sAnLrG6fq3BoSVbqzWgJSlO9q2vToittRa/+NDXVTetu3miNgyGAye83Wc2yJ0OLWN2yJUIM+4Xf8ChJVurALkkDUg/X7/0oh4cUQ89WjxMTU19Qf9fv8Zi3Y9Lg7+wQAAAI7okI9g1Vp/qtb6/qZpruj3+wu7b5uZmbm13+//Rq119WAw2FpK+ZNa6839fv8/RcT6WutVtdYXpE8PAACcVBbfASkR8bamaf7+cE/suu7Pa623REQMBoOZrusujYjza60HhsPhd83Ozvo4FQAAcFRfswYkkTUgcGobt8+AA3nG7fq3BoSVbnzXgAAAACwnAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAECawwZI27ZnXXXVVY841sFXXXXVIy655JKzT/xYAADASlQWb2zZsmV913Vvr7U+LiLWlVL+bv/+/T+6Y8eOfYuft3nz5tXr169/R0Q8JSLmI+KTEfHSwWBw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" alt="Chart" /></h1>
|
|
11
|
+
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
14
|
+
|
package/src/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import express from 'express';
|
|
|
4
4
|
import { program } from 'commander';
|
|
5
5
|
import { generateReport } from './utils/reportGenerator';
|
|
6
6
|
import path from 'path';
|
|
7
|
+
import { stdin } from 'process';
|
|
7
8
|
|
|
8
9
|
const app = express();
|
|
9
10
|
const port = 3000;
|
|
@@ -40,4 +41,39 @@ program
|
|
|
40
41
|
console.log(result);
|
|
41
42
|
});
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
// Handle stdio mode for Claude Desktop integration
|
|
45
|
+
if (process.argv.length === 2) {
|
|
46
|
+
// No command specified, run in stdio mode
|
|
47
|
+
let inputData = '';
|
|
48
|
+
|
|
49
|
+
process.stdin.setEncoding('utf8');
|
|
50
|
+
|
|
51
|
+
process.stdin.on('readable', () => {
|
|
52
|
+
let chunk;
|
|
53
|
+
while ((chunk = process.stdin.read()) !== null) {
|
|
54
|
+
inputData += chunk;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
process.stdin.on('end', async () => {
|
|
59
|
+
try {
|
|
60
|
+
const request = JSON.parse(inputData);
|
|
61
|
+
|
|
62
|
+
// Handle different types of requests
|
|
63
|
+
if (request.method === 'generate-report') {
|
|
64
|
+
const { document, charts, outputFile = 'report.html' } = request.params;
|
|
65
|
+
const result = await generateReport(document, charts, path.resolve(outputFile));
|
|
66
|
+
console.log(JSON.stringify(result));
|
|
67
|
+
} else if (request.method === 'health') {
|
|
68
|
+
console.log(JSON.stringify({ status: 'ok' }));
|
|
69
|
+
} else {
|
|
70
|
+
console.log(JSON.stringify({ error: 'Unknown method' }));
|
|
71
|
+
}
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.error(JSON.stringify({ error: (error as Error).message }));
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
} else {
|
|
77
|
+
// Run commander program when arguments are provided
|
|
78
|
+
program.parse();
|
|
79
|
+
}
|