Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@msfeldstein/mcp-test-servers) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
MCP Test Servers
A collection of test servers implementing the Model Context Protocol (MCP).
🚀 Quick Install Gallery
Visit our GitHub Pages Gallery for one-click install buttons that work directly with Cursor!
Manual Installation
npx -y @msfeldstein/mcp-test-servers <server>Available Servers
all-types: Demonstrates various tool parameter types supported by MCPbad-param: Server with an intentionally malformed parameter namebig-response: Server that returns large responsesbroken-tool: Server with intentionally broken toolbroken-schema: Server with invalid JSON schema using oneOf/allOf/anyOf at top levelbroken-schema-fastmcp: FastMCP server with genuinely broken schemas using oneOf/allOf/anyOf at top levelcrash-on-startup: Server that crashes on startupcombined: Server with tools and resourcesduplicate-names: Server with duplicate names for resourceselicitation: Server demonstrating MCP elicitation feature - requests user information (name, age, contact details, preferences) through structured formsenum-param: Tool has enum string parameterenv-check: Checks for SHOULD_RUN environment variable being passed properlyenv-echo: Echoes the environment variablesgpt5-breaker: Server with SQL query execution tool using complex parameter validationheaders: FastMCP server that safely returns HTTP header informationinstructions: Server with instructions and a makeRequest tool that returns success for value 42image: Tool returns an image of sonic the hedgehoglong-description: Publicize a very long description configured via env varlong-running: Server that sends progress notifications every 2 seconds for a 20-second taskmany-resources: Server with multiple resourcesmany-tools: Server with 100 tools that each return 'ack'math: Server with basic math function tools (add, subtract, multiply, divide, power, sqrt, factorial)missing-type: Server with tools missing the required 'type' field in parameter schemasmissing-type-fastmcp: FastMCP server with genuinely missing 'type' fields in tool schemasnamed: Server with configurable name via MCP_SERVER_NAME environment variablenotion-gemini-repro: Server with complex nested schema that breaks on some models (Notion API reproduction case) - inline schemanotion-gemini-repro-raw: Server with complex nested schema that breaks on some models (Notion API reproduction case) - exact raw schema objectnumber-param: Tool with a number parameteroauth-repro: Reproduces OAuth 2.0 flow issues with proper discovery endpoints - runs resource server on port 3001 and auth server on port 3002oauth-debug: OAuth debugging server with comprehensive logging and endpoint tracking - runs resource server on port 3003 and auth server on port 3004oauth-callback-test: OAuth callback testing server that simulates Cursor 1.4.x endpoint discovery bugs - runs on port 3005oauth-edge-case: OAuth server with configurable edge cases to trigger discovery bugs - resource server on port 3006, auth server on port 3007oauth-bug-trigger: Specialized server designed to reproduce the exact Cursor 1.4.x OAuth discovery bug - resource server on port 3008, auth server on port 3009optional-param: Tool has an optional parampattern-param: Tool has a parameter with a pattern matchping: A simple server that responds with 'pong'prompts: Server with two prompts - one static greeting and one dynamic story generator with character name and location parametersraw-broken: Raw JSON-RPC MCP server with genuinely broken schemas (no framework validation)resource: Resource server implementationresource-lister: Server that publishes 5 resources and has a tool to list themroots-echo: Server that demonstrates MCP roots functionality by echoing back the roots provided by the clientsession-inactivity: Streamable HTTP server that expires sessions after 30 seconds of inactivity to test session managementsession-management: HTTP server that implements MCP session management behavior - assigns session IDs, requires them in requests, returns 404 for terminated sessionssse-timeout: Streamable HTTP server that establishes SSE connections but times out after 30 seconds to test client reconnectionstderr: Server that logs to stderrstructured-output: Demonstrates structuredContent responses with a simple echo tooldual-content: Demonstrates different outputs for structuredContent and content in the same responseeverything: Comprehensive server testing all MCP features - tools with/without params, resources, prompts, elicitation, dynamic tools, roots echo, env vars
🚀 Quick Start: Automated Testing
For instant comprehensive testing, use the built-in AI agent testing prompt:
- Start the everything server:
npx @msfeldstein/mcp-test-servers everything - In Cursor, use the slash command:
/test-everything - The AI will automatically execute all 20 test steps and provide a complete validation report
Test Plan for Everything Server
The everything server is designed to comprehensively test all MCP features. Here's how to test each feature:
Tools Testing
0. Setup
{
"mcpServers": {
"everything": {
"command": "npx @msfeldstein/mcp-test-servers everything",
"env": {
"MY_ENV_VAR": "My Special Token"
}
}
}
}1. Tool with Parameters
Tool: echo_with_params
Test: Call with various parameter combinations:
- message: "Hello World", repeat_count: 3, uppercase: true
- message: "Test", repeat_count: 1, uppercase: false
- message: "MCP" (using defaults)
Expected: Should echo the message with specified repetitions and case transformation.
2. Tool without Parameters
Tool: simple_ping
Test: Call without any parameters
Expected: Should return "pong"
3. Tool Returning Mixed Content
Tool: get_mixed_resources
Test: Call the tool
Expected: Should return both text content and a small test image in the same response
4. Elicitation Testing
Tool: test_all_elicitations
Test: Call the tool and respond to all prompts:
- String input (name)
- Boolean input (programming preference)
- Number input (years of experience, 0-50)
- Enum input (programming language selection) Expected: Should collect all inputs and display a summary
5. Dynamic Tool Management
Tool: toggle_dynamic_tool
Test:
- Call
toggle_dynamic_toolto enable the dynamic tool - Verify
dynamic_featuretool becomes available - Call
dynamic_featurewith optional action parameter - Call
toggle_dynamic_toolagain to disable - Verify
dynamic_featuretool is no longer available Expected: Tool availability should change dynamically
6. MCP Roots Echo
Tool: echo_mcp_roots
Test: Call the tool
Expected: Should return JSON representation of MCP roots provided by the client
7. Environment Variable Echo
Tool: echo_env_var
Test: prompt: "Call the echo_env_var MCP tool"
Expected: Should return "MY_ENV_VAR = My Special Token"
8. Long-Running Progress Tool
Tool: long_running_progress
Test: Call with optional task_name parameter
Expected: Should run for 20 seconds with progress updates every 2 seconds, showing:
- Progress from 0 to 10 (total steps)
- Descriptive messages for each step
- Final completion message
- Client should receive progress notifications
Resources Testing
9. Text Resource
Resource: everything://docs.txt
Test: Request the resource
Expected: Should return comprehensive documentation about the server
10. Image Resource
Resource: everything://test-image.png
Test: Request the resource
Expected: Should return a small test image in PNG format
Prompts Testing
11. Prompt without Parameters
Prompt: simple-greeting
Test: Type /sim and /simple-greeting should be suggested. Submit it.
Expected: Should return a friendly greeting message about the Everything Server
12. Prompt with Parameters
Prompt: personalized-message
Test: submit /personalized-message:
- name: "Alice"
- topic: "AI Development" Expected: Should return a personalized message mentioning Alice and AI Development
13. AI Agent Testing Prompt
Prompt: test-everything
Test: Use this prompt in Cursor with a slash command: /test-everything
Expected: Should return comprehensive step-by-step testing instructions for an AI agent to systematically test all MCP features
Usage: Perfect for automated testing - the AI will execute all 20 testing steps automatically and provide a complete validation report
Complete Test Sequence
- Setup: Set
MY_ENV_VAR="My Special Token"in environment - Basic Tools: Test
simple_pingand `echo_with_params`` - Mixed Content: Test
get_mixed_resources - Elicitation: Run through
test_all_elicitationscompletely - Dynamic Tools: Toggle dynamic tool on/off and test availability
- System Info: Test
echo_mcp_rootsandecho_env_var - Long-Running: Test
long_running_progresswith progress notifications - Resources: Fetch both text and image resources
- Prompts: Test both parameterized and non-parameterized prompts
This comprehensive test ensures all MCP protocol features are working correctly.