feat: implement MCP client session persistence for browser contexts
Add session persistence system to maintain browser contexts across MCP tool calls: - SessionManager: Global persistent context management keyed by session ID - BrowserServerBackend: Modified to use session persistence and reuse contexts - Context: Enhanced to support environment introspection and session ID override - MCP Roots: Added educational tool descriptions for workspace-aware automation - Environment Detection: System file introspection for display/GPU/project detection Key features: - Browser contexts survive between tool calls preserving cache, cookies, state - Complete session isolation between different MCP clients - Zero startup overhead for repeat connections - Backward compatible with existing implementations - Support for MCP roots workspace detection and environment adaptation Tested and verified with real Claude Code client showing successful session persistence across navigation calls with preserved browser state. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
b2462593bc
commit
ecedcc48d6
7 changed files with 865 additions and 2 deletions
|
|
@ -45,6 +45,9 @@ export interface ServerBackend {
|
|||
initialize?(): Promise<void>;
|
||||
tools(): ToolSchema<any>[];
|
||||
callTool(schema: ToolSchema<any>, parsedArguments: any): Promise<ToolResponse>;
|
||||
listRoots?(): Promise<{ uri: string; name?: string }[]>;
|
||||
rootsListChanged?(): Promise<void>;
|
||||
setSessionId?(sessionId: string): void;
|
||||
serverInitialized?(version: ClientVersion | undefined): void;
|
||||
serverClosed?(): void;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue