everything
by: modelcontextprotocol
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.
📌Overview
Purpose: The Everything MCP Server serves as a testing platform for developers creating MCP clients, showcasing the full capabilities of the MCP protocol.
Overview: This server is specifically designed to demonstrate various features of the MCP protocol rather than serve practical applications. It includes a range of tools, resources, and prompt capabilities to facilitate the understanding and usage of MCP.
Key Features:
-
Tools: A variety of tools such as
echo
for message reflection,add
for basic arithmetic, andlongRunningOperation
for simulating progress notifications are available, enabling users to explore different functionalities of MCP. -
Resource Management: The server offers 100 test resources in plaintext and binary formats, supports pagination, allows subscription to updates, and auto-refreshes resources, helping users to manage and test resource functionalities effectively.
-
Prompt Handling: Supports both simple and complex prompts, with the latter allowing for advanced features like temperature settings and output styles, thus enabling more dynamic interaction scenarios.
Everything MCP Server
This MCP server exercises all features of the MCP protocol. It is designed as a test server for MCP client developers, showcasing prompts, tools, resources, sampling, and more.
Components
Tools
-
echo
Echoes back input messages.- Input:
message
(string): Message to echo
- Returns: Echoed text message
- Input:
-
add
Adds two numbers.- Inputs:
a
(number): First numberb
(number): Second number
- Returns: Result of addition as text
- Inputs:
-
longRunningOperation
Demonstrates progress notifications during long tasks.- Inputs:
duration
(number, default 10): Duration in secondssteps
(number, default 5): Number of progress steps
- Returns: Completion message
- Sends progress notifications during execution
- Inputs:
-
sampleLLM
Demonstrates LLM sampling via MCP.- Inputs:
prompt
(string): Prompt for LLMmaxTokens
(number, default 100): Max tokens to generate
- Returns: Generated LLM response
- Inputs:
-
getTinyImage
Returns a small test image as base64 encoded PNG data. -
printEnv
Prints all environment variables for debugging MCP server configuration.- Returns: JSON string of environment variables
-
annotatedMessage
Demonstrates content annotations with metadata.- Inputs:
messageType
(enum: "error", "success", "debug"): Message typeincludeImage
(boolean, default false): Include example image
- Returns: Content with annotations based on message type and optional image
- Example annotation for error message:
{ "priority": 1.0, "audience": ["user", "assistant"] }
- Inputs:
-
getResourceReference
Returns a resource reference for MCP clients.- Input:
resourceId
(number, 1-100): Resource ID
- Returns: Resource reference including text introduction, embedded resource, and usage instructions
- Input:
Resources
The server provides 100 test resources:
-
Even numbered resources:
- Plaintext format
- URI:
test://static/resource/{even_number}
- Content: Simple text descriptions
-
Odd numbered resources:
- Binary blob format
- URI:
test://static/resource/{odd_number}
- Content: Base64 encoded binary data
Features:
- Pagination (10 items per page)
- Subscription to resource updates
- Resource templates
- Auto-updates subscribed resources every 5 seconds
Prompts
-
simple_prompt
Basic prompt without arguments.- Returns: Single message exchange
-
complex_prompt
Advanced prompt demonstrating argument handling.- Required arguments:
temperature
(number)
- Optional arguments:
style
(string)
- Returns: Multi-turn conversation with images
- Required arguments:
-
resource_prompt
Demonstrates embedding resource references in prompts.- Required arguments:
resourceId
(number, 1-100)
- Returns: Multi-turn conversation with embedded resource reference
- Required arguments:
Logging
The server sends log messages with random levels every 15 seconds, e.g.:
{
"method": "notifications/message",
"params": {
"level": "info",
"data": "Info-level message"
}
}
Usage with Claude Desktop
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"everything": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-everything"
]
}
}
}