Skip to main content
Glama
soriat

MCP Elicitations Demo Server

by soriat
README.md
# MCP Everything Server

A comprehensive reference implementation for the [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) that demonstrates all features of the protocol. This server showcases the versatility and extensibility of MCP, demonstrating how it can be used to give Large Language Models (LLMs) secure, controlled access to tools and data sources.

This server is built with the [TypeScript MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk).

## Features

This server implements a comprehensive set of MCP features including:

- **Tools**: Various tools including echo, add, long-running operations, environment variable printing, LLM sampling, and more
- **Prompts**: Simple and complex prompts with arguments, resource references, and embedded content
- **Resources**: Static resources with pagination support, resource templates, and subscriptions
- **Logging**: Configurable logging levels with real-time notifications
- **Completions**: Auto-completion for prompt arguments and resource references
- **Elicitation**: Interactive user input collection with structured schemas
- **Annotations**: Content annotations for priority and audience targeting
- **Progress Tracking**: Progress notifications for long-running operations
- **Real-time Updates**: Resource update notifications and stderr streaming

## Installation

```bash
npm install -g @modelcontextprotocol/server-everything
```

## Usage

### Standard I/O
```bash
mcp-server-everything
```

### Server-Sent Events (SSE)
```bash
npm run start:sse
```

### HTTP with Streaming Support
```bash
npm run start:streamableHttp
```

## Development

1. Clone the repository:
```bash
git clone https://github.com/modelcontextprotocol/servers.git
cd servers
```

2. Install dependencies:
```bash
npm install
```

3. Build the server:
```bash
npm run build
```

4. Run the server:
```bash
npm start
```

## Configuration

The server supports various configuration options and can be used to test and demonstrate MCP capabilities. It includes:

- 100 static resources (mix of text and binary)
- Multiple tool implementations
- Various prompt templates
- Real-time notifications and updates
- Progress tracking for long operations

## Docker

Build and run with Docker:

```bash
docker build -t mcp-everything-server .
docker run -p 3000:3000 mcp-everything-server
```

## License

MIT - See [LICENSE](LICENSE) file for details.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.

TDQS

C2.8/5.0

Scored across 10 tools

Disambiguation3/5

The tools have distinct technical purposes, but there is some functional overlap in the demonstration category. For example, 'annotatedMessage', 'longRunningOperation', 'sampleLLM', and 'startElicitation' all serve as MCP feature demos, which could cause confusion about which to use for general demonstration tasks. However, their specific descriptions help differentiate them.

Naming Consistency2/5

The naming conventions are inconsistent, mixing verb-first (e.g., 'add', 'echo', 'printEnv'), noun-first (e.g., 'annotatedMessage'), and descriptive phrases (e.g., 'longRunningOperation', 'getResourceLinks'). There is no uniform pattern like verb_noun or camelCase throughout, making the set less predictable.

Tool Count4/5

With 10 tools, the count is reasonable for a demo server showcasing various MCP features. It is well-scoped to demonstrate capabilities without being overwhelming, though it might feel slightly heavy if the purpose is purely educational rather than functional.

Completeness5/5

As a demo server, the tool set comprehensively covers the intended domain of MCP feature demonstrations, including basic operations, resource handling, long-running tasks, LLM sampling, and elicitations. There are no obvious gaps for its stated purpose of showcasing MCP functionalities.

Maintenance

ActivityInactive
ResponsivenessNo issues