Merge pull request #5 from geelen/add-vpn-warning

Add VPN warning and debugging guidance to README
This commit is contained in:
Glen Maddern 2025-03-25 08:05:26 +11:00 committed by GitHub
commit 2df92f6672
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 57 additions and 0 deletions

View file

@ -20,3 +20,37 @@ E.g: Claude Desktop or Windsurf
Cursor:
![image](https://github.com/user-attachments/assets/14338bfa-a779-4e8a-a477-71f72cc5d99d)
## Debugging
### Check your Node version
Make sure that the version of Node you have installed is [16 or higher](https://modelcontextprotocol.io/quickstart/server).
### Restart Claude
When modifying `claude_desktop_config.json` it can helpful to completely restart Claude
### VPN Certs
You may run into issues if you are behind a VPN, you can try setting the `NODE_EXTRA_CA_CERTS`
environment variable to point to the CA certificate file. If using `claude_desktop_config.json`,
this might look like:
```json
{
"mcpServers": {
"remote-example": {
"command": "npx",
"args": [
"mcp-remote",
"https://remote.mcp.server/sse"
],
"env": {
"NODE_EXTRA_CA_CERTS": "{your CA certificate file path}.pem"
}
}
}
}
```

View file

@ -18,6 +18,7 @@
}
},
"scripts": {
"dev": "tsup --watch",
"build": "tsup",
"check": "prettier --check . && tsc"
},

View file

@ -63,6 +63,28 @@ async function runProxy(serverUrl: string, callbackPort: number) {
setupSignalHandlers(cleanup)
} catch (error) {
console.error('Fatal error:', error)
if (error instanceof Error && error.message.includes('self-signed certificate in certificate chain')) {
console.error(`You may be behind a VPN!
If you are behind a VPN, you can try setting the NODE_EXTRA_CA_CERTS environment variable to point
to the CA certificate file. If using claude_desktop_config.json, this might look like:
{
"mcpServers": {
"\${mcpServerName}": {
"command": "npx",
"args": [
"mcp-remote",
"https://remote.mcp.server/sse"
],
"env": {
"NODE_EXTRA_CA_CERTS": "\${your CA certificate file path}.pem"
}
}
}
}
`)
}
server.close()
process.exit(1)
}