Everything – README | MCP Marketplace

✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

MCP Everything

Note: This project was extracted from https://github.com/modelcontextprotocol/servers/tree/main/src/everything to create a standalone implementation.

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.

Installation

Local Installation

# Clone the repository
git clone https://github.com/modelcontextprotocol/mcp-everything.git
cd mcp-everything

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

Global Installation

# Install globally from npm
npm install -g mcp-everything

# Run the server
mcp-everything

Docker

# Build the Docker image
docker build -t mcp-everything .

# Run the container
docker run -it mcp-everything

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-everything"
      ]
    }
  }
}

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

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

Logging

The server sends random-leveled log messages every 15 seconds to demonstrate the logging capabilities of MCP.

Featured Templates

View More

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.