Skip to main content
Glama

Local Testing Agent MCP Server

A comprehensive multi-language testing automation MCP (Model Context Protocol) server that enables AI assistants like Claude to discover, plan, and execute tests across multiple programming languages.

License: MIT Python 3.11+

🌟 Features

  • Multi-Language Support: Automatically detect and test projects in 6 programming languages

  • Smart Test Discovery: Comprehensive pattern matching for test files across different frameworks

  • Automated Test Execution: Run language-specific test suites with proper frameworks

  • AI-Powered Test Planning: Generate intelligent test plans for Claude and other AI assistants

  • Comprehensive Reporting: JSON and Markdown reports with coverage maps

  • MCP Protocol: Seamless integration with Claude Code, Gravity, and other MCP clients

πŸ”§ Supported Languages & Frameworks

Language

File Extensions

Test Framework

Test Patterns

Python

.py

pytest

test_*.py, *_test.py, tests/

JavaScript/TypeScript

.js, .jsx, .ts, .tsx

jest

*.test.js, *.spec.ts, __tests__/

Go

.go

go test

*_test.go

Rust

.rs

cargo test

*_test.rs, tests/

Java

.java

Maven/Gradle

*Test.java, test/

Ruby

.rb

RSpec/Minitest

*_spec.rb, *_test.rb, spec/

πŸ“¦ Installation

Prerequisites

  • Python 3.11 or higher

  • pip (Python package installer)

Setup

  1. Clone the repository:

git clone https://github.com/marcelkurvers/local-testing-agent.git cd local-testing-agent
  1. Create and activate a virtual environment:

python3 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  1. Install dependencies:

pip install -r requirements.txt
  1. Install language-specific test frameworks (optional, based on your needs):

# Python (already included) pip install pytest # JavaScript/TypeScript npm install -g jest # Go (already included with Go installation) # Rust (already included with Cargo) # Java - Maven or Gradle # Ruby gem install rspec

πŸš€ Usage

As an MCP Server

With Claude Code

The server auto-discovers when running Claude Code. No additional configuration needed.

With Gravity (Google Antigravity)

  1. Configure in ~/.gemini/antigravity/mcp_config.json:

{ "mcpServers": { "local-testing-agent": { "command": "/path/to/local-testing-agent/.venv/bin/python", "args": [ "/path/to/local-testing-agent/testing_agent.py" ], "env": {} } } }
  1. Restart Gravity completely to register the MCP server.

MCP Tools Available

The server exposes three MCP tools:

1. scan_repository

Scans a project directory and detects source files and test files for all supported languages.

scan_repository(project_root=".")

Returns:

  • Snapshot file (.mcp_scan_snapshot.json)

  • Test plan file (TEST_PLAN_AI.md)

  • Language detection results

2. run_all_tests

Runs all detected tests for all languages with test files.

run_all_tests(project_root=".")

Returns:

  • Test report (.mcp_test_report.json)

  • Coverage map (TEST_COVERAGE_MAP.md)

  • Execution results for each framework

3. full_phase2_pipeline

Convenience tool that runs scan β†’ plan β†’ test β†’ coverage in one call.

full_phase2_pipeline(project_root=".")

Standalone Usage

Run the MCP server directly:

python testing_agent.py

Or use the Phase 1 testing engine:

python -c "from testing_engine.pipeline import full_test_pipeline; full_test_pipeline('.')"

πŸ“Š Output Files

The MCP server generates several files:

  • .mcp_scan_snapshot.json: Complete scan results with all detected files

  • .mcp_test_report.json: Test execution results with pass/fail status

  • TEST_COVERAGE_MAP.md: Human-readable coverage summary

  • TEST_PLAN_AI.md: AI-generated test plan with suggestions

πŸ—οΈ Architecture

Project Structure

local-testing-agent/ β”œβ”€β”€ testing_agent.py # Phase 2 MCP server (main) β”œβ”€β”€ testing_engine/ # Phase 1 implementation β”‚ β”œβ”€β”€ file_scanner.py # File discovery β”‚ β”œβ”€β”€ unit_test_generator.py # Test generation β”‚ └── pipeline.py # Test orchestration β”œβ”€β”€ tests/ # Test suite β”‚ β”œβ”€β”€ test_smoke.py # Smoke tests β”‚ └── unit/ # Unit tests β”œβ”€β”€ CLAUDE.md # Development guide β”œβ”€β”€ IMPROVEMENT_PLAN.md # Roadmap └── requirements.txt # Dependencies

Key Components

  1. Language Detection (detect_languages): Walks the repository once and identifies all source and test files

  2. Test Planning (plan_test_runs): Creates execution plans based on detected files

  3. Test Execution (execute_planned_runs): Runs language-specific test commands

  4. Report Generation: Produces JSON and Markdown reports

πŸ” Test Detection Patterns

The agent uses comprehensive patterns to detect test files:

  • Directory-based: tests/, test/, spec/, __tests__/

  • Naming conventions: test_*.py, *_test.go, *.spec.ts, *Test.java

  • Framework-specific: Adapts to Jest, RSpec, Minitest, etc.

βš™οΈ Configuration

Excluded Directories

The following directories are automatically excluded from scanning:

  • Virtual environments: .venv, venv, site-packages

  • Version control: .git

  • Build artifacts: dist, build, out

  • Caches: __pycache__, .cache, .pytest_cache, coverage

  • IDE/Editor: .vscode, .idea

  • Framework-specific: node_modules, .next, .turbo, .mcp

Customization

See CLAUDE.md for detailed development guidelines and customization options.

πŸ§ͺ Testing

Run the test suite:

# Activate virtual environment source .venv/bin/activate # Run all tests pytest # Run with verbose output pytest -v # Run specific test file pytest tests/test_smoke.py

πŸ—ΊοΈ Roadmap

See IMPROVEMENT_PLAN.md for the complete phased improvement plan.

Completed βœ…

  • Phase 1: Multi-language support (Python, JS/TS, Go, Rust, Java, Ruby)

  • Comprehensive test detection patterns

  • MCP protocol integration

In Progress 🚧

  • Phase 2: Parallel test execution

  • Phase 2: Coverage collection integration

  • Phase 3: Comprehensive test suite

Planned πŸ“‹

  • PHP and C# language support

  • Smart framework detection

  • Configuration system

  • Watch mode

  • CI/CD integration helpers

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Built with FastMCP for MCP protocol support

  • Designed for use with Claude Code

  • Compatible with Google Gravity (Antigravity)

πŸ“§ Contact

Marcel Kurvers - @marcelkurvers

Project Link: https://github.com/marcelkurvers/local-testing-agent


Note: This project is actively developed. See IMPROVEMENT_PLAN.md for upcoming features and enhancements.

-
security - not tested
A
license - permissive license
-
quality - not tested

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/marcelkurvers/local-testing-agent'

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