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
96 lines
2.6 KiB
YAML
96 lines
2.6 KiB
YAML
# Production override for MCPTesta Docker Compose
|
|
# Use with: docker compose -f docker-compose.yml -f docker-compose.prod.yml up
|
|
|
|
services:
|
|
docs:
|
|
build:
|
|
target: production
|
|
args:
|
|
NODE_ENV: production
|
|
environment:
|
|
NODE_ENV: production
|
|
# Remove development volume mounts
|
|
volumes: []
|
|
|
|
# Production resource limits
|
|
deploy:
|
|
replicas: 2
|
|
update_config:
|
|
parallelism: 1
|
|
failure_action: rollback
|
|
delay: 10s
|
|
order: start-first
|
|
restart_policy:
|
|
condition: on-failure
|
|
delay: 5s
|
|
max_attempts: 3
|
|
resources:
|
|
limits:
|
|
cpus: '1.0'
|
|
memory: 256m
|
|
reservations:
|
|
cpus: '0.25'
|
|
memory: 128m
|
|
|
|
# Enhanced security for production
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
- apparmor:docker-default
|
|
|
|
# Read-only filesystem for production
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp:noexec,nosuid,size=50m
|
|
- /var/cache/nginx:noexec,nosuid,size=10m
|
|
- /var/log/nginx:noexec,nosuid,size=10m
|
|
|
|
# Production labels
|
|
labels:
|
|
caddy: ${DOCS_DOMAIN:-mcptesta.l.supported.systems}
|
|
caddy.reverse_proxy: "{{upstreams 4321}}"
|
|
caddy.encode: "gzip zstd"
|
|
caddy.header.Cache-Control: "public, max-age=31536000, immutable"
|
|
caddy.header.Strict-Transport-Security: "max-age=31536000; includeSubDomains; preload"
|
|
caddy.header.X-Frame-Options: "SAMEORIGIN"
|
|
caddy.header.X-Content-Type-Options: "nosniff"
|
|
caddy.header.X-XSS-Protection: "1; mode=block"
|
|
caddy.header.Referrer-Policy: "strict-origin-when-cross-origin"
|
|
# Rate limiting for production
|
|
caddy.rate_limit: "zone docs_zone key {remote_host} events 1000 window 1h"
|
|
|
|
# Production monitoring service
|
|
docs-monitor:
|
|
image: prom/node-exporter:latest
|
|
command:
|
|
- '--path.rootfs=/host'
|
|
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
|
volumes:
|
|
- '/:/host:ro,rslave'
|
|
networks:
|
|
- monitoring
|
|
restart: unless-stopped
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.1'
|
|
memory: 64m
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
read_only: true
|
|
|
|
# Log aggregation for production
|
|
docs-logs:
|
|
image: fluent/fluent-bit:latest
|
|
volumes:
|
|
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
- ./config/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf:ro
|
|
networks:
|
|
- monitoring
|
|
restart: unless-stopped
|
|
profiles:
|
|
- logging
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.1'
|
|
memory: 128m |