项目文件夹

文件
2025-06-09 21:15:42 +08:00

551 行
9.7 KiB
Markdown

# Troubleshooting Guide 🔧
Common issues and solutions for Chrome MCP Server.
## 📋 Table of Contents
- [Installation Issues](#installation-issues)
- [Chrome Extension Problems](#chrome-extension-problems)
- [Native Server Issues](#native-server-issues)
- [MCP Protocol Problems](#mcp-protocol-problems)
- [AI/SIMD Issues](#aisimd-issues)
- [Performance Problems](#performance-problems)
- [Network Capture Issues](#network-capture-issues)
## 🚀 Installation Issues
### Node.js Version Compatibility
**Problem**: Build fails with Node.js version errors
```
Error: Unsupported Node.js version
```
**Solution**:
```bash
# Check Node.js version
node --version
# Install Node.js 18+ if needed
# Using nvm (recommended)
nvm install 18
nvm use 18
# Or download from nodejs.org
```
### pnpm Installation Issues
**Problem**: `pnpm` command not found
```
bash: pnpm: command not found
```
**Solution**:
```bash
# Install pnpm globally
npm install -g pnpm
# Or using corepack (Node.js 16.10+)
corepack enable
corepack prepare pnpm@latest --activate
```
### Build Failures
**Problem**: Build fails during `pnpm build`
```
Error: Build failed with exit code 1
```
**Solutions**:
```bash
# Clean and rebuild
pnpm clean
pnpm install
pnpm build
# Check for specific package issues
pnpm build:shared
pnpm build:wasm
pnpm build:native
pnpm build:extension
```
## 🔌 Chrome Extension Problems
### Extension Not Loading
**Problem**: Extension fails to load in Chrome
**Symptoms**:
- "Manifest file is missing or unreadable"
- "Invalid manifest"
- Extension appears grayed out
**Solutions**:
1. **Check build output**:
```bash
cd app/chrome-extension
pnpm build
# Verify dist/ directory exists and contains manifest.json
```
2. **Verify manifest.json**:
```bash
cat app/chrome-extension/dist/manifest.json
# Should contain valid JSON with version 3
```
3. **Enable Developer Mode**:
- Go to `chrome://extensions/`
- Toggle "Developer mode" ON
- Click "Load unpacked"
- Select `app/chrome-extension/dist`
### Native Messaging Connection Failed
**Problem**: Extension can't connect to native server
```
Error: Native host has exited
```
**Solutions**:
1. **Check native server installation**:
```bash
# Verify global installation
npm list -g mcp-chrome-bridge
# Reinstall if needed
cd app/native-server
npm install -g .
```
2. **Verify native messaging manifest**:
```bash
# macOS
cat ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.chromemcp.nativehost.json
# Linux
cat ~/.config/google-chrome/NativeMessagingHosts/com.chromemcp.nativehost.json
# Windows
# Check Registry: HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.chromemcp.nativehost
```
3. **Check permissions**:
```bash
# Ensure executable permissions
chmod +x /path/to/mcp-chrome-bridge
```
### Extension Permissions Denied
**Problem**: Extension lacks necessary permissions
**Solutions**:
1. **Grant permissions manually**:
- Right-click extension icon
- Select "Options" or "Manage extension"
- Enable all required permissions
2. **Check manifest permissions**:
```json
{
"permissions": [
"nativeMessaging",
"tabs",
"activeTab",
"scripting",
"notifications",
"downloads",
"webRequest",
"debugger",
"history",
"bookmarks",
"offscreen",
"storage"
],
"host_permissions": ["<all_urls>"]
}
```
## 🖥️ Native Server Issues
### Server Won't Start
**Problem**: Native server fails to start
```
Error: listen EADDRINUSE :::12306
```
**Solutions**:
1. **Check port availability**:
```bash
# Check if port 12306 is in use
lsof -i :12306
netstat -an | grep 12306
# Kill process using the port
kill -9 <PID>
```
2. **Use different port**:
```bash
# Set custom port
export NATIVE_SERVER_PORT=12307
mcp-chrome-bridge
```
### Native Messaging Host Not Found
**Problem**: Chrome can't find native messaging host
```
Error: Specified native messaging host not found
```
**Solutions**:
1. **Reinstall native host**:
```bash
cd app/native-server
npm uninstall -g mcp-chrome-bridge
npm install -g .
```
2. **Manual manifest installation**:
```bash
# Create manifest directory
mkdir -p ~/.config/google-chrome/NativeMessagingHosts/
# Copy manifest
cp native-messaging-manifest.json ~/.config/google-chrome/NativeMessagingHosts/com.chromemcp.nativehost.json
```
## 🔗 MCP Protocol Problems
### MCP Client Connection Issues
**Problem**: Claude Desktop can't connect to MCP server
```
Error: Failed to connect to MCP server
```
**Solutions**:
1. **Check MCP configuration**:
```json
{
"mcpServers": {
"chrome-mcp-server": {
"command": "mcp-chrome-bridge",
"args": []
}
}
}
```
2. **Verify server is running**:
```bash
# Check if server is listening
curl http://localhost:12306/health
```
3. **Check logs**:
```bash
# Native server logs
tail -f ~/.local/share/mcp-chrome-bridge/logs/server.log
# Chrome extension logs
# Open Chrome DevTools -> Extensions -> Background Script
```
### Tool Execution Timeouts
**Problem**: Tools timeout during execution
```
Error: Tool execution timeout after 30000ms
```
**Solutions**:
1. **Increase timeout**:
```typescript
// In native server configuration
const response = await nativeMessagingHostInstance.sendRequestToExtensionAndWait(
request,
NativeMessageType.CALL_TOOL,
60000, // Increase to 60 seconds
);
```
2. **Check Chrome extension responsiveness**:
- Open Chrome DevTools
- Check for JavaScript errors
- Monitor memory usage
## 🧠 AI/SIMD Issues
### SIMD Not Available
**Problem**: SIMD acceleration not working
```
Warning: SIMD not supported, using JavaScript fallback
```
**Solutions**:
1. **Check browser support**:
- Chrome 91+ (May 2021)
- Firefox 89+ (June 2021)
- Safari 16.4+ (March 2023)
- Edge 91+ (May 2021)
2. **Enable SIMD flags** (if needed):
```
# Chrome flags
chrome://flags/#enable-webassembly-simd
```
3. **Verify WASM build**:
```bash
cd packages/wasm-simd
pnpm build
# Check for simd_math.js and simd_math_bg.wasm in pkg/
```
### AI Model Loading Failures
**Problem**: Semantic similarity engine fails to initialize
```
Error: Failed to load AI model
```
**Solutions**:
1. **Check model files**:
```bash
# Verify model files exist
ls app/chrome-extension/public/models/
# Should contain model.onnx, tokenizer.json, etc.
```
2. **Clear browser cache**:
- Open Chrome DevTools
- Application tab -> Storage -> Clear storage
3. **Check memory usage**:
- Monitor Chrome task manager
- Ensure sufficient RAM available (>2GB recommended)
### Vector Database Issues
**Problem**: Vector search not working
```
Error: Vector database initialization failed
```
**Solutions**:
1. **Clear IndexedDB**:
- Chrome DevTools -> Application -> IndexedDB
- Delete "VectorDatabase" entries
2. **Check WASM loading**:
```javascript
// In browser console
console.log(typeof WebAssembly);
// Should return "object"
```
## ⚡ Performance Problems
### High Memory Usage
**Problem**: Extension uses excessive memory (>500MB)
**Solutions**:
1. **Reduce cache sizes**:
```typescript
// In semantic-similarity-engine.ts
const config = {
cacheSize: 100, // Reduce from default 500
maxElements: 5000, // Reduce vector DB size
};
```
2. **Clear caches periodically**:
```javascript
// Clear embedding cache
semanticEngine.clearCache();
// Clear vector database
vectorDatabase.clear();
```
### Slow Tool Execution
**Problem**: Tools take >5 seconds to execute
**Solutions**:
1. **Check content script injection**:
```javascript
// Verify scripts are cached
chrome.scripting.getRegisteredContentScripts();
```
2. **Optimize selectors**:
```javascript
// Use efficient selectors
'#specific-id'; // Good
'.class-name'; // OK
'div > span.class'; // Better than complex selectors
```
3. **Monitor performance**:
```javascript
// Add timing logs
console.time('tool-execution');
// ... tool code ...
console.timeEnd('tool-execution');
```
## 🌐 Network Capture Issues
### No Requests Captured
**Problem**: Network capture returns empty results
**Solutions**:
1. **Check permissions**:
- Ensure "webRequest" permission is granted
- Verify host permissions include target domain
2. **Verify capture timing**:
```javascript
// Start capture before navigation
await callTool('chrome_network_capture_start');
await callTool('chrome_navigate', { url: 'https://example.com' });
// Wait for page load
await new Promise((resolve) => setTimeout(resolve, 3000));
await callTool('chrome_network_capture_stop');
```
3. **Check filters**:
- Disable static resource filtering if needed
- Verify URL patterns match
### Debugger API Issues
**Problem**: Debugger capture fails
```
Error: Cannot attach debugger to this target
```
**Solutions**:
1. **Check tab state**:
- Ensure tab is not a Chrome internal page
- Verify tab is fully loaded
2. **Detach existing debuggers**:
```javascript
// In Chrome DevTools console
chrome.debugger.getTargets().then((targets) => {
targets.forEach((target) => {
if (target.attached) {
chrome.debugger.detach({ targetId: target.id });
}
});
});
```
## 🆘 Getting Help
If you're still experiencing issues:
1. **Check GitHub Issues**: [github.com/hangwin/chrome-mcp-server/issues](https://github.com/hangwin/chrome-mcp-server/issues)
2. **Create a Bug Report** with:
- Operating system and version
- Chrome version
- Node.js version
- Complete error messages
- Steps to reproduce
3. **Enable Debug Logging**:
```bash
# Set debug environment
export DEBUG=chrome-mcp-server:*
mcp-chrome-bridge
```
4. **Collect Logs**:
- Chrome extension console logs
- Native server logs
- MCP client logs
5. **Test with Minimal Setup**:
- Fresh Chrome profile
- Clean installation
- Default configuration
Remember to include relevant logs and system information when reporting issues!