A test server implementing all features of the MCP protocol, including prompts, tools, resources, and sampling, designed for testing MCP clients rather than practical applications.
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.
echo
message
(string): Message to echo backadd
a
(number): First numberb
(number): Second numberlongRunningOperation
duration
(number, default: 10): Duration in secondssteps
(number, default: 5): Number of progress stepssampleLLM
prompt
(string): The prompt to send to the LLMmaxTokens
(number, default: 100): Maximum tokens to generategetTinyImage
printEnv
annotatedMessage
messageType
(enum: "error" | "success" | "debug"): Type of message to demonstrate different annotation patternsincludeImage
(boolean, default: false): Whether to include an example imageThe server provides 100 test resources in two formats:
Even numbered resources:
test://static/resource/{even_number}
Odd numbered resources:
test://static/resource/{odd_number}
Resource features:
simple_prompt
complex_prompt
temperature
(number): Temperature settingstyle
(string): Output style preferenceThe server sends random-leveled log messages every 15 seconds to demonstrate the logging capabilities of MCP.
Location: typescript/
# 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
# 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
.
# 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
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.
Location: python/
cd python
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
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.
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.
Note: Implementation is in progress. The server is not yet fully functional.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!