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
210 lines
6.5 KiB
Bash
Executable File
210 lines
6.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# MCPTesta Logo Export Generation Script
|
|
# Generates comprehensive logo asset collection from master SVG files
|
|
|
|
set -e # Exit on any error
|
|
|
|
echo "🧪 MCPTesta Logo Export Generation"
|
|
echo "=================================="
|
|
|
|
# Color definitions for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
PURPLE='\033[0;35m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Check dependencies
|
|
command -v magick >/dev/null 2>&1 || {
|
|
echo -e "${RED}Error: ImageMagick is required but not installed.${NC}" >&2
|
|
echo "Install with: brew install imagemagick (macOS) or apt-get install imagemagick (Ubuntu)"
|
|
exit 1
|
|
}
|
|
|
|
command -v xmllint >/dev/null 2>&1 || {
|
|
echo -e "${YELLOW}Warning: xmllint not found. SVG validation will be skipped.${NC}" >&2
|
|
}
|
|
|
|
# Project directories
|
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
LOGO_DIR="$PROJECT_ROOT/assets/logo"
|
|
SOURCE_DIR="$LOGO_DIR/source"
|
|
|
|
cd "$PROJECT_ROOT"
|
|
|
|
# Verify master SVG exists
|
|
MASTER_SVG="$SOURCE_DIR/mcptesta-logo-master.svg"
|
|
if [ ! -f "$MASTER_SVG" ]; then
|
|
echo -e "${RED}Error: Master SVG not found at $MASTER_SVG${NC}"
|
|
echo "Please create the master SVG file first using the specifications in:"
|
|
echo " - logo-design-specs.md"
|
|
echo " - logo-export-specifications.md"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}✓ Master SVG found${NC}"
|
|
|
|
# Validate SVG if xmllint is available
|
|
if command -v xmllint >/dev/null 2>&1; then
|
|
if xmllint --noout "$MASTER_SVG" 2>/dev/null; then
|
|
echo -e "${GREEN}✓ Master SVG is valid${NC}"
|
|
else
|
|
echo -e "${RED}Error: Master SVG is not valid XML${NC}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${BLUE}📱 Generating Favicon Package...${NC}"
|
|
|
|
# Generate favicon sizes
|
|
cd "$LOGO_DIR/favicons"
|
|
magick "$MASTER_SVG" -resize 16x16 -strip favicon-16x16.png
|
|
magick "$MASTER_SVG" -resize 32x32 -strip favicon-32x32.png
|
|
magick "$MASTER_SVG" -resize 48x48 -strip favicon-48x48.png
|
|
|
|
# Create multi-resolution ICO
|
|
magick favicon-16x16.png favicon-32x32.png favicon-48x48.png favicon.ico
|
|
|
|
# Copy SVG favicon for modern browsers
|
|
cp "$MASTER_SVG" favicon.svg
|
|
|
|
# Apple touch icon
|
|
magick "$MASTER_SVG" -resize 180x180 -strip apple-touch-icon.png
|
|
|
|
# Android chrome icon
|
|
magick "$MASTER_SVG" -resize 192x192 -strip android-chrome-192x192.png
|
|
|
|
echo -e "${GREEN}✓ Favicon package complete${NC}"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}📱 Generating iOS App Icons...${NC}"
|
|
|
|
# iOS App Store sizes
|
|
cd "$LOGO_DIR/app-icons/ios"
|
|
declare -a ios_sizes=("57" "114" "120" "180" "1024")
|
|
|
|
for size in "${ios_sizes[@]}"; do
|
|
magick "$MASTER_SVG" -resize ${size}x${size} -strip icon-${size}x${size}.png
|
|
echo " Generated iOS ${size}x${size}"
|
|
done
|
|
|
|
echo -e "${GREEN}✓ iOS icons complete${NC}"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}🤖 Generating Android App Icons...${NC}"
|
|
|
|
# Android Play Store sizes
|
|
cd "$LOGO_DIR/app-icons/android"
|
|
declare -a android_sizes=("72" "96" "144" "192" "512")
|
|
|
|
for size in "${android_sizes[@]}"; do
|
|
magick "$MASTER_SVG" -resize ${size}x${size} -strip icon-${size}x${size}.png
|
|
echo " Generated Android ${size}x${size}"
|
|
done
|
|
|
|
echo -e "${GREEN}✓ Android icons complete${NC}"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}🌐 Generating Web Assets...${NC}"
|
|
|
|
# Web-optimized sizes
|
|
cd "$LOGO_DIR/web"
|
|
declare -a web_sizes=("64" "128" "256" "512")
|
|
|
|
for size in "${web_sizes[@]}"; do
|
|
magick "$MASTER_SVG" -resize ${size}x${size} -strip mcptesta-logo-${size}px.png
|
|
echo " Generated web ${size}px"
|
|
done
|
|
|
|
# Copy optimized SVG for web
|
|
cp "$MASTER_SVG" mcptesta-logo.svg
|
|
|
|
echo -e "${GREEN}✓ Web assets complete${NC}"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}📱 Generating Social Media Assets...${NC}"
|
|
|
|
cd "$LOGO_DIR/social"
|
|
|
|
# Profile picture (square)
|
|
magick "$MASTER_SVG" -resize 400x400 -strip profile-400x400.png
|
|
|
|
# Social media card (with background and text)
|
|
magick -size 1200x630 xc:"#6B46C1" \
|
|
\( "$MASTER_SVG" -resize 300x300 \) \
|
|
-gravity west -geometry +150+0 -composite \
|
|
-font Arial-Bold -pointsize 64 -fill white \
|
|
-gravity center -annotate +200+0 "MCPTesta" \
|
|
-font Arial -pointsize 32 -fill "#E2E8F0" \
|
|
-gravity center -annotate +200+80 "Community-driven testing excellence" \
|
|
card-1200x630.png
|
|
|
|
# GitHub social preview
|
|
magick -size 1280x640 xc:"#0D1117" \
|
|
\( "$MASTER_SVG" -resize 240x240 \) \
|
|
-gravity west -geometry +120+0 -composite \
|
|
-font Arial-Bold -pointsize 54 -fill white \
|
|
-gravity center -annotate +250+0 "MCPTesta" \
|
|
-font Arial -pointsize 28 -fill "#8B949E" \
|
|
-gravity center -annotate +250+60 "FastMCP Testing Framework" \
|
|
github-social-1280x640.png
|
|
|
|
# Twitter header
|
|
magick -size 1500x500 gradient:"#6B46C1-#8B5CF6" \
|
|
\( "$MASTER_SVG" -resize 200x200 \) \
|
|
-gravity west -geometry +100+0 -composite \
|
|
-font Arial-Bold -pointsize 48 -fill white \
|
|
-gravity center -annotate +200+0 "MCPTesta" \
|
|
-font Arial -pointsize 24 -fill "#E2E8F0" \
|
|
-gravity center -annotate +200+50 "Community-driven testing excellence for MCP" \
|
|
header-1500x500.png
|
|
|
|
echo -e "${GREEN}✓ Social media assets complete${NC}"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}🎨 Generating Theme Variants...${NC}"
|
|
|
|
# Note: Theme variants would require separate SVG files with different colors
|
|
# This is a placeholder for manual theme variant creation
|
|
cd "$LOGO_DIR/theme-variants"
|
|
|
|
echo " Dark theme variants: Pending manual creation"
|
|
echo " Light theme variants: Pending manual creation"
|
|
echo " High contrast variants: Pending manual creation"
|
|
|
|
echo -e "${YELLOW}⚠ Theme variants require manual SVG creation with adjusted colors${NC}"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}📊 Generating Asset Summary...${NC}"
|
|
|
|
# Count generated files
|
|
total_files=0
|
|
for dir in favicons app-icons/ios app-icons/android web social; do
|
|
count=$(find "$LOGO_DIR/$dir" -name "*.png" -o -name "*.ico" -o -name "*.svg" | wc -l)
|
|
total_files=$((total_files + count))
|
|
echo " $dir: $count files"
|
|
done
|
|
|
|
echo ""
|
|
echo -e "${GREEN}🎉 Logo Export Generation Complete!${NC}"
|
|
echo -e "${PURPLE}Generated $total_files asset files${NC}"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}📋 Next Steps:${NC}"
|
|
echo "1. Review generated assets in assets/logo/"
|
|
echo "2. Create theme variant SVG files manually"
|
|
echo "3. Run quality assurance: ./scripts/qa-logo-check.sh"
|
|
echo "4. Integrate into documentation and project files"
|
|
|
|
echo ""
|
|
echo -e "${BLUE}🔧 Manual Tasks Remaining:${NC}"
|
|
echo "• Create horizontal layout SVG (logo + text)"
|
|
echo "• Design dark theme color variants"
|
|
echo "• Design light theme color variants"
|
|
echo "• Create high-contrast accessibility versions"
|
|
echo "• Generate print-ready CMYK files"
|
|
|
|
echo ""
|
|
echo -e "${GREEN}Asset generation script completed successfully!${NC} 🧪" |