move entrypoint to host.ts
This commit is contained in:
@@ -25,7 +25,7 @@ import { ProxyBackend } from './mcp/proxyBackend.js';
|
|||||||
import { BrowserServerBackend } from './browserServerBackend.js';
|
import { BrowserServerBackend } from './browserServerBackend.js';
|
||||||
import { ExtensionContextFactory } from './extension/extensionContextFactory.js';
|
import { ExtensionContextFactory } from './extension/extensionContextFactory.js';
|
||||||
|
|
||||||
import { VSCodeProxyBackend } from './vscode/host.js';
|
import { runVSCodeTools } from './vscode/host.js';
|
||||||
import type { MCPProvider } from './mcp/proxyBackend.js';
|
import type { MCPProvider } from './mcp/proxyBackend.js';
|
||||||
|
|
||||||
program
|
program
|
||||||
@@ -86,13 +86,7 @@ program
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (options.vscode) {
|
if (options.vscode) {
|
||||||
const serverBackendFactory: mcpServer.ServerBackendFactory = {
|
await runVSCodeTools(config);
|
||||||
name: 'Playwright w/ vscode',
|
|
||||||
nameInConfig: 'playwright-vscode',
|
|
||||||
version: packageJSON.version,
|
|
||||||
create: () => new VSCodeProxyBackend(config, () => mcpServer.wrapInProcess(new BrowserServerBackend(config, browserContextFactory)))
|
|
||||||
};
|
|
||||||
await mcpServer.start(serverBackendFactory, config.server);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,13 +17,17 @@
|
|||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { zodToJsonSchema } from 'zod-to-json-schema';
|
import { zodToJsonSchema } from 'zod-to-json-schema';
|
||||||
|
|
||||||
|
|
||||||
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
||||||
import { ListRootsRequestSchema, PingRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
import { ListRootsRequestSchema, PingRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
||||||
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
||||||
|
import * as mcpServer from '../mcp/server.js';
|
||||||
import { logUnhandledError } from '../utils/log.js';
|
import { logUnhandledError } from '../utils/log.js';
|
||||||
import { packageJSON } from '../utils/package.js';
|
import { packageJSON } from '../utils/package.js';
|
||||||
|
|
||||||
import { FullConfig } from '../config.js';
|
import { FullConfig } from '../config.js';
|
||||||
|
import { BrowserServerBackend } from '../browserServerBackend.js';
|
||||||
|
import { contextFactory } from '../browserContextFactory.js';
|
||||||
import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
||||||
import type { ClientVersion, ServerBackend } from '../mcp/server.js';
|
import type { ClientVersion, ServerBackend } from '../mcp/server.js';
|
||||||
import type { Root, Tool, CallToolResult, CallToolRequest } from '@modelcontextprotocol/sdk/types.js';
|
import type { Root, Tool, CallToolResult, CallToolRequest } from '@modelcontextprotocol/sdk/types.js';
|
||||||
@@ -33,7 +37,7 @@ const contextSwitchOptions = z.object({
|
|||||||
lib: z.string().optional().describe('The library to use for the connection'),
|
lib: z.string().optional().describe('The library to use for the connection'),
|
||||||
});
|
});
|
||||||
|
|
||||||
export class VSCodeProxyBackend implements ServerBackend {
|
class VSCodeProxyBackend implements ServerBackend {
|
||||||
name = 'Playwright MCP Client Switcher';
|
name = 'Playwright MCP Client Switcher';
|
||||||
version = packageJSON.version;
|
version = packageJSON.version;
|
||||||
|
|
||||||
@@ -130,3 +134,14 @@ export class VSCodeProxyBackend implements ServerBackend {
|
|||||||
this._currentClient = client;
|
this._currentClient = client;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function runVSCodeTools(config: FullConfig) {
|
||||||
|
const serverBackendFactory: mcpServer.ServerBackendFactory = {
|
||||||
|
name: 'Playwright w/ vscode',
|
||||||
|
nameInConfig: 'playwright-vscode',
|
||||||
|
version: packageJSON.version,
|
||||||
|
create: () => new VSCodeProxyBackend(config, () => mcpServer.wrapInProcess(new BrowserServerBackend(config, contextFactory(config))))
|
||||||
|
};
|
||||||
|
await mcpServer.start(serverBackendFactory, config.server);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user