Add per-session server instance support to fix concurrent user isolation

Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-10-12 07:45:21 +00:00
parent 55a7d0b183
commit 7b3d441046
6 changed files with 343 additions and 19 deletions

View File

@@ -47,7 +47,8 @@ MCPHub uses several configuration files:
},
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"]
"args": ["@playwright/mcp@latest", "--headless", "--isolated"],
"perSession": true
},
"slack": {
"command": "npx",
@@ -101,8 +102,9 @@ MCPHub uses several configuration files:
{
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"],
"args": ["@playwright/mcp@latest", "--headless", "--isolated"],
"timeout": 60000,
"perSession": true,
"env": {
"PLAYWRIGHT_BROWSERS_PATH": "/tmp/browsers"
}
@@ -110,6 +112,8 @@ MCPHub uses several configuration files:
}
```
**Note**: The `--isolated` flag ensures each browser session is isolated, and `perSession: true` creates a separate server instance for each user session, preventing state leakage between concurrent users.
### File and System Servers
#### Filesystem Server

View File

@@ -50,8 +50,9 @@ MCPHub 使用几个配置文件:
},
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"],
"timeout": 60000
"args": ["@playwright/mcp@latest", "--headless", "--isolated"],
"timeout": 60000,
"perSession": true
},
"slack": {
"command": "npx",
@@ -111,8 +112,9 @@ MCPHub 使用几个配置文件:
{
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"],
"args": ["@playwright/mcp@latest", "--headless", "--isolated"],
"timeout": 60000,
"perSession": true,
"env": {
"PLAYWRIGHT_BROWSERS_PATH": "/tmp/browsers"
}
@@ -120,6 +122,8 @@ MCPHub 使用几个配置文件:
}
```
**注意**: `--isolated` 标志确保每个浏览器会话是隔离的,而 `perSession: true` 为每个用户会话创建单独的服务器实例,防止并发用户之间的状态泄漏。
### 文件和系统服务器
#### 文件系统服务器