Ryan Malloy bea4a2e5d3 Initial release: MCPTesta v1.0.0 🧪
Community-driven testing excellence for the MCP ecosystem

MCPTesta is a comprehensive testing framework for FastMCP servers that brings
scientific rigor and enterprise-grade capabilities to MCP protocol testing.

🎯 Core Features:
• Comprehensive FastMCP server testing with advanced protocol support
• Parallel execution with intelligent dependency resolution
• Flexible CLI and YAML configuration system
• Rich reporting: console, HTML, JSON, and JUnit formats
• Advanced MCP protocol features: notifications, cancellation, progress tracking
• Production-ready Docker environment with caddy-docker-proxy integration

🧪 Advanced Testing Capabilities:
• Multi-transport support (stdio, SSE, WebSocket)
• Authentication testing (Bearer tokens, OAuth flows)
• Stress testing and performance validation
• Memory profiling and leak detection
• CI/CD integration with comprehensive reporting

🎨 Professional Assets:
• Complete logo package with lab experiment theme
• Comprehensive documentation with Diátaxis framework
• Community-focused branding and messaging
• Multi-platform favicon and social media assets

📚 Documentation:
• Getting started tutorials and comprehensive guides
• Complete CLI and YAML reference documentation
• Architecture explanations and testing strategies
• Team collaboration and security compliance guides

🚀 Ready for:
• Community contributions and external development
• Enterprise deployment and production use
• Integration with existing FastMCP workflows
• Extension and customization for specific needs

Built with modern Python practices using uv, FastMCP, and Starlight documentation.
Designed for developers who demand scientific precision in their testing tools.

Repository: https://git.supported.systems/mcp/mcptesta
Documentation: https://mcptesta.l.supported.systems
2025-09-20 03:20:49 -06:00

255 lines
7.2 KiB
Markdown

