# modelcontextprotocol/server-everything [Health: Active]

**Category:** 🛠️ Other Tools and Integrations  
**Repository:** https://github.com/modelcontextprotocol/servers/tree/main/src/everything  
**GitHub Stars:** 91599  
**npm Downloads (last month):** 257078  
**Views:** 11  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/modelcontextprotocol-server-everything

## Description
MCP server that exercises all the features of the MCP protocol

## Tools
Capabilities this server exposes over MCP:

- **echo** — Echoes back the input string
- **get-annotated-message** — Demonstrates how annotations can be used to provide metadata about content.
- **get-env** — Returns all environment variables, helpful for debugging MCP server configuration
- **get-header-params** — Returns its region argument and the Mcp-Param-Region HTTP header it arrived in. Demonstrates x-mcp-header (a 2026-07-28 Streamable HTTP client mirrors the argument into the header) and JSON Schema 2020-12 input and output schemas.
- **get-resource-links** — Returns up to ten resource links that reference different types of resources
- **get-resource-reference** — Returns a resource reference that can be used by MCP clients
- **get-structured-content** — Returns structured content along with an output schema for client data validation
- **get-sum** — Returns the sum of two numbers
- **get-tiny-image** — Returns a tiny MCP logo image.
- **gzip-file-as-resource** — Compresses a single file using gzip compression. Depending upon the selected output type, returns either the compressed data as a gzipped resource or a resource link, allowing it to be downloaded in a subsequent request: during the current session for a 2025-era client, or for ten minutes at a minted URI on protocol version 2026-07-28.
- **trigger-list-changed** — Sends a notifications/<list>/list_changed for the tool, prompt or resource list. On protocol version 2026-07-28 it is delivered on each subscriptions/listen stream that asked for that list; a 2025-era client receives it unsolicited.
- **trigger-log-messages** — Sends one log message at each logging level during the call. On protocol version 2026-07-28 only the messages at or above the level the request names in _meta (io.modelcontextprotocol/logLevel) are sent, and none if it names no level; a 2025-era client gets those at or above the level it set with logging/setLevel. Deprecated: logging is deprecated as of protocol version 2026-07-28.
- **trigger-long-running-operation** — Demonstrates a long running operation with progress updates.
- **trigger-resource-update** — Sends a notifications/resources/updated for a resource URI. On protocol version 2026-07-28 it is delivered on each subscriptions/listen stream whose resourceSubscriptions name the URI; a 2025-era client receives it once it has called resources/subscribe for the URI.
- **toggle-simulated-logging** — Toggles simulated, random-leveled logging on or off. Deprecated: 2025-era clients only, since protocol version 2026-07-28 removes logging/setLevel; use trigger-log-messages with a per-request log level instead.
- **toggle-subscriber-updates** — Toggles simulated resource subscription updates on or off. Deprecated: 2025-era clients only, since protocol version 2026-07-28 removes resources/subscribe; use trigger-resource-update with a subscriptions/listen stream instead.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

## Documentation

## What modelcontextprotocol/server-everything does

modelcontextprotocol/server-everything is a reference and test server for MCP client builders. Rather than connecting an agent to a business system, it exposes protocol behaviors that clients need to handle, including tools, resources, prompts, sampling, elicitation, roots, notifications, structured content, and images.

The server includes simple callable operations such as echoing text and adding two numbers, alongside cases designed to test client implementations. These cases cover annotations, output schemas, resource links, resource references, environment inspection, compressed files, long-running work, progress updates, and list or resource-change notifications.

## How it works

One process serves both protocol eras. A 2026-07-28 client uses discovery, sends its identity and capabilities with each request, and connects without a session. A 2025-era client uses the traditional initialize handshake and session model. The server adapts features such as subscriptions, logging, sampling, elicitation, and roots through the relevant protocol behavior.

Streamable HTTP is available at `/mcp` when running the HTTP transport. The server also supports stdio, and it can start an HTTP+SSE endpoint for 2025-era clients. Streamable HTTP is the preferred HTTP option; HTTP+SSE is deprecated.

## Setup and configuration

Running through `npx` or from source requires Node.js 24 or later. The default installed-package command uses stdio:

```sh
npx @modelcontextprotocol/server-everything
```

The package can also be started explicitly with `stdio`, `streamableHttp`, or `sse`. To run Streamable HTTP from the source tree, install dependencies under `src/everything` and start the Streamable HTTP script. The endpoint uses port 3001 by default; the `PORT` environment variable overrides it.

Claude Desktop can launch the package with `npx -y @modelcontextprotocol/server-everything`. Windows configurations use `cmd /c` before the `npx` command. VS Code supports NPX and Docker installation configurations, either through its user MCP configuration or a workspace `.vscode/mcp.json` file.

## Tools and capabilities

Available tools include:

- `echo` for returning an input string and `get-sum` for basic arithmetic.
- `get-annotated-message`, `get-structured-content`, and `get-header-params` for metadata, schemas, headers, and structured tool results.
- `get-resource-links`, `get-resource-reference`, and `get-tiny-image` for resource-oriented responses.
- `get-env` for returning environment variables during configuration debugging.
- `gzip-file-as-resource` for producing compressed resource data or a downloadable resource link.
- `trigger-long-running-operation` for progress updates.
- `trigger-list-changed` and `trigger-resource-update` for change notifications.
- `trigger-log-messages`, `toggle-simulated-logging`, and `toggle-subscriber-updates` for notification and logging tests.

The server also demonstrates cache hints, multi-round-trip requests, request state, per-request log levels, the tasks extension, and JSON Schema 2020-12 tool schemas for the newer protocol era.

## Limitations and notes

This server is intended for MCP client development and protocol testing, not for delivering a practical external service. `get-env` returns all environment variables, so use it only in an environment where that output is appropriate. Logging and resource subscription tools tied to the 2025-era behavior are deprecated for 2026-07-28 clients, which use per-request log levels and subscription streams instead. Browser HTTP requests are accepted only from localhost origins; non-browser requests without an `Origin` header are unaffected.

_Full upstream README: https://allmcps.com/mcp/modelcontextprotocol-server-everything/readme_

