@modelcontextprotocol/server-everything (original) (raw)
Everything MCP Server
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.
Components
Tools
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 number
*b
(number): Second number - Returns: Text result of the addition
longRunningOperation
- Demonstrates progress notifications for long operations
- Inputs:
*duration
(number, default: 10): Duration in seconds
*steps
(number, default: 5): Number of progress steps - Returns: Completion message with duration and steps
- Sends progress notifications during execution
sampleLLM
- Demonstrates LLM sampling capability using MCP sampling feature
- Inputs:
*prompt
(string): The prompt to send to the LLM
*maxTokens
(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
printEnv
- Prints all environment variables
- Useful for debugging MCP server configuration
- No inputs required
- Returns: JSON string of all environment variables
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 patterns
*includeImage
(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 withtype: "resource"
* Text instruction for using the resource URI
Resources
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
Prompts
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
Logging
The server sends random-leveled log messages every 15 seconds, e.g.:
{ "method": "notifications/message", "params": { "level": "info", "data": "Info-level message" } }
Add to your claude_desktop_config.json
:
{ "mcpServers": { "everything": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-everything" ] } } }
Usage with VS Code
For quick installation, use of of the one-click install buttons below...
For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P
and typing Preferences: Open User Settings (JSON)
.
Optionally, you can add it to a file called .vscode/mcp.json
in your workspace. This will allow you to share the configuration with others.
Note that the
mcp
key is not needed in the.vscode/mcp.json
file.
NPX
{ "mcp": { "servers": { "everything": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-everything"] } } } }
cd src/everything npm install npm run start:sse
cd src/everything npm install npm run start:streamableHttp