@x402scan/mcp 0.0.7-beta.1 → 0.0.7-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/cli/install/1-get-client/index.ts","../../src/cli/install/2-add-server/lib/platforms.ts","../../src/cli/install/2-add-server/lib/result.ts","../../src/cli/install/2-add-server/lib/file-types.ts","../../src/cli/install/2-add-server/lib/client-config-file.ts","../../src/cli/install/2-add-server/lib/nested-values.ts","../../src/cli/install/2-add-server/index.ts","../../src/cli/install/3-redeem-invite/index.ts","../../src/cli/install/4-add-funds/index.ts","../../src/cli/install/index.ts"],"names":["parsedClient","log","client","chalk","Platforms","z","process","path","os","clackLog","fs","outro","redeemInviteCode","spinner"],"mappings":"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","file":"install-F5WF4NGY.js","sourcesContent":["import z from 'zod';\n\nimport { select, log, outro } from '@clack/prompts';\n\nimport chalk from 'chalk';\n\nimport { clientMetadata, Clients } from '../clients';\n\nimport type { InstallFlags } from '..';\n\nexport const getClient = async ({ client: flagClient, yes }: InstallFlags) => {\n if (yes) {\n if (!flagClient) {\n throw new Error(\n `Client is required when yes is true. Pass --client as one of these values: ${Object.values(Clients).join(', ')}`\n );\n }\n const parsedClient = z.enum(Clients).safeParse(flagClient);\n if (!parsedClient.success) {\n throw new Error(\n `${flagClient} is not a valid client. Valid options are: ${Object.values(Clients).join(', ')}`\n );\n }\n return parsedClient.data;\n }\n const parsedClient = z.enum(Clients).safeParse(flagClient);\n if (parsedClient.success) {\n return parsedClient.data;\n }\n if (flagClient) {\n log.error(`${flagClient} is not a valid client. Please select a client`);\n }\n const client = await select({\n message: 'Where would you like to install the x402scan MCP server?',\n options: Object.values(Clients).map(client => {\n const metadata = clientMetadata[client];\n return {\n label: metadata.name,\n value: client,\n };\n }),\n maxItems: 7,\n });\n\n const parsedClientSelection = z.enum(Clients).safeParse(client);\n if (parsedClientSelection.success) {\n return parsedClientSelection.data;\n }\n outro(chalk.bold.red('No MCP client selected'));\n process.exit(0);\n};\n","import os from 'os';\nimport path from 'path';\nimport process from 'process';\nimport z from 'zod';\n\nenum Platforms {\n Windows = 'win32',\n MacOS = 'darwin',\n Linux = 'linux',\n}\n\nexport const getPlatformPath = () => {\n const platform = z.enum(Platforms).safeParse(process.platform);\n if (!platform.success) {\n throw new Error(`Invalid platform: ${process.platform}`);\n }\n\n const homeDir = os.homedir();\n\n switch (platform.data) {\n case Platforms.Windows:\n return {\n baseDir:\n process.env.APPDATA ?? path.join(homeDir, 'AppData', 'Roaming'),\n vscodePath: path.join('Code', 'User'),\n };\n case Platforms.MacOS:\n return {\n baseDir: path.join(homeDir, 'Library', 'Application Support'),\n vscodePath: path.join('Code', 'User'),\n };\n case Platforms.Linux:\n return {\n baseDir: process.env.XDG_CONFIG_HOME ?? path.join(homeDir, '.config'),\n vscodePath: path.join('Code/User'),\n };\n default:\n throw new Error(`Invalid platform: ${process.platform}`);\n }\n};\n","import { resultFromThrowable } from '@x402scan/neverthrow';\n\nimport type { BaseConfigError } from '../types';\n\nconst errorType = 'config';\nconst surface = 'config_file';\n\nexport const configResultFromThrowable = <T>(\n fn: () => T,\n error: (e: unknown) => BaseConfigError\n) => resultFromThrowable(errorType, surface, fn, error);\n","import * as TOML from '@iarna/toml';\nimport yaml from 'js-yaml';\nimport * as jsonc from 'jsonc-parser';\n\nimport { safeReadFile } from '@/shared/neverthrow/fs';\nimport { configResultFromThrowable } from './result';\n\nimport type { ClientConfigFile, ClientConfigObject } from '../types';\n\nexport enum FileFormat {\n JSON = 'json',\n YAML = 'yaml',\n TOML = 'toml',\n}\n\nconst parseContent = (\n fileContent: string,\n format: FileFormat,\n path: string\n) => {\n return configResultFromThrowable(\n () => {\n let config: ClientConfigObject;\n if (format === FileFormat.YAML) {\n config = yaml.load(fileContent) as ClientConfigObject;\n } else if (format === FileFormat.TOML) {\n config = TOML.parse(fileContent) as ClientConfigObject;\n } else if (path.endsWith('.jsonc')) {\n config = jsonc.parse(fileContent) as ClientConfigObject;\n } else {\n config = JSON.parse(fileContent) as ClientConfigObject;\n }\n return {\n config,\n fileContent,\n };\n },\n e => ({\n cause: 'parse_config',\n message: e instanceof Error ? e.message : 'Failed to parse config file',\n })\n );\n};\n\n/**\n * Parse file content based on format\n */\nexport const parseClientConfig = async ({ format, path }: ClientConfigFile) => {\n const readResult = await safeReadFile('config_file', path);\n\n if (readResult.isErr()) return readResult;\n\n const parseResult = parseContent(readResult.value, format, path);\n\n if (parseResult.isErr()) return parseResult;\n\n return parseResult;\n};\n\nconst serializeJsonc = (\n config: ClientConfigObject,\n originalContent: string\n) => {\n return configResultFromThrowable<string>(\n () => {\n const modifications: jsonc.Edit[] = [];\n\n for (const key of Object.keys(config)) {\n const keyPath = [key];\n const edits = jsonc.modify(originalContent, keyPath, config[key], {\n formattingOptions: { tabSize: 2, insertSpaces: true },\n });\n modifications.push(...edits);\n }\n\n return jsonc.applyEdits(originalContent, modifications);\n },\n e => ({\n cause: 'serialize_config',\n message: e instanceof Error ? e.message : 'Failed to serialize JSONC',\n })\n );\n};\n\nexport const serializeClientConfig = (\n { format, path }: ClientConfigFile,\n config: ClientConfigObject,\n originalContent?: string\n): string => {\n if (format === FileFormat.YAML) {\n return yaml.dump(config, {\n indent: 2,\n lineWidth: -1,\n noRefs: true,\n });\n }\n if (format === FileFormat.TOML) {\n return TOML.stringify(config);\n }\n if (path.endsWith('.jsonc') && originalContent) {\n const result = serializeJsonc(config, originalContent);\n if (result.isOk()) {\n return result.value;\n }\n // Fallback to standard JSON.stringify if edit fails\n console.log(`Error applying JSONC edits: ${result.error.message}`);\n console.log('Falling back to JSON.stringify (comments will be lost)');\n return JSON.stringify(config, null, 2);\n }\n // Default to JSON\n return JSON.stringify(config, null, 2);\n};\n\nexport const stringifyObject = (\n config: ClientConfigObject,\n format: FileFormat\n) => {\n if (format === FileFormat.YAML) {\n return yaml.dump(config, {\n indent: 2,\n lineWidth: -1,\n noRefs: true,\n });\n }\n if (format === FileFormat.TOML) {\n return TOML.stringify(config);\n }\n return JSON.stringify(config, null, 2);\n};\n","import os from 'os';\nimport path from 'path';\nimport process from 'process';\nimport fs from 'fs';\n\nimport { getPlatformPath } from './platforms';\nimport { log } from '@/shared/log';\n\nimport { Clients } from '../../clients';\n\nimport type { ClientConfigFile } from '../types';\nimport { FileFormat } from './file-types';\n\nexport const getClientConfigFile = (client: Clients): ClientConfigFile => {\n const homeDir = os.homedir();\n const { baseDir, vscodePath } = getPlatformPath();\n\n switch (client) {\n case Clients.Claude:\n return {\n path: path.join(baseDir, 'Claude', 'claude_desktop_config.json'),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.Cline:\n return {\n path: path.join(\n baseDir,\n vscodePath,\n 'globalStorage',\n 'saoudrizwan.claude-dev',\n 'settings',\n 'cline_mcp_settings.json'\n ),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.RooCline:\n return {\n path: path.join(\n baseDir,\n vscodePath,\n 'globalStorage',\n 'rooveterinaryinc.roo-cline',\n 'settings',\n 'mcp_settings.json'\n ),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.Windsurf:\n return {\n path: path.join(homeDir, '.codeium', 'windsurf', 'mcp_config.json'),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.Cursor:\n return {\n path: path.join(homeDir, '.cursor', 'mcp.json'),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.Warp:\n return {\n path: 'no-local-config', // it's okay this isn't a real path, we never use it\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.GeminiCli:\n return {\n path: path.join(homeDir, '.gemini', 'settings.json'),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.Vscode:\n return {\n path: path.join(baseDir, vscodePath, 'mcp.json'),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.ClaudeCode:\n return {\n path: path.join(homeDir, '.claude.json'),\n configKey: 'mcpServers',\n format: FileFormat.JSON,\n };\n case Clients.Goose:\n return {\n path: path.join(homeDir, '.config', 'goose', 'config.yaml'),\n configKey: 'extensions',\n format: FileFormat.YAML,\n };\n case Clients.Zed:\n return {\n path:\n process.platform === 'win32'\n ? path.join(\n process.env.APPDATA ?? path.join(homeDir, 'AppData', 'Roaming'),\n 'Zed',\n 'settings.json'\n )\n : path.join(homeDir, '.config', 'zed', 'settings.json'),\n configKey: 'context_servers',\n format: FileFormat.JSON,\n };\n case Clients.Codex:\n return {\n path: path.join(\n process.env.CODEX_HOME ?? path.join(homeDir, '.codex'),\n 'config.toml'\n ),\n configKey: 'mcp_servers',\n format: FileFormat.TOML,\n };\n case Clients.Opencode: {\n const jsonPath = path.join(\n homeDir,\n '.config',\n 'opencode',\n 'opencode.json'\n );\n const jsoncPath = jsonPath.replace('.json', '.jsonc');\n\n // For OpenCode, check if .jsonc exists and prefer it over .json\n if (fs.existsSync(jsoncPath)) {\n log.info(`Found .jsonc file for OpenCode, using: ${jsoncPath}`);\n return {\n path: jsoncPath,\n configKey: 'mcp',\n format: FileFormat.JSON,\n };\n }\n\n return {\n path: jsonPath,\n configKey: 'mcp',\n format: FileFormat.JSON,\n };\n }\n default:\n throw new Error(`Unknown client: ${String(client)}`);\n }\n};\n","import type { ClientConfigObject } from '../types';\n\nexport const getNestedValue = (obj: ClientConfigObject, path: string) => {\n const keys = path.split('.');\n let current: ClientConfigObject | undefined = obj;\n for (const key of keys) {\n if (current && typeof current === 'object' && key in current) {\n current = current[key] as ClientConfigObject;\n } else {\n return undefined;\n }\n }\n return current;\n};\n\nexport const setNestedValue = (\n obj: ClientConfigObject,\n path: string,\n value: ClientConfigObject\n) => {\n const keys = path.split('.');\n const lastKey = keys.pop();\n if (!lastKey) return;\n const target = keys.reduce((current, key) => {\n current[key] ??= {};\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return current[key];\n }, obj);\n target[lastKey] = value;\n};\n","import fs from 'fs';\n\nimport chalk from 'chalk';\n\nimport { log as clackLog, confirm, outro, stream } from '@clack/prompts';\n\nimport { err } from '@x402scan/neverthrow';\n\nimport { safeWriteFile } from '@/shared/neverthrow/fs';\nimport { log } from '@/shared/log';\n\nimport { clientMetadata, Clients } from '../clients';\nimport {\n FileFormat,\n parseClientConfig,\n serializeClientConfig,\n stringifyObject,\n getClientConfigFile,\n getNestedValue,\n setNestedValue,\n} from './lib';\n\nimport { DIST_TAG } from '@/server/lib/version';\n\nimport { wait } from '@/cli/lib/wait';\n\nimport type { ClientConfigObject } from './types';\nimport type { GlobalFlags } from '@/types';\n\nconst getMcpConfig = (globalFlags: GlobalFlags) => {\n if (globalFlags.dev) {\n return {\n serverName: 'x402',\n command: 'node',\n args: [`${process.cwd()}/dist/esm/index.js`, '--dev'],\n };\n }\n return {\n serverName: 'x402',\n command: 'npx',\n args: ['-y', `@x402scan/mcp@${DIST_TAG}`],\n };\n};\n\nexport const addServer = async (client: Clients, globalFlags: GlobalFlags) => {\n const { serverName, command, args } = getMcpConfig(globalFlags);\n\n if (client === Clients.Warp) {\n clackLog.info(\n chalk.bold.yellow('Warp requires a manual installation through their UI.')\n );\n clackLog.message(\n 'Please copy the following configuration object and add it to your Warp MCP config:'\n );\n console.log();\n console.log(\n JSON.stringify(\n {\n [serverName]: {\n command,\n args,\n working_directory: null,\n start_on_launch: true,\n },\n },\n null,\n 2\n )\n );\n console.log();\n clackLog.message(\n `Read Warp's documentation at https://docs.warp.dev/knowledge-and-collaboration/mcp`\n );\n const addedToWarp = await confirm({\n message: 'Did you add the MCP server to your Warp config?',\n });\n if (!addedToWarp) {\n return err('user', 'install', {\n cause: 'warp_mcp_server_not_added',\n message: 'Warp MCP server not added',\n });\n }\n }\n\n const clientFileTarget = getClientConfigFile(client);\n const { name } = clientMetadata[client];\n\n let config: ClientConfigObject = {};\n let content: string | undefined = undefined;\n\n log.info(`Checking if config file exists at: ${clientFileTarget.path}`);\n if (!fs.existsSync(clientFileTarget.path)) {\n log.info('Config file not found, creating default empty config');\n setNestedValue(config, clientFileTarget.configKey, {});\n log.info('Config created successfully');\n if (!globalFlags.yes) {\n await wait({\n startText: 'Locating config file',\n stopText: `No config found, creating default empty config`,\n ms: 1000,\n });\n }\n } else {\n log.info('Config file found, reading config file content');\n const parseResult = await parseClientConfig(clientFileTarget);\n\n if (parseResult.isErr()) {\n clackLog.error(\n chalk.bold.red(`Error reading config: ${parseResult.error.message}`)\n );\n outro(chalk.bold.red(`Error adding x402scan MCP to ${name}`));\n process.exit(1);\n }\n\n const { config: rawConfig, fileContent } = parseResult.value;\n config = rawConfig;\n content = fileContent;\n const existingValue = getNestedValue(rawConfig, clientFileTarget.configKey);\n if (!existingValue) {\n setNestedValue(rawConfig, clientFileTarget.configKey, {});\n }\n if (!globalFlags.yes) {\n await wait({\n startText: `Locating config file`,\n stopText: `Config loaded from ${clientFileTarget.path}`,\n ms: 1000,\n });\n }\n }\n\n const servers = getNestedValue(config, clientFileTarget.configKey);\n if (!servers || typeof servers !== 'object') {\n log.error(`Invalid ${clientFileTarget.configKey} structure in config`);\n clackLog.error(\n chalk.bold.red(\n `Invalid ${clientFileTarget.configKey} structure in config`\n )\n );\n outro(chalk.bold.red(`Error adding x402scan MCP to ${name}`));\n process.exit(1);\n }\n\n if (client === Clients.Goose) {\n servers[serverName] = {\n name: serverName,\n cmd: command,\n args,\n enabled: true,\n envs: {},\n type: 'stdio',\n timeout: 300,\n };\n } else if (client === Clients.Zed) {\n // Zed has a different config structure\n servers[serverName] = {\n source: 'custom',\n command,\n args,\n env: {},\n };\n } else if (client === Clients.Opencode) {\n servers[serverName] = {\n type: 'local',\n command,\n args,\n enabled: true,\n environment: {},\n };\n } else {\n servers[serverName] = {\n command,\n args,\n };\n }\n\n if (!globalFlags.yes) {\n await new Promise(resolve => setTimeout(resolve, 1000));\n\n clackLog.step(\n `The following will be added to ${chalk.bold.underline(clientFileTarget.path)}`\n );\n }\n\n const configStr = formatDiffByFormat(\n {\n [clientFileTarget.configKey]: {\n [serverName]: servers[serverName] as object,\n },\n },\n clientFileTarget.format\n );\n\n if (!globalFlags.yes) {\n await stream.message(\n (async function* () {\n for (const num of Array.from(\n { length: configStr.length },\n (_, i) => i\n )) {\n const char = configStr[num]!;\n yield char;\n if (!['\\n', ' ', '─', '╮', '╭', '╰', '╯', '│'].includes(char)) {\n await new Promise(resolve => setTimeout(resolve, 5));\n } else {\n await new Promise(resolve => setTimeout(resolve, 2));\n }\n }\n })()\n );\n\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n\n const isConfirmed = globalFlags.yes\n ? true\n : await confirm({\n message: `Would you like to proceed?`,\n active: 'Install MCP',\n inactive: 'Cancel',\n });\n if (isConfirmed !== true) {\n outro(chalk.bold.red('Installation cancelled'));\n process.exit(0);\n }\n\n const configContent = serializeClientConfig(\n clientFileTarget,\n config,\n content\n );\n\n const writeResult = await safeWriteFile(\n 'config_file',\n clientFileTarget.path,\n configContent\n );\n\n if (writeResult.isErr()) {\n clackLog.error(\n chalk.bold.red(`Error writing config: ${writeResult.error.message}`)\n );\n outro(chalk.bold.red(`Error adding x402scan MCP to ${name}`));\n process.exit(1);\n }\n\n clackLog.success(chalk.bold.green(`Added x402scan MCP to ${name}`));\n};\n\nconst formatDiffByFormat = (obj: object, format: FileFormat) => {\n const str = stringifyObject(obj, format);\n switch (format) {\n case FileFormat.JSON: {\n const numLines = str.split('\\n').length;\n return str\n .split('\\n')\n .map((line, index) => {\n const diffLines = [0, 1, numLines - 2, numLines - 1];\n const isDiffLine = !diffLines.includes(index);\n if (isDiffLine) {\n return `${chalk.bold.green(`+ ${line.slice(2)}`)}`;\n }\n return line;\n })\n .join('\\n');\n }\n case FileFormat.YAML: {\n return str\n .split('\\n')\n .map((line, index) => {\n const diffLines = [0, 1, str.length - 2, str.length - 1];\n const isDiffLine = !diffLines.includes(index);\n if (isDiffLine) {\n return `${chalk.bold.green(`+ ${line.slice(2)}`)}`;\n }\n return line;\n })\n .join('\\n');\n }\n case FileFormat.TOML: {\n return str\n .split('\\n')\n .filter(line => line.trim() !== '')\n .map(line => {\n return `${chalk.bold.green(`+ ${line.trim()}`)}`;\n })\n .join('\\n');\n }\n }\n};\n","import chalk from 'chalk';\nimport { log, spinner } from '@clack/prompts';\n\nimport { wait } from '@/cli/lib/wait';\n\nimport { redeemInviteCode as redeemInviteCodeLib } from '@/shared/redeem-invite';\n\nimport type { RedeemInviteProps } from '@/shared/redeem-invite';\nimport type { GlobalFlags } from '@/types';\n\nexport const redeemInviteCode = async (\n props: RedeemInviteProps,\n flags: GlobalFlags\n) => {\n const s = spinner();\n\n if (!flags.yes) {\n s.start('Redeeming invite code...');\n }\n\n const result = await redeemInviteCodeLib(props);\n\n return result.match(\n async ({ amount, txHash }) => {\n if (!flags.yes) {\n s.stop('Invite code redeemed successfully!');\n\n await wait({\n startText: 'Processing...',\n stopText: chalk.green(\n `${chalk.bold(amount)} USDC has been sent to your wallet!`\n ),\n ms: 1000,\n });\n }\n\n log.info(chalk.dim(`Transaction: https://basescan.org/tx/${txHash}`));\n\n return true;\n },\n error => {\n if (!flags.yes) {\n s.stop('Invite code redemption failed');\n }\n log.warning(\n chalk.yellow(`Failed to redeem invite code: ${error.message}`)\n );\n return false;\n }\n );\n};\n","import chalk from 'chalk';\nimport { log, spinner } from '@clack/prompts';\n\nimport { getBalance } from '@/shared/balance';\nimport { promptDeposit } from '@/cli/lib/deposit';\n\nimport type { Address } from 'viem';\nimport type { InstallFlags } from '..';\n\ninterface AddFundsProps {\n flags: InstallFlags;\n address: Address;\n isNew: boolean;\n}\n\nexport const addFunds = async ({ flags, address, isNew }: AddFundsProps) => {\n if (isNew) {\n if (!flags.yes) {\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n log.info('To use paid API tools, you will need USDC in your wallet.');\n await promptDeposit({ address, flags, surface: 'add-funds' });\n } else {\n const { start, stop } = spinner();\n\n start('Checking balance...');\n const balanceResult = await getBalance({\n address,\n flags,\n surface: 'add-funds',\n });\n\n if (balanceResult.isOk()) {\n stop(`Balance: ${chalk.bold(`${balanceResult.value.balance} USDC`)} `);\n } else {\n stop(`Error: ${balanceResult.error.message}`);\n return;\n }\n\n const balance = balanceResult.value;\n if (balance.balance < 1) {\n log.warning(\n chalk.bold(\n `Your balance is low (${balance.balance} USDC). Consider topping up.`\n )\n );\n await promptDeposit({ address, flags, surface: 'install' });\n }\n }\n};\n","import chalk from 'chalk';\nimport { intro, outro } from '@clack/prompts';\n\nimport { getWallet } from '@/shared/wallet';\nimport { log } from '@/shared/log';\n\nimport { getClient } from './1-get-client';\nimport { addServer } from './2-add-server';\nimport { redeemInviteCode } from './3-redeem-invite';\nimport { addFunds } from './4-add-funds';\n\nimport type { Command, GlobalFlags } from '@/types';\n\nexport type InstallFlags = GlobalFlags<{\n client?: string;\n}>;\n\nexport const installMcpServer: Command<InstallFlags> = async flags => {\n intro(chalk.green.bold(`Install x402scan MCP`));\n\n const walletResult = await getWallet();\n\n if (walletResult.isErr()) {\n log.error(JSON.stringify(walletResult.error, null, 2));\n outro(chalk.bold.red('Failed to get wallet'));\n process.exit(1);\n }\n\n const {\n account: { address },\n isNew,\n } = walletResult.value;\n\n const client = await getClient(flags);\n\n await addServer(client, flags);\n\n const inviteRedeemed = flags.invite\n ? await redeemInviteCode(\n {\n code: flags.invite,\n dev: flags.dev,\n address,\n surface: 'install',\n },\n flags\n )\n : false;\n\n if (!inviteRedeemed) {\n await addFunds({ flags, address, isNew });\n }\n\n outro(chalk.bold.green('Your x402scan MCP server is ready to use!'));\n};\n"]}