chrome-devtools-mcp-for-extension 0.6.4 → 0.6.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/README.md +7 -20
- package/build/src/browser.js +0 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -443,29 +443,16 @@ interface ManifestValidation {
|
|
|
443
443
|
- `--load-extension` may be restricted in newer Chrome versions
|
|
444
444
|
- **Solution**: Use system profile (default) instead of `--loadExtension` flag
|
|
445
445
|
|
|
446
|
-
##
|
|
446
|
+
## Concurrent Chrome Usage
|
|
447
447
|
|
|
448
|
-
**
|
|
448
|
+
**Can I use Chrome while the MCP server is running?**
|
|
449
449
|
|
|
450
|
-
|
|
450
|
+
Yes! The MCP server can run alongside your regular Chrome browser. Chrome is robust enough to handle concurrent access to the same profile.
|
|
451
451
|
|
|
452
|
-
**
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
npx chrome-devtools-mcp-for-extension@latest --isolated
|
|
457
|
-
```
|
|
458
|
-
3. **Use custom profile** - Specify a custom profile directory:
|
|
459
|
-
```bash
|
|
460
|
-
npx chrome-devtools-mcp-for-extension@latest --userDataDir=/path/to/custom/profile
|
|
461
|
-
```
|
|
462
|
-
|
|
463
|
-
**Why This Happens:**
|
|
464
|
-
- Chrome creates lock files (`SingletonLock`, `SingletonCookie`, `SingletonSocket`) when a profile is in use
|
|
465
|
-
- Multiple Chrome instances cannot share the same profile simultaneously
|
|
466
|
-
- The MCP server now detects these locks early and fails fast with a clear error message
|
|
467
|
-
|
|
468
|
-
**Note:** Previous versions silently fell back to a temporary profile, which caused confusion. Version 0.6.4+ fails immediately with a clear error instead.
|
|
452
|
+
**Note:** If you experience any issues with concurrent usage, you can use the `--isolated` flag to run with a separate profile:
|
|
453
|
+
```bash
|
|
454
|
+
npx chrome-devtools-mcp-for-extension@latest --isolated
|
|
455
|
+
```
|
|
469
456
|
|
|
470
457
|
</details>
|
|
471
458
|
|
package/build/src/browser.js
CHANGED
|
@@ -57,18 +57,6 @@ function getLastUsedProfile(userDataDir) {
|
|
|
57
57
|
return 'Default';
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Check if Chrome profile is already in use (locked)
|
|
62
|
-
* Throws an error if the profile is locked
|
|
63
|
-
*/
|
|
64
|
-
function assertProfileNotInUse(userDataDir) {
|
|
65
|
-
const lockFiles = ['SingletonLock', 'SingletonCookie', 'SingletonSocket'];
|
|
66
|
-
const hasLock = lockFiles.some(lockFile => fs.existsSync(path.join(userDataDir, lockFile)));
|
|
67
|
-
if (hasLock) {
|
|
68
|
-
throw new Error(`Chrome is already using this profile: ${userDataDir}\n` +
|
|
69
|
-
`Please close Chrome and try again.`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
60
|
function scanExtensionsDirectory(extensionsDir) {
|
|
73
61
|
const extensionPaths = [];
|
|
74
62
|
try {
|
|
@@ -268,8 +256,6 @@ export async function launch(options) {
|
|
|
268
256
|
// Use system profile directly for better user experience
|
|
269
257
|
userDataDir = systemProfile.path;
|
|
270
258
|
usingSystemProfile = true;
|
|
271
|
-
// Check if profile is already in use
|
|
272
|
-
assertProfileNotInUse(userDataDir);
|
|
273
259
|
// Detect last used profile directory
|
|
274
260
|
profileDirectory = getLastUsedProfile(userDataDir);
|
|
275
261
|
console.error(`✅ Using system Chrome profile: ${systemProfile.channel}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chrome-devtools-mcp-for-extension",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"description": "MCP server for Chrome extension development with Web Store automation. Fork of chrome-devtools-mcp with extension-specific tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./build/src/index.js",
|