Skip to content

Commit 67d9a94

Browse files
committed
improvements to README.md
1 parent 5f545ce commit 67d9a94

1 file changed

Lines changed: 132 additions & 43 deletions

File tree

README.md

Lines changed: 132 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,45 @@ The Everything Server is an open-source reference implementation that showcases:
1414

1515
This server serves as both primarily as a learning resource, and an example implementation of a scalable remote MCP server.
1616

17+
## Quick Start
18+
19+
Get the server running in 5 minutes:
20+
21+
```bash
22+
# 1. Prerequisites
23+
brew install orbstack # macOS: Install OrbStack (skip if already installed)
24+
orbctl start # macOS: Start OrbStack daemon
25+
# OR install Docker Desktop and start it (Windows/Linux/macOS alternative)
26+
27+
# 2. Setup
28+
git clone https://github.com/modelcontextprotocol/example-remote-server.git
29+
cd example-remote-server
30+
npm install
31+
cp .env.integrated .env # Configure for integrated mode (see Authentication Modes for details)
32+
33+
# 3. Start services
34+
docker compose up -d # Start Redis
35+
npm run dev # Start server
36+
37+
# 4. Test with Inspector
38+
npx -y @modelcontextprotocol/inspector
39+
# Connect to http://localhost:3232/mcp
40+
```
41+
42+
For detailed instructions, see [Installation](#installation).
43+
1744
## Table of Contents
1845

46+
- [Quick Start](#quick-start)
1947
- [Features](#features)
2048
- [Installation](#installation)
2149
- [Configuration](#configuration)
2250
- [Authentication Modes](#authentication-modes)
2351
- [Development](#development)
52+
- [Testing with MCP Inspector](#testing-with-mcp-inspector)
2453
- [Automated End-to-End Testing](#automated-end-to-end-testing)
2554
- [Interactive Testing](#interactive-testing)
55+
- [Troubleshooting](#troubleshooting)
2656
- [Architecture & Technical Details](#architecture--technical-details)
2757
- [API Reference](#api-reference)
2858
- [Security](#security)
@@ -59,47 +89,66 @@ This server serves as both primarily as a learning resource, and an example impl
5989

6090
### Prerequisites
6191
- Node.js >= 16
62-
- Redis server (see Redis setup below)
6392
- npm or yarn
93+
- Docker runtime (for Redis)
6494

65-
### Redis Setup
66-
The server requires Redis for session management and message routing.
67-
68-
**Option 1: Docker Compose (Recommended)**
69-
70-
Install a Docker runtime:
71-
- **macOS**: [OrbStack](https://orbstack.dev/) - Fast, lightweight, and free
72-
```bash
73-
brew install orbstack
74-
# Or download from https://orbstack.dev/download
75-
```
76-
- **Windows/Linux**: [Docker Desktop](https://www.docker.com/products/docker-desktop)
95+
### Step 1: Install Docker Runtime
96+
Choose one option:
7797

78-
Start Redis:
98+
**macOS (Recommended: OrbStack)**
7999
```bash
80-
# see docker-compose.yml
81-
docker compose up -d
100+
brew install orbstack
101+
# Start OrbStack daemon (required before using Docker commands)
102+
orbctl start
103+
# Or download from https://orbstack.dev/download
82104
```
83105

84-
**Option 2: Local Installation**
106+
**Windows/Linux: Docker Desktop**
107+
- Download from https://www.docker.com/products/docker-desktop
108+
- Start Docker Desktop after installation
109+
110+
**Alternative: Local Redis Installation**
85111
```bash
86112
# macOS
87113
brew install redis && brew services start redis
88114

89-
# Ubuntu/Debian
115+
# Ubuntu/Debian
90116
sudo apt-get install redis-server && sudo systemctl start redis
91117
```
92118

93-
### Setup
119+
### Step 2: Clone and Install Dependencies
94120
```bash
95-
# Clone the repository
96121
git clone https://github.com/modelcontextprotocol/example-remote-server.git
97122
cd example-remote-server
98-
99-
# Install dependencies
100123
npm install
101124
```
102125

126+
### Step 3: Configure Environment
127+
```bash
128+
# Use integrated mode (default, simpler setup)
129+
cp .env.integrated .env
130+
131+
# OR use separate mode (for testing external auth)
132+
cp .env.separate .env
133+
```
134+
135+
### Step 4: Start Redis
136+
```bash
137+
# Ensure Docker/OrbStack is running first!
138+
docker compose up -d
139+
140+
# Verify Redis is running
141+
docker compose ps
142+
```
143+
144+
### Step 5: Verify Installation
145+
```bash
146+
# Run the development server
147+
npm run dev
148+
149+
# Server should start on http://localhost:3232
150+
```
151+
103152
## Configuration
104153

105154
Environment variables (`.env` file):
@@ -164,9 +213,18 @@ In production, the separate authorization server would typically be replaced wit
164213

165214
## Development
166215

167-
### Commands
216+
### Quick Start
217+
If you've completed installation, you're ready to develop:
168218

169-
#### Development
219+
```bash
220+
# Integrated mode (MCP server handles auth)
221+
npm run dev:integrated
222+
223+
# Separate mode (external auth server)
224+
npm run dev:with-separate-auth
225+
```
226+
227+
### Development Commands
170228
```bash
171229
# Start development server with hot reload
172230
npm run dev
@@ -214,36 +272,35 @@ npm run test:e2e:separate # Test separate mode OAuth + features
214272

215273
### Testing with MCP Inspector
216274

217-
The MCP Inspector is a web-based tool for testing MCP servers:
218-
```bash
219-
npx -y @modelcontextprotocol/inspector
220-
```
275+
The MCP Inspector is a web-based tool for testing MCP servers.
276+
277+
#### Prerequisites
278+
1. Ensure Docker/OrbStack is running
279+
2. Ensure Redis is running: `docker compose ps`
280+
3. Ensure environment is configured: Check `.env` file exists
221281

222282
#### Test Integrated Mode
223283
```bash
224-
# 1. Start Redis
225-
docker compose up -d
226-
227-
# 2. Start the server
284+
# 1. Start the server (Redis must already be running)
228285
npm run dev:integrated
229286

230-
# 3. Open MCP Inspector and connect to http://localhost:3232/mcp
231-
# 4. Navigate to the Auth tab and complete the OAuth flow
232-
# 5. All auth endpoints will be served from :3232
287+
# 2. Launch MCP Inspector in a new terminal
288+
npx -y @modelcontextprotocol/inspector
289+
290+
# 3. Connect to: http://localhost:3232/mcp
291+
# 4. Navigate to Auth tab and complete OAuth flow
233292
```
234293

235294
#### Test Separate Mode
236295
```bash
237-
# 1. Start Redis
238-
docker compose up -d
239-
240-
# 2. Start both servers
296+
# 1. Start both servers (Redis must already be running)
241297
npm run dev:with-separate-auth
242298

243-
# 3. Open MCP Inspector and connect to http://localhost:3232/mcp
244-
# 4. Navigate to the Auth tab
245-
# 5. The auth flow will redirect to :3001 for authentication
246-
# 6. After auth, tokens from :3001 will be used on :3232
299+
# 2. Launch MCP Inspector in a new terminal
300+
npx -y @modelcontextprotocol/inspector
301+
302+
# 3. Connect to: http://localhost:3232/mcp
303+
# 4. Auth flow will redirect to :3001 for authentication
247304
```
248305

249306
### Running Tests
@@ -295,6 +352,38 @@ The npm scripts automatically start required servers, run tests, and clean up. M
295352
### Interactive Testing
296353
Use the MCP Inspector for interactive testing and debugging of OAuth flows, tool execution, and resource access.
297354

355+
## Troubleshooting
356+
357+
### Common Issues
358+
359+
**"Cannot connect to Docker daemon"**
360+
- Ensure Docker Desktop or OrbStack daemon is running
361+
- macOS with OrbStack: `orbctl start` (verify with `orbctl status`)
362+
- Windows/Linux/macOS with Docker Desktop: Start Docker Desktop application
363+
364+
**"Redis connection refused"**
365+
- Check Redis is running: `docker compose ps`
366+
- If not running: `docker compose up -d`
367+
- Ensure Docker/OrbStack is started first
368+
369+
**"Missing .env file"**
370+
- Run `cp .env.integrated .env` for default setup
371+
- Or `cp .env.separate .env` for separate auth mode
372+
373+
**"Port already in use"**
374+
- Check for existing processes: `lsof -i :3232` or `lsof -i :3001`
375+
- Kill existing processes or change PORT in .env
376+
377+
**"npm install fails"**
378+
- Ensure Node.js >= 16 is installed: `node --version`
379+
- Clear npm cache: `npm cache clean --force`
380+
- Delete node_modules and package-lock.json, then retry
381+
382+
**"Authentication flow fails"**
383+
- Check the server logs for error messages
384+
- Ensure Redis is running and accessible
385+
- Verify .env configuration matches your setup mode
386+
298387
## Architecture & Technical Details
299388

300389
### Authentication Architecture

0 commit comments

Comments
 (0)