Server OAuth Toy
БесплатноНе проверенA simple MCP server with OAuth 2.0 authentication for testing OAuth support in mcp-cli.
Описание
A simple MCP server with OAuth 2.0 authentication for testing OAuth support in mcp-cli.
README
A simple MCP (Model Context Protocol) server with OAuth 2.0 authentication for testing the OAuth support in mcp-cli.
Features
- Full OAuth 2.0 Authorization Code flow with PKCE
- Dynamic client registration (RFC 7591)
- In-memory session storage (for testing)
- Browser-based authorization where users enter their name
- Two tools:
whoami(returns authenticated user) andecho(echoes message with user name)
Quick Start
1. Start the Server (Docker)
# Clone the repository
git clone https://github.com/bvolpato/mcp-server-oauth-toy.git
cd mcp-server-oauth-toy
# Build and run with Docker
docker build -t mcp-server-oauth-toy .
docker run -p 8000:8000 mcp-server-oauth-toy
2. Configure mcp-cli
Add to your ~/.config/mcp/mcp_servers.json:
{
"mcpServers": {
"oauth-toy": {
"url": "http://localhost:8000/mcp",
"oauth": true
}
}
}
3. Test with mcp-cli
# Install mcp-cli (requires Bun)
bun install -g @philschmid/mcp-cli
# List available tools (will trigger OAuth flow on first run)
mcp-cli -c ~/.config/mcp/mcp_servers.json oauth-toy
# Call the whoami tool
mcp-cli -c ~/.config/mcp/mcp_servers.json oauth-toy/whoami '{}'
# Call the echo tool
mcp-cli -c ~/.config/mcp/mcp_servers.json oauth-toy/echo '{"message": "Hello!"}'
OAuth Flow
When you first connect to the server:
- mcp-cli detects the server requires OAuth (401 response)
- mcp-cli discovers OAuth endpoints via
/.well-known/oauth-authorization-server - mcp-cli registers as a client via
/register(dynamic registration) - Your browser opens to the authorization page
- You enter your name and click "Authorize"
- mcp-cli receives the authorization code and exchanges it for tokens
- Subsequent requests use the stored access token
Tools
whoami
Returns the name of the authenticated user.
mcp-cli -c ~/.config/mcp/mcp_servers.json oauth-toy/whoami '{}'
# Output: You are authenticated as: Alice
echo
Echoes back the provided message with the authenticated user's name.
mcp-cli -c ~/.config/mcp/mcp_servers.json oauth-toy/echo '{"message": "Hello!"}'
# Output: Alice says: Hello!
Local Development
Using uv
# Install dependencies
uv sync
# Run the server
uv run python -m mcp_server_oauth_toy
Using Docker Compose
docker-compose up
OAuth Endpoints
| Endpoint | Description |
|---|---|
/.well-known/oauth-authorization-server |
OAuth 2.0 Authorization Server Metadata |
/register |
Dynamic Client Registration |
/authorize |
Authorization endpoint (shows login form) |
/token |
Token endpoint |
MCP Endpoints
| Endpoint | Description |
|---|---|
/mcp |
MCP over Streamable HTTP |
/health |
Health check |
Environment Variables
| Variable | Default | Description |
|---|---|---|
HOST |
0.0.0.0 |
Server host |
PORT |
8000 |
Server port |
BASE_URL |
http://localhost:8000 |
Public base URL |
REDIS_URL |
(none) | Redis URL for persistent storage (e.g., Upstash) |
KV_URL |
(none) | Alternative Redis URL (Vercel KV) |
Persistent Storage (for Serverless)
By default, the server uses in-memory storage which doesn't persist across serverless function invocations. For production use on Vercel, set up Redis:
Using Upstash (Recommended)
- Create a free Redis database at upstash.com
- Copy the
UPSTASH_REDIS_REST_URL - Add it as
REDIS_URLin your Vercel environment variables
Using Vercel KV
- Add Vercel KV to your project from the Vercel dashboard
- The
KV_URLenvironment variable is automatically set
Testing the PR
This server was created to test mcp-cli PR #18 which adds OAuth support.
To test the OAuth implementation:
- Start this server locally
- Use mcp-cli with the
oauth: trueconfiguration - Complete the browser-based authorization
- Verify the
whoamitool returns your name
Deploy to Vercel
- Click the button above or import the repo at vercel.com/new
- Select "Other" as the framework (Vercel auto-detects Python)
- Deploy!
The BASE_URL is automatically set from VERCEL_URL.
Then update your mcp_servers.json:
{
"mcpServers": {
"oauth-toy": {
"url": "https://your-deployment.vercel.app/mcp",
"oauth": true
}
}
}
License
MIT
Установка Server OAuth Toy
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/bvolpato/mcp-server-oauth-toyFAQ
Server OAuth Toy MCP бесплатный?
Да, Server OAuth Toy MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Server OAuth Toy?
Нет, Server OAuth Toy работает без API-ключей и переменных окружения.
Server OAuth Toy — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Server OAuth Toy в Claude Desktop, Claude Code или Cursor?
Открой Server OAuth Toy на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Server OAuth Toy with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
