# MCP Frontend Testing Server ## Description This MCP server provides tools for frontend testing, including: - **Code Analysis**: Analyzes JavaScript/TypeScript code to determine appropriate testing strategies. - **Test Generation**: Generates unit and component tests for Jest and Cypress. - **Test Running**: Executes tests using Jest and Cypress and returns results. - **Component Testing**: Provides a tool specifically for testing React components. ## Getting Started ### Installation 1. **Clone the repository:** \`git clone mcp-frontend-testing\` 2. **Navigate to the project directory:** \`cd mcp-frontend-testing\` 3. **Install dependencies:** \`npm install\` ### Running the Server #### HTTP Transport \`\`\`bash # Build the server npm run build # Start the server with HTTP transport npm run start:http \`\`\` #### Stdio Transport \`\`\`bash # Build the server npm run build # Start the server with Stdio transport npm run start:stdio \`\`\` ## Usage ### Tools - **analyzeCode**: Analyzes code and returns analysis results. - **Parameters**: - \`code\` (string, required): The source code to analyze. - \`language\` (enum, optional): Language of the code (\`javascript\` | \`typescript\` | \`jsx\` | \`tsx\`, default: \`javascript\`). - **generateTest**: Generates test code based on source code and framework. - **Parameters**: - \`code\` (string, required): The source code to generate tests for. - \`framework\` (enum, required): Testing framework (\`jest\` | \`cypress\`). - \`type\` (enum, required): Type of test (\`unit\` | \`component\` | \`e2e\`). - \`language\` (enum, optional): Language of the code (\`javascript\` | \`typescript\` | \`jsx\` | \`tsx\`, default: \`javascript\`). - \`description\` (string, optional): Description of the test case. - **runTest**: Runs tests and returns results. - **Parameters**: - \`sourceCode\` (string, required): The source code being tested. - \`testCode\` (string, required): The test code to execute. - \`framework\` (enum, required): Testing framework (\`jest\` | \`cypress\`). - \`type\` (enum, required): Type of test (\`unit\` | \`component\` | \`e2e\`). - \`config\` (record, optional): Configuration object for test execution. - **testReactComponent**: Runs component tests specifically for React components. - **Parameters**: - \`componentCode\` (string, required): The source code of the React component. - \`testCode\` (string, optional): Test code for the component (auto-generated if not provided). - \`framework\` (enum, optional): Testing framework (\`jest\` | \`cypress\`, default: \`jest\`). - \`props\` (record, optional): Props to pass to the component during testing. - \`autoGenerateTest\` (boolean, optional): Automatically generate test code if not provided (default: \`true\`). ### Resources - **templates**: Provides test templates. - **URI**: \`templates://{framework}/{type}\` - **Parameters**: - \`framework\` (string, required): Testing framework (\`jest\` | \`cypress\`). - \`type\` (string, required): Type of template (\`unit\` | \`component\`). - **docs**: Provides documentation for testing frameworks. - **URI**: \`docs://{topic}\` - **Parameters**: - \`topic\` (string, required): Documentation topic (\`jest\` | \`cypress\` | \`react-testing-library\`). ## Deployment ### Docker Build and run the server using Docker: \`\`\`bash docker build -t mcp-frontend-testing . docker run -p 3000:3000 mcp-frontend-testing \`\`\` ### Cloud Deploy to cloud platforms like AWS Lambda, Google Cloud Run, or Azure Functions for serverless or containerized deployments. --- **Note**: This server is designed to be used with an MCP client to enable LLMs to perform frontend testing tasks.