This MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.
-
echo- Simple tool to echo back input messages
- Input:
message(string): Message to echo back
- Returns: Text content with echoed message
-
add- Adds two numbers together
- Inputs:
a(number): First numberb(number): Second number
- Returns: Text result of the addition
-
longRunningOperation- Demonstrates progress notifications for long operations
- Inputs:
duration(number, default: 10): Duration in secondssteps(number, default: 5): Number of progress steps
- Returns: Completion message with duration and steps
- Sends progress notifications during execution
-
printEnv- Prints all environment variables
- Useful for debugging MCP server configuration
- No inputs required
- Returns: JSON string of all environment variables
-
sampleLLM- Demonstrates LLM sampling capability using MCP sampling feature
- Inputs:
prompt(string): The prompt to send to the LLMmaxTokens(number, default: 100): Maximum tokens to generate
- Returns: Generated LLM response
-
getTinyImage- Returns a small test image
- No inputs required
- Returns: Base64 encoded PNG image data
-
annotatedMessage- Demonstrates how annotations can be used to provide metadata about content
- Inputs:
messageType(enum: "error" | "success" | "debug"): Type of message to demonstrate different annotation patternsincludeImage(boolean, default: false): Whether to include an example image
- Returns: Content with varying annotations:
- Error messages: High priority (1.0), visible to both user and assistant
- Success messages: Medium priority (0.7), user-focused
- Debug messages: Low priority (0.3), assistant-focused
- Optional image: Medium priority (0.5), user-focused
- Example annotations:
{ "priority": 1.0, "audience": ["user", "assistant"] }
-
getResourceReference- Returns a resource reference that can be used by MCP clients
- Inputs:
resourceId(number, 1-100): ID of the resource to reference
- Returns: A resource reference with:
- Text introduction
- Embedded resource with
type: "resource" - Text instruction for using the resource URI
-
startElicitation- Initiates an elicitation (interaction) within the MCP client.
- Inputs:
color(string): Favorite colornumber(number, 1-100): Favorite numberpets(enum): Favorite pet
- Returns: Confirmation of the elicitation demo with selection summary.
-
structuredContent
- Demonstrates a tool returning structured content using the example in the specification
- Provides an output schema to allow testing of client SHOULD advisory to validate the result using the schema
- Inputs:
location(string): A location or ZIP code, mock data is returned regardless of value
- Returns: a response with
structuredContentfield conformant to the output schema- A backward compatible Text Content field, a SHOULD advisory in the specification
The server provides 100 test resources in two formats:
-
Even numbered resources:
- Plaintext format
- URI pattern:
test://static/resource/{even_number} - Content: Simple text description
-
Odd numbered resources:
- Binary blob format
- URI pattern:
test://static/resource/{odd_number} - Content: Base64 encoded binary data
Resource features:
- Supports pagination (10 items per page)
- Allows subscribing to resource updates
- Demonstrates resource templates
- Auto-updates subscribed resources every 5 seconds
-
simple_prompt- Basic prompt without arguments
- Returns: Single message exchange
-
complex_prompt- Advanced prompt demonstrating argument handling
- Required arguments:
temperature(number): Temperature setting
- Optional arguments:
style(string): Output style preference
- Returns: Multi-turn conversation with images
-
resource_prompt- Demonstrates embedding resource references in prompts
- Required arguments:
resourceId(number): ID of the resource to embed (1-100)
- Returns: Multi-turn conversation with an embedded resource reference
- Shows how to include resources directly in prompt messages
The server sends random-leveled log messages every 15 seconds, e.g.:
{
"method": "notifications/message",
"params": {
"level": "info",
"data": "Info-level message"
}
}Usage with Claude Desktop (uses stdio Transport)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"everything": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-everything"
]
}
}
}For quick installation, use of of the one-click install buttons below...
For manual installation, you can configure the MCP server using one of these methods:
Method 1: User Configuration (Recommended)
Add the configuration to your user-level MCP configuration file. Open the Command Palette (Ctrl + Shift + P) and run MCP: Open User Configuration. This will open your user mcp.json file where you can add the server configuration.
Method 2: Workspace Configuration
Alternatively, you can add the configuration to a file called .vscode/mcp.json in your workspace. This will allow you to share the configuration with others.
For more details about MCP configuration in VS Code, see the official VS Code MCP documentation.
{
"servers": {
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}Running from source with HTTP+SSE Transport (deprecated as of 2025-03-26)
cd src/everything
npm install
npm run start:sseRun from source with Streamable HTTP Transport
cd src/everything
npm install
npm run start:streamableHttpnpm install -g @modelcontextprotocol/server-everything@latestnpx @modelcontextprotocol/server-everythingnpx @modelcontextprotocol/server-everything stdionpx @modelcontextprotocol/server-everything ssenpx @modelcontextprotocol/server-everything streamableHttp