MCP HubMCP Hub
modelcontextprotocol

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.

0created 19/11/2024
Visit
testing
protocol

📌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, and longRunningOperation 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

  1. echo
    Echoes back input messages.

    • Input:
      • message (string): Message to echo
    • Returns: Echoed text message
  2. add
    Adds two numbers.

    • Inputs:
      • a (number): First number
      • b (number): Second number
    • Returns: Result of addition as text
  3. longRunningOperation
    Demonstrates progress notifications during long tasks.

    • Inputs:
      • duration (number, default 10): Duration in seconds
      • steps (number, default 5): Number of progress steps
    • Returns: Completion message
    • Sends progress notifications during execution
  4. sampleLLM
    Demonstrates LLM sampling via MCP.

    • Inputs:
      • prompt (string): Prompt for LLM
      • maxTokens (number, default 100): Max tokens to generate
    • Returns: Generated LLM response
  5. getTinyImage
    Returns a small test image as base64 encoded PNG data.

  6. printEnv
    Prints all environment variables for debugging MCP server configuration.

    • Returns: JSON string of environment variables
  7. annotatedMessage
    Demonstrates content annotations with metadata.

    • Inputs:
      • messageType (enum: "error", "success", "debug"): Message type
      • includeImage (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"]
      }
      
  8. 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

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

  1. simple_prompt
    Basic prompt without arguments.

    • Returns: Single message exchange
  2. complex_prompt
    Advanced prompt demonstrating argument handling.

    • Required arguments:
      • temperature (number)
    • Optional arguments:
      • style (string)
    • Returns: Multi-turn conversation with images
  3. resource_prompt
    Demonstrates embedding resource references in prompts.

    • Required arguments:
      • resourceId (number, 1-100)
    • Returns: Multi-turn conversation with embedded resource reference

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"
      ]
    }
  }
}