SkyStage MCP Test Server
README.md
# SkyStage MCP Test Server
Minimal MCP server for testing SkyStage's **self-auth auto-detection** feature.
## How auto-detection works
During deployment, SkyStage scans your source code. This server uses `mcpAuthRouter`
from the MCP SDK — SkyStage detects this and automatically deploys in **self-auth mode**:
- ✅ No Okta sidecar deployed
- ✅ All OAuth routes (`/.well-known/*`, `/authorize`, `/token`) route to this container
- ✅ Your app's OAuth popup appears when Claude Code first connects
## Auth
Uses a **mock OAuth provider** that auto-approves every login — no credentials needed.
Replace with a real provider (Atlassian, GitHub, etc.) in production.
## Tools
| Tool | Description |
|---|---|
| `ping` | Returns `pong` — connectivity check |
| `echo` | Echoes back any message |
| `server_info` | Returns server metadata and uptime |
| `read_secret` | Reads from `/var/secrets/{name}.txt` — verifies SkyStage secret mounting |
## Deploy on SkyStage
1. **Create → Host an MCP Server**
2. GitHub Repo URL: `https://github.com/mediwareinc/skystage-mcp-test-server`
3. Container Port: `8080`
4. Optionally add a test secret: key `TEST_SECRET`, value `hello-from-skystage`
5. Deploy — SkyStage auto-detects `mcpAuthRouter` → self-auth mode
## Run locally
```bash
npm install
npm run dev
```
Add to Claude Code:
```bash
claude mcp add --transport http --callback-port 9876 mcp-test http://localhost:8080/mcp
```
The mock OAuth popup auto-approves — no login screen needed.
## Auth mode shown in catalog
After deployment, the **Application Configuration** card on the SkyStage entity page
shows **Auth: App-managed (custom OAuth)** — confirming self-auth was auto-detected.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues