ClaudeTest
io.github.fasteningcode/claudetest
Documentation
title: ClaudeTest emoji: ๐งช colorFrom: blue colorTo: purple sdk: docker pinned: false app_port: 7860
ClaudeTest
Enterprise-grade Playwright (web) and Appium (mobile) test automation plugin for Claude.
Connect your GitHub repository and let Claude generate missing tests, diagnose CI failures, and open fix PRs โ all from a single conversation.
Features
- Test generation โ Claude scans your codebase and writes Playwright (web) or Appium (mobile) tests for untested flows
- CI diagnosis โ paste a failed GitHub Actions run ID and get a plain-English root cause + fix suggestion
- Auto PR โ generated tests are committed to a new branch and opened as a pull request
- Cross-platform mobile โ Appium tests cover iOS and Android from the same test file
- Self-hostable โ run inside your own VPC with Docker; no code leaves your infrastructure
How it works
You โ Claude โ ClaudeTest MCP server โ GitHub API / GitHub Actions
โ
Playwright / Appium test files
โ
Pull request on your repo
ClaudeTest is a Model Context Protocol (MCP) server. Claude calls it as a tool during your conversation, using your GitHub token to read repos, trigger workflows, and open PRs.
Quickstart
Claude.ai (remote โ easiest)
- Open claude.ai โ Settings โ Integrations
- Find ClaudeTest and click Connect
- Authorize GitHub access when prompted
Claude Code (via npx)
npx @fasteningcode/claudetest --stdio
Add to .claude/settings.json:
{
"mcpServers": {
"claudetest": {
"command": "npx",
"args": ["@fasteningcode/claudetest", "--stdio"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
Claude Code (from source)
git clone https://github.com/fasteningcode/claude-e2e-plugin
cd claude-enterprise-testing
pnpm install && pnpm build
export GITHUB_TOKEN=ghp_your_token
node packages/mcp-server/dist/index.js
Then point Claude Code at it in .claude/settings.json:
{
"mcpServers": {
"claudetest": {
"command": "node",
"args": ["packages/mcp-server/dist/index.js"],
"env": {
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}
Self-hosted (Docker)
cp .env.example .env # set GITHUB_TOKEN in .env
docker compose -f docker/docker-compose.yml up -d
Full guide: docs/self-hosted.md
Example conversations
Analyze a repo for coverage gaps
Analyze https://github.com/your-org/your-app for missing test coverage
Generate Playwright tests
Generate Playwright tests for the high-priority gaps you found
Generate Appium tests
Generate Appium tests for the untested screens in https://github.com/your-org/mobile-app
Diagnose a CI failure
Diagnose the failure in run 123456789 in https://github.com/your-org/your-app
Open a PR with generated tests
Open a PR with the generated tests on a branch called feat/claudetest
MCP Tools Reference
| Tool | Input | What it does |
|---|---|---|
analyze_repo | repo_url, branch?, paths? | Scans codebase, returns CoverageGap[] report |
generate_tests | repo_url, file_paths[], test_type | Writes Playwright or Appium test files |
run_tests | repo_url, workflow_id, branch? | Triggers GitHub Actions, polls until complete |
diagnose_failure | repo_url, run_id | Parses CI logs, returns root cause + fix |
create_pr | repo_url, branch, title, files[] | Creates branch, commits files, opens PR |
Installation
npm i @fasteningcode/claudetest
npm: @fasteningcode/claudetest
MCP Registry: io.github.fasteningcode/claudetest
Repository structure
claude-enterprise-testing/
โโโ packages/
โ โโโ mcp-server/ # MCP server entry point + all 5 tools
โ โ โโโ src/
โ โ โโโ auth/ # GitHub token handling (per-request Bearer)
โ โ โโโ github/ # Octokit wrapper
โ โ โโโ tools/ # Tool handlers (one file per tool)
โ โ โโโ types.ts # Shared Zod schemas + TypeScript types
โ โโโ playwright-agent/ # Web test analysis + generation
โ โ โโโ src/
โ โ โโโ analyze.ts # Detects untested pages/components/routes
โ โ โโโ generate.ts # Writes Playwright test files
โ โโโ appium-agent/ # Mobile test analysis + generation
โ โโโ src/
โ โโโ analyze.ts # Detects untested screens/navigation
โ โโโ generate.ts # Writes Appium test files (iOS + Android)
โโโ fixtures/
โ โโโ web-app/ # Next.js fixture app (deliberately untested flows)
โ โโโ mobile-app/ # React Native fixture app (deliberately untested flows)
โโโ docker/
โ โโโ Dockerfile # Multi-stage production build
โ โโโ docker-compose.yml # Self-hosted stack
โโโ docs/
โ โโโ quickstart.md # 5-minute setup guide
โ โโโ self-hosted.md # VPC / Docker deployment guide
โโโ mcp.json # Claude.ai connector manifest
โโโ server.json # MCP Registry manifest
Tech stack
| Layer | Technology |
|---|---|
| Plugin protocol | Model Context Protocol |
| Language | TypeScript (Node.js 20+) |
| Web testing | Playwright |
| Mobile testing | Appium + WebdriverIO |
| GitHub integration | Octokit |
| Schema validation | Zod |
| Test runner | Vitest |
| Package manager | pnpm workspaces |
GitHub permissions required
| Scope | Reason |
|---|---|
repo read | Read source files and file tree |
repo write | Create branches and commit test files |
workflow write | Trigger and read GitHub Actions runs |
pull_requests write | Open PRs with generated tests |
Contributing
We welcome contributions! Please read CONTRIBUTING.md for the full guide.
Quick summary:
- Fork the repo and create a branch:
git checkout -b feat/your-feature - Make your changes with tests:
pnpm test - Open a pull request against
main
Great areas to contribute:
- New framework support (Vue, Angular, Flutter, Cypress)
- New CI integrations (GitLab CI, Bitbucket Pipelines, CircleCI)
- Cloud device farm support (BrowserStack, Sauce Labs, LambdaTest)
- Improved test generation heuristics
License
MIT
