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
132 lines
3.7 KiB
YAML
132 lines
3.7 KiB
YAML
# MCPTesta Basic Configuration Template
|
|
#
|
|
# This template provides a simple starting point for testing FastMCP servers.
|
|
# Perfect for beginners or quick validation testing.
|
|
#
|
|
# Features demonstrated:
|
|
# - Single server testing
|
|
# - Basic tool and resource testing
|
|
# - Simple parallel execution
|
|
# - Console output
|
|
|
|
# Global configuration
|
|
config:
|
|
# Number of parallel test workers (1-8 recommended for basic testing)
|
|
parallel_workers: 2
|
|
|
|
# Output format: console, html, json, junit
|
|
output_format: "console"
|
|
|
|
# Global timeout for all operations (seconds)
|
|
global_timeout: 120
|
|
|
|
# Maximum concurrent operations per worker
|
|
max_concurrent_operations: 5
|
|
|
|
# Server configuration
|
|
servers:
|
|
- name: "my_server"
|
|
# Command to start your FastMCP server
|
|
# Examples:
|
|
# "python -m my_fastmcp_server"
|
|
# "uvx my-mcp-server"
|
|
# "node server.js"
|
|
command: "python -m my_fastmcp_server"
|
|
|
|
# Transport protocol: stdio (most common), sse, ws
|
|
transport: "stdio"
|
|
|
|
# Connection timeout in seconds
|
|
timeout: 30
|
|
|
|
# Enable this server for testing
|
|
enabled: true
|
|
|
|
# Test suites - organized groups of related tests
|
|
test_suites:
|
|
- name: "Basic Connectivity"
|
|
description: "Verify server is responding and accessible"
|
|
enabled: true
|
|
tags: ["connectivity", "basic"]
|
|
parallel: true
|
|
timeout: 60
|
|
|
|
tests:
|
|
- name: "ping_test"
|
|
description: "Basic connectivity check"
|
|
test_type: "ping"
|
|
target: ""
|
|
timeout: 10
|
|
tags: ["ping"]
|
|
|
|
- name: "capabilities_discovery"
|
|
description: "Discover server capabilities"
|
|
test_type: "tool_call"
|
|
target: "list_tools" # Replace with your server's capability discovery method
|
|
timeout: 15
|
|
tags: ["discovery"]
|
|
|
|
- name: "Tool Testing"
|
|
description: "Test available tools with various parameters"
|
|
enabled: true
|
|
tags: ["tools"]
|
|
parallel: true
|
|
timeout: 90
|
|
|
|
tests:
|
|
- name: "simple_tool_test"
|
|
description: "Test a simple tool call"
|
|
test_type: "tool_call"
|
|
target: "echo" # Replace with an actual tool from your server
|
|
parameters:
|
|
message: "Hello from MCPTesta!"
|
|
expected:
|
|
# Define what you expect in the response
|
|
message: "Hello from MCPTesta!"
|
|
timeout: 15
|
|
tags: ["echo", "simple"]
|
|
|
|
# Add more tool tests here
|
|
# - name: "another_tool_test"
|
|
# description: "Test another tool"
|
|
# test_type: "tool_call"
|
|
# target: "my_other_tool"
|
|
# parameters:
|
|
# param1: "value1"
|
|
# timeout: 20
|
|
|
|
- name: "Resource Testing"
|
|
description: "Test resource reading capabilities"
|
|
enabled: true
|
|
tags: ["resources"]
|
|
parallel: true
|
|
timeout: 60
|
|
|
|
tests:
|
|
- name: "read_basic_resource"
|
|
description: "Read a basic resource"
|
|
test_type: "resource_read"
|
|
target: "file://README.md" # Replace with actual resource URI
|
|
timeout: 15
|
|
tags: ["file"]
|
|
|
|
# Add more resource tests here
|
|
# - name: "read_config_resource"
|
|
# test_type: "resource_read"
|
|
# target: "config://settings.json"
|
|
|
|
# Variables for easy customization
|
|
variables:
|
|
SERVER_NAME: "my_server"
|
|
TEST_MESSAGE: "Hello from MCPTesta!"
|
|
DEFAULT_TIMEOUT: "30"
|
|
|
|
# Quick Start Instructions:
|
|
# 1. Replace "python -m my_fastmcp_server" with your actual server command
|
|
# 2. Update tool names (like "echo") with tools your server provides
|
|
# 3. Modify resource URIs to match your server's resources
|
|
# 4. Run with: mcptesta yaml this_config.yaml
|
|
#
|
|
# For more advanced features, generate an "intermediate" or "advanced" template:
|
|
# mcptesta generate-config intermediate my_advanced_config.yaml
|