Search

PythonReactSEOPDF
GitHub Skill

mcp-testing

MCP testing guidance and patterns. Loaded by /ops/test/mcp command or subagents for comprehensive Navigator MCP server testing.

outfitter-dev☆ 0 Repository stars0 Repository forks

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

View source ↗Guides

Skill instructions

Navigator MCP Testing

Automated tests for Navigator MCP server via JSON-RPC protocol.

Quick Start

# Start server
bun run dev

# Run tests
./.claude/scripts/run-mcp-tests.sh schema-validation
./.claude/scripts/run-mcp-tests.sh --all

Structure

.claude/
├── commands/ops/test/mcp.md         # Command definition
├── scripts/run-mcp-tests.sh         # Test runner (all logic here)
├── scripts/lib/test-runner-lib.sh   # Shared test library
└── skills/mcp-testing/SKILL.md      # This file

Test Categories

Category Tests What It Validates
schema-validation 7 Zod schema validation, missing/invalid params
action-routing 7 Action dispatch for all action types
error-responses 4 Error codes and structured error handling
response-formatting 4 MCP content structure (text/image types)

Output

.scratch/testing/
├── 20260116-abc12-mcp-schema-validation.md        # Results table
├── 20260116-abc12-mcp-schema-validation-debug.log # Debug output
└── ...

Adding Tests

Edit .claude/scripts/run-mcp-tests.sh:

# Add a test to existing category
run_mcp_test 8 "New test name" '{"action":"snap"}' "expected_pattern" "false"  # false = expect success

# Add new category
run_new_category() {
  setup_category "new-category"
  log "Running new-category tests..."

  # Setup: navigate to test page
  mcp_call '{"action":"navigate","url":"https://example.com"}' >/dev/null 2>&1

  run_mcp_test 1 "Test name" '{"action":"..."}' "pattern" "false"
  # ... more tests

  finalize_category
}

Then add to main():

new-category) test_new_category || exit_code=1 ;;

Key Differences from CLI Tests

Aspect CLI MCP
Protocol HTTP to server JSON-RPC over stdio
Input Shell arguments JSON objects
Output JSON stdout MCP content array
Error detection Exit code + stderr isError flag

Exit Codes

  • 0 - All passed
  • 1 - Failures
  • 2 - Setup error (server not running, jq missing)

Examples

Read the usage examples in the source repository.

View source ↗

Source history

Indexed on
2026-01-20
Index updated
2026-01-26
Branch
main

Index and sync dates describe this directory. View the source repository for code history.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!