# MCPTesta Configuration Templates
This directory contains comprehensive configuration templates for MCPTesta, demonstrating different complexity levels and use cases.
## Available Templates
### 📚 Basic Template (`basic_template.yaml`)
**Perfect for beginners and quick validation**
- Simple server configuration
- Basic connectivity and tool testing
- Console output with clear documentation
- Essential features only
**Use when:**
- Learning MCPTesta fundamentals
- Quick server validation
- Simple testing scenarios
### 📈 Intermediate Template (`intermediate_template.yaml`)
**Mid-level template with advanced features**
- Multiple test suites with dependencies
- Basic MCP protocol features (notifications, progress)
- HTML reporting and environment variables
- Error handling and retry policies
**Use when:**
- Need dependency management between tests
- Want to explore MCP protocol features
- Require organized test suites with setup/teardown
### 🚀 Advanced Template (`advanced_template.yaml`)
**Full-featured template with all MCP capabilities**
- Complete MCP protocol feature testing
- Multi-server coordination
- Performance testing and profiling
- Complex scenarios and error handling
**Use when:**
- Production-ready testing
- Need comprehensive MCP protocol coverage
- Testing complex multi-server scenarios
### 🎯 Expert Template (`expert_template.yaml`)
**Maximum complexity for expert users**
- Distributed system testing
- Chaos engineering patterns
- Advanced authentication schemes
- Enterprise-grade features
**Use when:**
- Expert-level protocol testing
- Distributed system validation
- Chaos engineering and resilience testing
- Protocol development and research
### ⚡ Stress Template (`stress_template.yaml`)
**Specialized performance and load testing**
- Various load patterns and stress scenarios
- Resource exhaustion testing
- Performance benchmarking
- Long-duration stability testing
**Use when:**
- Performance validation
- Load testing and capacity planning
- Identifying bottlenecks and limits
- Stability and endurance testing
### 🔗 Integration Template (`integration_template.yaml`)
**Multi-service and external system integration**
- End-to-end workflow testing
- Service mesh and discovery
- External system integration
- Transaction management
**Use when:**
- Testing multi-service architectures
- Validating service interactions
- External system integration
- Workflow orchestration testing
## Usage Examples
### Basic Usage
```bash
# Generate a basic template
mcptesta generate-config basic my_basic_config.yaml
# Generate with custom server command
mcptesta generate-config basic my_config.yaml --server-command "uvx my-server"
```
### Advanced Usage
```bash
# Generate advanced template with custom features
mcptesta generate-config advanced advanced_config.yaml \
--server-command "python -m my_server --production" \
--parallel-workers 8 \
--enable-features "notifications,progress,cancellation"
# Generate stress testing configuration
mcptesta generate-config stress stress_test.yaml \
--parallel-workers 16 \
--test-types "tool_call,resource_read"
```
### Running Generated Templates
```bash
# Run basic configuration
mcptesta yaml my_basic_config.yaml
# Run with custom settings
mcptesta yaml advanced_config.yaml --parallel 12 --output ./results
# Run specific test categories
mcptesta yaml stress_test.yaml --tag performance --tag load
```
## Template Features Comparison
| Feature | Basic | Intermediate | Advanced | Expert | Stress | Integration |
|---------|-------|--------------|----------|---------|---------|-------------|
| **Complexity** | Low | Medium | High | Very High | High | High |
| **Parallel Workers** | 2 | 4 | 6 | 12 | 16 | 8 |
| **Test Suites** | 3 | 7 | 12 | 15+ | 10 | 8 |
| **MCP Protocol Features** | Basic | Some | All | All+ | Some | All |
| **Multi-Server** | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Dependencies** | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ |
| **Performance Testing** | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
| **External Systems** | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
| **Chaos Engineering** | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
| **Documentation Level** | High | High | Medium | Low | Medium | Medium |
## Customization Guide
### 1. Server Configuration
Update server commands to match your FastMCP server:
```yaml
servers:
- name: "my_server"
command: "python -m my_fastmcp_server" # Update this
transport: "stdio"
timeout: 30
```
### 2. Test Parameters
Modify test parameters to match your server's API:
```yaml
- name: "my_tool_test"
test_type: "tool_call"
target: "echo" # Change to your tool name
parameters:
message: "test" # Update parameters
```
### 3. Expected Results
Define what you expect from your server:
```yaml
expected:
message: "test" # What your server should return
status: "success"
```
### 4. Environment Variables
Use variables for flexible configuration:
```yaml
variables:
SERVER_COMMAND: "python -m my_server"
TEST_MESSAGE: "Hello, World!"
TIMEOUT: "30"
```
## Best Practices
### 1. Start Simple
- Begin with the basic template
- Gradually move to more complex templates as you learn
### 2. Incremental Complexity
- Don't jump straight to expert level
- Add features progressively based on your needs
### 3. Test Organization
- Use meaningful test names and descriptions
- Group related tests in suites
- Use tags for easy filtering
### 4. Error Handling
- Include negative test cases
- Test error conditions explicitly
- Validate error messages and types
### 5. Performance Considerations
- Monitor resource usage during testing
- Use appropriate parallel worker counts
- Include performance baselines
## Template Development
### Creating Custom Templates
For specific use cases, you can create custom templates by:
1. Starting with the closest existing template
2. Modifying test cases for your scenario
3. Adjusting configuration parameters
4. Adding custom variables and documentation
### Contributing Templates
If you develop useful templates for specific scenarios:
1. Document the use case clearly
2. Include comprehensive examples
3. Test thoroughly with different servers
4. Consider contributing back to the project
## Troubleshooting
### Common Issues
1. **Server Connection Failures**
- Check server command and transport type
- Verify server starts correctly
- Check timeout settings
2. **Test Failures**
- Verify tool/resource names match your server
- Check parameter formats and types
- Review expected results
3. **Performance Issues**
- Reduce parallel worker count
- Increase timeout values
- Check system resources
4. **Template Errors**
- Validate YAML syntax
- Check variable references
- Verify dependencies exist
### Getting Help
- Use `mcptesta yaml config.yaml --dry-run` to validate configurations
- Use `mcptesta yaml config.yaml --list-tests` to see what will run
- Check the MCPTesta documentation for detailed guidance
- Review server logs for connection and execution issues
## Template Evolution
These templates evolve based on:
- MCPTesta feature additions
- Community feedback and contributions
- Best practices discovery
- Real-world usage patterns
Stay updated with the latest templates and contribute your own improvements!