Skip to main content
Glama
mallikarjun-angadi

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.