everything

Local 2025-08-31 23:26:15 0

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.


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
  2. Simple tool to echo back input messages
  3. Input:
    • message (string): Message to echo back
  4. Returns: Text content with echoed message

  5. add

  6. Adds two numbers together
  7. Inputs:
    • a (number): First number
    • b (number): Second number
  8. Returns: Text result of the addition

  9. longRunningOperation

  10. Demonstrates progress notifications for long operations
  11. Inputs:
    • duration (number, default: 10): Duration in seconds
    • steps (number, default: 5): Number of progress steps
  12. Returns: Completion message with duration and steps
  13. Sends progress notifications during execution

  14. sampleLLM

  15. Demonstrates LLM sampling capability using MCP sampling feature
  16. Inputs:
    • prompt (string): The prompt to send to the LLM
    • maxTokens (number, default: 100): Maximum tokens to generate
  17. Returns: Generated LLM response

  18. getTinyImage

  19. Returns a small test image
  20. No inputs required
  21. Returns: Base64 encoded PNG image data

  22. printEnv

  23. Prints all environment variables
  24. Useful for debugging MCP server configuration
  25. No inputs required
  26. Returns: JSON string of all environment variables

  27. annotatedMessage

  28. Demonstrates how annotations can be used to provide metadata about content
  29. Inputs:
    • messageType (enum: "error" | "success" | "debug"): Type of message to demonstrate different annotation patterns
    • includeImage (boolean, default: false): Whether to include an example image
  30. 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
  31. Example annotations:

    {
      "priority": 1.0,
      "audience": ["user", "assistant"]
    }

  32. getResourceReference

  33. Returns a resource reference that can be used by MCP clients
  34. Inputs:
    • resourceId (number, 1-100): ID of the resource to reference
  35. 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
  2. Basic prompt without arguments
  3. Returns: Single message exchange

  4. complex_prompt

  5. Advanced prompt demonstrating argument handling
  6. Required arguments:
    • temperature (number): Temperature setting
  7. Optional arguments:
    • style (string): Output style preference
  8. Returns: Multi-turn conversation with images

  9. resource_prompt

  10. Demonstrates embedding resource references in prompts
  11. Required arguments:
    • resourceId (number): ID of the resource to embed (1-100)
  12. Returns: Multi-turn conversation with an embedded resource reference
  13. 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"
  }
}

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  }
}