| 25 | ); |
| 26 | |
| 27 | async function fetchTools() { |
| 28 | console.log('Connecting to chrome-devtools-mcp to fetch tools...'); |
| 29 | // Use the local build of the server |
| 30 | const serverPath = path.join( |
| 31 | import.meta.dirname, |
| 32 | '../build/src/bin/chrome-devtools-mcp.js', |
| 33 | ); |
| 34 | |
| 35 | const transport = new StdioClientTransport({ |
| 36 | command: 'node', |
| 37 | args: [serverPath, '--viaCli'], |
| 38 | env: {...process.env, CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS: 'true'}, |
| 39 | }); |
| 40 | |
| 41 | const client = new Client( |
| 42 | { |
| 43 | name: 'chrome-devtools-cli-generator', |
| 44 | version: '0.1.0', |
| 45 | }, |
| 46 | { |
| 47 | capabilities: {}, |
| 48 | }, |
| 49 | ); |
| 50 | |
| 51 | await client.connect(transport); |
| 52 | try { |
| 53 | const toolsResponse = await client.listTools(); |
| 54 | if (!toolsResponse.tools?.length) { |
| 55 | throw new Error(`No tools were fetched`); |
| 56 | } |
| 57 | const tools = toolsResponse.tools || []; |
| 58 | console.log(`Fetched ${tools.length} tools`); |
| 59 | return tools; |
| 60 | } finally { |
| 61 | await client.close(); |
| 62 | } |
| 63 | } |
| 64 | |
| 65 | interface CliOption { |
| 66 | name: string; |