logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mcp-everything

A comprehensive test server that showcases the features of the Model Context Protocol (MCP), providing tools, resources, prompts, and sampling capabilities for developers. It includes implementations in TypeScript and Python for building and testing MCP clients.

Author

mcp-everything logo

s2005

MIT License

Quick Info

GitHub GitHub Stars 0
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

mcpprotocols2005mcp comprehensivetesting mcpprotocol mcp

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 project demonstrates various features of the Model Context Protocol (MCP). It includes server implementations in TypeScript and Python, serving as test servers for MCP client builders. Both implementations aim for functional parity, showcasing capabilities like prompts, tools, resources, sampling, logging, and more.

Common Features

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

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

Logging

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

TypeScript Implementation

Location: typescript/

Installation

Local Development

# Clone the repository (if not already done)
# git clone https://github.com/modelcontextprotocol/mcp-everything.git
# cd mcp-everything

# Navigate to the TypeScript directory from the repository root
cd typescript

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

Global Installation

# Navigate to the TypeScript directory:
# cd path/to/mcp-everything/typescript
# Then install globally from the local package:
npm install -g .

# Run the server 
# (The command name will depend on the 'bin' field in typescript/package.json, 
#  e.g., 'mcp-everything-ts' or 'mcp-everything' if modified)
# Example:
# mcp-everything-ts

Note: Global installation functionality and the exact command depend on the bin configuration within typescript/package.json.

Docker

# Build the Docker image from the repository root
# (Assumes Dockerfile is updated to handle APP_DIR build argument or typescript context)
docker build -t mcp-everything-ts -f Dockerfile . --build-arg APP_DIR=typescript

# Run the container
docker run -it mcp-everything-ts

Usage with MCP Clients (e.g., Claude Desktop)

Add to your client's MCP server configuration. Paths might need adjustment.

If using npx with a published package (e.g., mcp-everything-ts):

{
  "mcpServers": {
    "everything-ts-npx": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-everything-ts" 
        // Replace 'mcp-everything-ts' with the actual package name if different
      ]
    }
  }
}

If running from a local build (ensure cwd is the typescript directory):

{
  "mcpServers": {
    "everything-ts-local": {
      "command": "npm",
      "args": [
        "start"
      ],
      // Ensure 'cwd' points to the 'typescript' directory of this project.
      "cwd": "path/to/mcp-everything/typescript" 
    }
  }
}

Replace "path/to/mcp-everything/typescript" with the correct path.


Python Implementation

Location: python/

Installation & Setup

  1. From the repository root, navigate to the Python directory: bash cd python
  2. (Recommended) Create and activate a virtual environment: bash python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  3. Install dependencies: bash pip install -r requirements.txt

Running the Server

From within the python directory (and with the virtual environment activated if used):

python mcp_server.py

The server listens for MCP messages over stdio.

Usage with MCP Clients (e.g., Claude Desktop)

Example configuration:

{
  "mcpServers": {
    "everything-py": {
      "command": "python", // Or "path/to/python/venv/bin/python"
      "args": ["mcp_server.py"],
      "cwd": "path/to/mcp-everything/python" // Ensure this is the correct path
    }
  }
}

Replace "path/to/mcp-everything/python" with the correct path.

Testing the Server via GitHub Actions

Note: Implementation is in progress. The server is not yet fully functional.

  • Test 1
  • Test 2

See Also

`