mirror of
https://github.com/modelcontextprotocol/servers.git
synced 2026-04-18 00:03:23 +02:00
- Add new tool 'getResourceReference' that returns embedded resources - Add new prompt 'resource_prompt' demonstrating embedded resources in prompts - Update documentation with new tool and prompt details - Create CLAUDE.md with development guidelines 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
146 lines
4.2 KiB
Markdown
146 lines
4.2 KiB
Markdown
# Everything MCP Server
|
|
|
|
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.
|
|
|
|
## 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:
|
|
- Error messages: High priority (1.0), visible to both user and assistant
|
|
- Success messages: Medium priority (0.7), user-focused
|
|
- Debug messages: Low priority (0.3), assistant-focused
|
|
- Optional image: Medium priority (0.5), user-focused
|
|
- Example annotations:
|
|
```json
|
|
{
|
|
"priority": 1.0,
|
|
"audience": ["user", "assistant"]
|
|
}
|
|
```
|
|
|
|
8. `getResourceReference`
|
|
- Returns a resource reference that can be used by MCP clients
|
|
- Inputs:
|
|
- `resourceId` (number, 1-100): ID of the resource to reference
|
|
- Returns: A resource reference with:
|
|
- Text introduction
|
|
- Embedded resource with `type: "resource"`
|
|
- Text instruction for using the resource URI
|
|
|
|
### 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
|
|
|
|
3. `resource_prompt`
|
|
- Demonstrates embedding resource references in prompts
|
|
- Required arguments:
|
|
- `resourceId` (number): ID of the resource to embed (1-100)
|
|
- Returns: Multi-turn conversation with an embedded resource reference
|
|
- Shows how to include resources directly in prompt messages
|
|
|
|
### Logging
|
|
|
|
The server sends random-leveled log messages every 15 seconds, e.g.:
|
|
|
|
```json
|
|
{
|
|
"method": "notifications/message",
|
|
"params": {
|
|
"level": "info",
|
|
"data": "Info-level message"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Usage with Claude Desktop
|
|
|
|
Add to your `claude_desktop_config.json`:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"everything": {
|
|
"command": "npx",
|
|
"args": [
|
|
"-y",
|
|
"@modelcontextprotocol/server-everything"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|