Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
2.0 kB · 53 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import { buildComputerUseTools } from '@ant/computer-use-mcp'import { join } from 'path'import { fileURLToPath } from 'url'import { buildMcpToolName } from '../../services/mcp/mcpStringUtils.js'import type { ScopedMcpServerConfig } from '../../services/mcp/types.js'
import { isInBundledMode } from '../bundledMode.js'import { CLI_CU_CAPABILITIES, COMPUTER_USE_MCP_SERVER_NAME } from './common.js'import { getChicagoCoordinateMode } from './gates.js'
/** * Build the dynamic MCP config + allowed tool names. Mirror of * `setupClaudeInChrome`. The `mcp__computer-use__*` tools are added to * `allowedTools` so they bypass the normal permission prompt — the package's * `request_access` handles approval for the whole session. * * The MCP layer isn't ceremony: the API backend detects `mcp__computer-use__*` * tool names and emits a CU availability hint into the system prompt * (COMPUTER_USE_MCP_AVAILABILITY_HINT in the anthropic repo). Built-in tools * with different names wouldn't trigger it. Cowork uses the same names for the * same reason (apps/desktop/src/main/local-agent-mode/systemPrompt.ts:314). */export function setupComputerUseMCP(): { mcpConfig: Record<string, ScopedMcpServerConfig> allowedTools: string[]} { const allowedTools = buildComputerUseTools( CLI_CU_CAPABILITIES, getChicagoCoordinateMode(), ).map(t => buildMcpToolName(COMPUTER_USE_MCP_SERVER_NAME, t.name))
// command/args are never spawned — client.ts intercepts by name and // uses the in-process server. The config just needs to exist with // type 'stdio' to hit the right branch. Mirrors Chrome's setup. const args = isInBundledMode() ? ['--computer-use-mcp'] : [ join(fileURLToPath(import.meta.url), '..', 'cli.js'), '--computer-use-mcp', ]
return { mcpConfig: { [COMPUTER_USE_MCP_SERVER_NAME]: { type: 'stdio', command: process.execPath, args, scope: 'dynamic', } as const, }, allowedTools, }}