Skip to main content
Glama

detox_init

Initialize end-to-end testing for React Native projects by creating folder structure and configuration for the Detox framework.

Instructions

Initialize Detox in a React Native project. Creates e2e folder structure and configuration.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to React Native project root
testRunnerNojest

Implementation Reference

  • Complete definition of the detox_init tool, including its handler function that executes the Detox 'init' CLI command with optional testRunner argument.
    export const initTool: Tool = { name: "detox_init", description: "Initialize Detox in a React Native project. Creates e2e folder structure and configuration.", inputSchema: zodToJsonSchema(InitArgsSchema), handler: async (args: z.infer<typeof InitArgsSchema>) => { const parsed = InitArgsSchema.parse(args); const cliArgs: string[] = ["init"]; if (parsed.testRunner) { cliArgs.push("-r", parsed.testRunner); } const result = await executeDetoxCommand(cliArgs, { cwd: parsed.projectPath }); return { success: result.success, output: result.stdout, errors: result.stderr, message: result.success ? "Detox initialized successfully. Check the e2e folder for test files." : "Failed to initialize Detox.", }; }, };
  • Zod input schema for detox_init tool defining projectPath (required) and testRunner (optional, defaults to 'jest').
    export const InitArgsSchema = z.object({ projectPath: z.string().describe("Path to React Native project root"), testRunner: z.enum(["jest", "mocha"]).optional().default("jest"), }); export type InitArgs = z.infer<typeof InitArgsSchema>;
  • The detox_init tool (initTool) is registered by inclusion in the allTools export array used by the MCP server.
    initTool,
  • src/index.ts:40-48 (registration)
    MCP ListTools handler that registers all tools including detox_init by mapping from allTools.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: allTools.map((tool) => ({ name: tool.name, description: tool.description, inputSchema: tool.inputSchema, })), }; });
  • src/index.ts:50-94 (registration)
    MCP CallTool handler that dispatches to the specific tool handler (including detox_init) found by name in allTools.
    server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; const tool = allTools.find((t) => t.name === name); if (!tool) { throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`); } try { // Add project path to args if not specified const argsWithPath = { ...args, cwd: (args as any)?.cwd || PROJECT_PATH, projectPath: (args as any)?.projectPath || PROJECT_PATH, }; const result = await tool.handler(argsWithPath); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; } catch (error: any) { return { content: [ { type: "text", text: JSON.stringify( { success: false, error: error.message, }, null, 2 ), }, ], isError: true, }; } });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gayancliyanage/detox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server