Skip to main content
🔧 Having trouble? Don’t worry! This comprehensive guide will help you diagnose and fix common issues quickly. We’ve got your back!

Quick diagnostics

Before diving into specific issues, let’s run a quick health check:

System Check

Comprehensive system diagnosis

Validate Config

Verify configuration and API keys

Test Connection

Check server connectivity

Common error messages and solutions

🔑 Authentication errors

Symptoms:
Solutions:
  1. Check environment variables:
  2. Use secrets file:
  3. Validate configuration:
Pro tip: Never commit API keys to version control! Use .gitignore for secrets files.
Symptoms:
Solutions:
  1. Reduce concurrency:
  2. Add retry logic:
  3. Use different models for testing vs judging:

🔌 Server connection issues

Symptoms:
Solutions:
  1. Verify server configuration:
  2. Test server manually:
  3. Debug with verbose output:
  4. Common fixes:
    • Install server dependencies: pip install -r requirements.txt
    • Use absolute paths: /full/path/to/server.py
    • Check file permissions: chmod +x server.py
    • Verify Python version compatibility
Symptoms:
Solutions:
  1. Check server is listed in agent:
  2. Verify tool discovery:
  3. Check MCP protocol implementation:
    • Server must implement tools/list method
    • Tools must have proper schemas
    • Server must be running when agent connects
  4. Enable debug logging:

⏱️ Timeout and performance issues

Symptoms:
Solutions:
  1. Increase timeout globally:
  2. Set per-test timeout:
  3. Optimize test prompts:
  4. Add performance assertions:
  5. Profile slow tests:
Symptoms:
Solutions:
  1. Use cheaper models for testing:
  2. Limit response length:
  3. Cache responses during development:
  4. Monitor token usage:

🧪 Test execution problems

Symptoms:
Solutions:
  1. Check case sensitivity:
  2. Use regex for flexible matching:
  3. Debug actual output:
  4. Use partial matching for tools:
Symptoms:
Solutions:
  1. Set deterministic model parameters:
  2. Use objective assertions:
  3. Add retry logic for network calls:
  4. Isolate test environment:

Debug mode walkthrough

When tests fail mysteriously, enable debug mode for detailed insights:

Step 1: Enable debug output

Step 2: Examine the debug output

Look for these key sections:

Step 3: Inspect OTEL traces

Key things to look for in traces:
  • Tool call sequences
  • Error spans
  • Timing information
  • Token usage per call

Network and connectivity debugging

Testing behind a proxy

Debugging SSL/TLS issues

Testing with local servers

Performance troubleshooting

Identifying bottlenecks

Key metrics to watch:
  • llm_time_ms: Time spent in LLM calls
  • tool_time_ms: Time in tool execution
  • idle_time_ms: Wasted time between operations
  • max_concurrent_operations: Parallelism level

Optimization strategies

Reduce LLM calls

Parallel execution

Cache results

Optimize prompts

Platform-specific issues

macOS

Windows

Linux/Docker

Getting help

Self-service debugging

  1. Run diagnostics:
  2. Check logs:
  3. Validate everything:

Prepare an issue report

If you’re still stuck, let’s gather information for a bug report:

Community support

Quick reference: Error codes


Still stuck? Don’t hesitate to reach out! We’re here to help you succeed with mcp-eval. Remember, every great developer has faced these issues - you’re in good company! 🚀