File size: 937 Bytes
064bfd6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
type BrowserTool = { name: string }

type ClaudeForChromePackage = {
  BROWSER_TOOLS?: BrowserTool[]
  createClaudeForChromeMcpServer?: (...args: any[]) => any
}

let cachedPackage: ClaudeForChromePackage | null | undefined

function loadClaudeForChromePackage(): ClaudeForChromePackage | null {
  if (cachedPackage !== undefined) {
    return cachedPackage
  }

  try {
    /* eslint-disable @typescript-eslint/no-require-imports */
    cachedPackage = require('@ant/claude-for-chrome-mcp') as ClaudeForChromePackage
    /* eslint-enable @typescript-eslint/no-require-imports */
  } catch {
    cachedPackage = null
  }

  return cachedPackage
}

export function getChromeBrowserTools(): BrowserTool[] {
  return loadClaudeForChromePackage()?.BROWSER_TOOLS ?? []
}

export async function importClaudeForChromePackage(): Promise<ClaudeForChromePackage> {
  return (await import('@ant/claude-for-chrome-mcp')) as ClaudeForChromePackage
}