Information
Everything Reference / test server with prompts, resources, and tools
# 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
1. \`echo\`
- Simple tool to echo back input messages
- Input:
- \`message\` (string): Message to echo back
- Returns: Text content with echoed message
2. \`add\`
- Adds two numbers together
- Inputs:
- \`a\` (number): First number
- \`b\` (number): Second number
- Returns: Text result of the addition
3. \`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
4. \`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
5. \`getTinyImage\`
- Returns a small test image
- No inputs required
- Returns: Base64 encoded PNG image data
6. \`printEnv\`
- Prints all environment variables
- Useful for debugging MCP server configuration
- No inputs required
- Returns: JSON string of all environment variables
7. \`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:
\`\`\`json
\{
"priority": 1.0,
"audience": ["user", "assistant"]
\}
\`\`\`
8. \`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
### 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
1. \`simple_prompt\`
- Basic prompt without arguments
- Returns: Single message exchange
2. \`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
3. \`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.:
\`\`\`json
\{
"method": "notifications/message",
"params": \{
"level": "info",
"data": "Info-level message"
\}
\}
\`\`\`
## Usage with Claude Desktop
Add to your \`claude_desktop_config.json\`:
\`\`\`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...
[](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-everything%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40modelcontextprotocol%2Fserver-everything%22%5D%7D&quality=insiders)
[](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Feverything%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=everything&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Feverything%22%5D%7D&quality=insiders)
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
\`\`\`json
\{
"mcp": \{
"servers": \{
"everything": \{
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
\}
\}
\}
\}
\`\`\`