Implements the server using FastAPI, providing endpoints for linting code, accessing testing principles, and supporting MCP discovery
Provides a reproducible development environment and build system for the MCP server through Nix
Enforces testing principles and best practices for pytest-based unit tests, analyzing test code for adherence to standards like deterministic execution and absence of branching logic
MCP Testing Sensei
This project implements an MCP (Model Context Protocol) stdio server designed to enforce and guide agentic coding tools (like Gemini CLI or Claude Code) in adhering to language agnostic unit testing principles.
Core Principles Enforced
This tool aims to promote the following unit testing principles:
- Tests should be written before implementation. (BDD/TDD for the win)
- Tests should document the behavior of the system under test.
- Tests should be small, clearly written, and have a single concern.
- Tests should be deterministic and isolated from the side effects of their environment and other tests.
- Tests should be written in a declarative manner and never have branching logic.
Features
lint_code
tool: Analyzes provided code snippets for violations of the defined unit testing standards.get_testing_principles
tool: Provides the core unit testing principles to guide LLMs in generating better tests.unit-testing-principles
resource: Exposes testing principles as an MCP resource.
Installation
Option 1: Install from PyPI (Recommended)
The easiest way to install MCP Testing Sensei is via pip:
This installs the mcp-testing-sensei
command globally.
Option 2: Install from npm
If you prefer using npm:
Note: This still requires Python to be installed on your system.
Option 3: Using Docker
Option 4: Development Setup with Nix
For development or if you want to build from source:
Prerequisites
- Nix (for reproducible development environment)
Development Environment Setup
To enter the development environment with all dependencies:
Building the Standalone Executable
To build the standalone executable using Nix, run the following command:
This will create a result
symlink in your project root, pointing to the built executable.
Running the Server
Using the Standalone Executable
After building, you can run the MCP stdio server directly from the result
symlink:
This will start the MCP server that communicates via standard input/output.
Running from Development Environment
Alternatively, if you are in the nix develop
shell, you can run the MCP server:
The server communicates via stdio, reading JSON-RPC messages from stdin and writing responses to stdout.
Using with MCP Clients
The server can be integrated with MCP-compatible clients like Claude Desktop or other tools that support the Model Context Protocol.
Configuration for Claude Desktop
If installed via pip:
If installed via npm:
If using Docker:
If running from source:
Testing the Server
To verify the server is working correctly, you can use the integration test script:
This will:
- Start the MCP server
- Send test requests to verify the tools are working
- Display the responses
The server itself doesn't have a standalone test mode - it's designed to be used with MCP clients.
Development
Running Tests
To run the unit tests locally, first ensure you are in the Nix development environment:
Then, execute pytest
:
Project Structure
Contributing
Contributions are welcome! Please ensure your changes adhere to the established unit testing principles and project conventions.
Additional Documentation
- DISTRIBUTION.md - Detailed guide for all distribution methods
- RELEASE.md - Release process and version management
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
An MCP server that enforces unit testing standards by linting code and guiding agentic coding tools (like Gemini CLI or Claude Code) to follow best practices in test-driven development.
Related MCP Servers
- -securityAlicense-qualityAn MCP server that implements Claude Code-like functionality, allowing the AI to analyze codebases, modify files, execute commands, and manage projects through direct file system interactions.Last updated -224PythonMIT License
- -securityAlicense-qualityA test server implementing all features of the MCP protocol, including prompts, tools, resources, and sampling, designed for testing MCP clients rather than practical applications.Last updated -PythonMIT License
- -securityFlicense-qualityAn MCP server that integrates various penetration testing tools, enabling security professionals to perform reconnaissance, vulnerability scanning, and API testing through natural language commands in compatible LLM clients like Claude Desktop.Last updated -3Python
- -securityAlicense-qualityAn MCP server that orchestrates AI coding assistants (Claude Code CLI and Gemini CLI) to perform complex programming tasks autonomously, allowing remote control of your local development environment from anywhere.Last updated -793TypeScriptMIT License