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
55 lines
2.5 KiB
XML
55 lines
2.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<!-- Liquid Gradient -->
|
|
<linearGradient id="liquidGradient" x1="0%" y1="100%" x2="0%" y2="0%">
|
|
<stop offset="0%" stop-color="#0891B2"/>
|
|
<stop offset="60%" stop-color="#06B6D4"/>
|
|
<stop offset="100%" stop-color="#22D3EE"/>
|
|
</linearGradient>
|
|
|
|
<!-- Glass Material -->
|
|
<linearGradient id="glassGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
<stop offset="0%" stop-color="rgba(139,92,246,0.8)"/>
|
|
<stop offset="50%" stop-color="rgba(139,92,246,0.6)"/>
|
|
<stop offset="100%" stop-color="rgba(107,70,193,0.9)"/>
|
|
</linearGradient>
|
|
|
|
<!-- Metal Apparatus -->
|
|
<linearGradient id="metalGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
<stop offset="0%" stop-color="#CBD5E1"/>
|
|
<stop offset="100%" stop-color="#94A3B8"/>
|
|
</linearGradient>
|
|
|
|
<!-- Drop shadow for depth -->
|
|
<filter id="dropShadow">
|
|
<feDropShadow dx="1" dy="1" stdDeviation="1" flood-color="rgba(0,0,0,0.3)"/>
|
|
</filter>
|
|
</defs>
|
|
|
|
<!-- No background rectangle - transparent! -->
|
|
|
|
<!-- Lab Stand/Apparatus (more visible on transparent) -->
|
|
<rect x="20" y="35" width="60" height="3" fill="url(#metalGradient)" rx="1.5" filter="url(#dropShadow)"/>
|
|
<rect x="75" y="25" width="3" height="15" fill="url(#metalGradient)" rx="1.5" filter="url(#dropShadow)"/>
|
|
|
|
<!-- Main Beaker (Erlenmeyer Flask) with stronger colors -->
|
|
<path d="M35 75 L35 45 L40 35 L60 35 L65 45 L65 75 Z"
|
|
fill="url(#glassGradient)" stroke="rgba(255,255,255,0.8)" stroke-width="1" filter="url(#dropShadow)"/>
|
|
|
|
<!-- Liquid inside with enhanced visibility -->
|
|
<path d="M37 72 L37 50 L41 40 L59 40 L63 50 L63 72 Z"
|
|
fill="url(#liquidGradient)" filter="url(#dropShadow)"/>
|
|
|
|
<!-- Bubbles with better contrast -->
|
|
<circle cx="45" cy="55" r="3" fill="rgba(255,255,255,0.9)" filter="url(#dropShadow)"/>
|
|
<circle cx="55" cy="50" r="2" fill="rgba(255,255,255,0.7)" filter="url(#dropShadow)"/>
|
|
<circle cx="48" cy="42" r="1.5" fill="rgba(255,255,255,0.8)"/>
|
|
|
|
<!-- Mini Test Tubes with enhanced visibility -->
|
|
<rect x="15" y="70" width="4" height="12" fill="rgba(139,92,246,0.4)" rx="2" stroke="rgba(255,255,255,0.6)" stroke-width="0.5"/>
|
|
<rect x="16" y="75" width="2" height="6" fill="#10B981" rx="1"/>
|
|
|
|
<rect x="81" y="71" width="4" height="11" fill="rgba(139,92,246,0.4)" rx="2" stroke="rgba(255,255,255,0.6)" stroke-width="0.5"/>
|
|
<rect x="82" y="76" width="2" height="5" fill="#EF4444" rx="1"/>
|
|
</svg> |