browser-console-mcp 1.0.2 → 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/bin/copy-browser-inject.js +55 -0
- package/bin/copy-html2canvas.js +45 -2
- package/dist/browser/browser-inject.js +9 -9
- package/dist/browser/index.js +1 -1
- package/dist/client/browser-console-mcp.js +1 -1
- package/dist/client/index.js +13 -13
- package/dist/server/index.js +9 -9
- package/dist/server/static-server.js +4 -4
- package/package.json +12 -3
- package/dist/browser/browser-mcp-server.js +0 -718
- package/dist/browser/index.js.map +0 -1
- package/dist/client/browser-console-mcp.js.map +0 -1
- package/dist/static/html2canvas/dist/html2canvas.min.js +0 -20
- package/rollup.browser.config.js +0 -23
- package/rollup.config.js +0 -22
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy browser-inject.js to dist/browser directory
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import fs from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
|
|
9
|
+
// Get current file directory
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = path.dirname(__filename);
|
|
12
|
+
const projectRoot = path.resolve(__dirname, "..");
|
|
13
|
+
|
|
14
|
+
// Source file path
|
|
15
|
+
const sourcePath = path.join(
|
|
16
|
+
projectRoot,
|
|
17
|
+
"src",
|
|
18
|
+
"browser",
|
|
19
|
+
"browser-inject.js",
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
// Target directory
|
|
23
|
+
const targetDir = path.join(projectRoot, "dist", "browser");
|
|
24
|
+
const targetPath = path.join(targetDir, "browser-inject.js");
|
|
25
|
+
|
|
26
|
+
// Ensure target directory exists
|
|
27
|
+
function ensureDirectoryExists(dirPath) {
|
|
28
|
+
if (!fs.existsSync(dirPath)) {
|
|
29
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
30
|
+
console.log(`Creating directory: ${dirPath}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Copy file
|
|
35
|
+
function copyFile(source, target) {
|
|
36
|
+
try {
|
|
37
|
+
if (!fs.existsSync(source)) {
|
|
38
|
+
console.error(`Error: Source file not found: ${source}`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const data = fs.readFileSync(source);
|
|
43
|
+
fs.writeFileSync(target, data);
|
|
44
|
+
console.log(`File copied successfully: ${source} -> ${target}`);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.error(`Failed to copy file: ${error.message}`);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Execute copy
|
|
52
|
+
console.log("Starting to copy browser-inject.js...");
|
|
53
|
+
ensureDirectoryExists(targetDir);
|
|
54
|
+
copyFile(sourcePath, targetPath);
|
|
55
|
+
console.log("browser-inject.js copy completed");
|
package/bin/copy-html2canvas.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copy html2canvas to static resources directory
|
|
3
|
+
* This script handles html2canvas as an optional dependency
|
|
3
4
|
*/
|
|
4
5
|
|
|
5
6
|
import fs from "node:fs";
|
|
@@ -35,12 +36,54 @@ function ensureDirectoryExists(dirPath) {
|
|
|
35
36
|
// Copy file
|
|
36
37
|
function copyFile(source, target) {
|
|
37
38
|
try {
|
|
39
|
+
if (!fs.existsSync(source)) {
|
|
40
|
+
console.warn(`Warning: html2canvas not found at ${source}`);
|
|
41
|
+
console.warn(
|
|
42
|
+
"Screenshot functionality will not be available unless html2canvas is installed.",
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
// Create a minimal placeholder file
|
|
46
|
+
const placeholder = `
|
|
47
|
+
// html2canvas is not installed
|
|
48
|
+
// Install it with: pnpm add html2canvas
|
|
49
|
+
console.warn("html2canvas is not installed. Screenshot functionality is disabled.");
|
|
50
|
+
export default function() {
|
|
51
|
+
throw new Error("html2canvas is not installed");
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
ensureDirectoryExists(targetDir);
|
|
56
|
+
fs.writeFileSync(target, placeholder);
|
|
57
|
+
console.log(`Created placeholder file at: ${target}`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
38
61
|
const data = fs.readFileSync(source);
|
|
39
62
|
fs.writeFileSync(target, data);
|
|
40
63
|
console.log(`File copied successfully: ${source} -> ${target}`);
|
|
64
|
+
|
|
65
|
+
const duplicatePath = path.join(
|
|
66
|
+
targetDir,
|
|
67
|
+
"html2canvas",
|
|
68
|
+
"dist",
|
|
69
|
+
"html2canvas.min.js",
|
|
70
|
+
);
|
|
71
|
+
const duplicateDir = path.dirname(duplicatePath);
|
|
72
|
+
|
|
73
|
+
if (fs.existsSync(duplicatePath)) {
|
|
74
|
+
fs.unlinkSync(duplicatePath);
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
fs.rmdirSync(duplicateDir);
|
|
78
|
+
fs.rmdirSync(path.dirname(duplicateDir));
|
|
79
|
+
} catch (e) {
|
|
80
|
+
// Ignore non-empty directory error
|
|
81
|
+
}
|
|
82
|
+
}
|
|
41
83
|
} catch (error) {
|
|
42
84
|
console.error(`Failed to copy file: ${error.message}`);
|
|
43
|
-
process
|
|
85
|
+
// Don't exit process, just warn
|
|
86
|
+
console.warn("Screenshot functionality may not work correctly.");
|
|
44
87
|
}
|
|
45
88
|
}
|
|
46
89
|
|
|
@@ -48,4 +91,4 @@ function copyFile(source, target) {
|
|
|
48
91
|
console.log("Starting to copy html2canvas...");
|
|
49
92
|
ensureDirectoryExists(targetDir);
|
|
50
93
|
copyFile(sourcePath, targetPath);
|
|
51
|
-
console.log("html2canvas copy completed");
|
|
94
|
+
console.log("html2canvas copy process completed");
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Browser MCP
|
|
2
|
+
* Browser MCP Injection Script
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* This script is used to inject the MCP client in the browser
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
(() => {
|
|
8
|
-
//
|
|
8
|
+
// Check if MCP client is already loaded
|
|
9
9
|
if (window.mcp) {
|
|
10
|
-
console.log("[
|
|
10
|
+
console.log("[BCM] MCP client already loaded");
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
//
|
|
14
|
+
// Get current script URL to determine server address
|
|
15
15
|
const currentScript = document.currentScript;
|
|
16
16
|
const scriptUrl = currentScript ? currentScript.src : "";
|
|
17
17
|
const serverUrl = scriptUrl
|
|
18
18
|
? new URL(scriptUrl).origin
|
|
19
19
|
: "http://localhost:7898";
|
|
20
20
|
|
|
21
|
-
//
|
|
21
|
+
// Load MCP client script
|
|
22
22
|
const script = document.createElement("script");
|
|
23
23
|
script.src = `${serverUrl}/browser-console-mcp.js`;
|
|
24
24
|
script.onload = () => {
|
|
25
|
-
console.log("[
|
|
25
|
+
console.log("[BCM] MCP client loaded successfully");
|
|
26
26
|
};
|
|
27
27
|
script.onerror = (error) => {
|
|
28
|
-
console.error("[
|
|
28
|
+
console.error("[BCM] Failed to load MCP client:", error);
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
document.head.appendChild(script);
|
|
32
32
|
|
|
33
|
-
console.log("[
|
|
33
|
+
console.log("[BCM] Loading MCP client...");
|
|
34
34
|
})();
|