Styx MCP Server logo

Styx MCP Server

MCP server for Styx β€” intelligent AI routing across OpenAI, Anthropic, Google, and Mistral.

Install Styx MCP Server

Pick your client, then add it in one click or paste the config.

No confirmed install command yet

We only publish a config when the install details come from the project itself β€” its README, its docs, or a verified owner. We haven’t found those for styx-mcp-server, and we’d rather show nothing than a guess you’d paste into your client.

Open setup steps on GitHub

Overview

Security & health

What it can reach and how reliably it runs β€” from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

6/6 checks healthy over the last 40d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 24d ago via OSV.dev

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks β€” not a rating.

GitHub stars5Stargazers on the source repository.
Last commit4mo agoMost recent push to the default branch.

From the project README

⚑ Styx

The MCP-Native AI Gateway

Route requests to any AI provider through one universal endpoint.
Self-hosted. Open source. BYOK.


What is Styx?

Styx is an open-source AI gateway that sits between your app and AI providers. Send requests to OpenAI, Anthropic, Google, or Mistral β€” all through one OpenAI-compatible endpoint. Bring your own API keys, self-host on your infra, and get full visibility into every request.

The first AI gateway with native MCP (Model Context Protocol) support.

server.ts
from openai import OpenAI

client = OpenAI(
    api_key="your-styx-api-key",
    base_url="http://localhost:8080/v1",  # ← Only change needed
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello from Styx"}],
)

Features

  • πŸ”Œ MCP Native β€” Built-in MCP server. Connect Claude Code or Cursor in one command
  • πŸ”€ Universal Routing β€” One OpenAI-compatible endpoint for all providers
  • πŸ€– styx:auto β€” Intelligent model routing: use "model": "styx:auto" and let Styx pick the right model based on request complexity
  • πŸ”‘ BYOK β€” Bring your own API keys, encrypted at rest (Fernet/AES)
  • πŸ“Š Dashboard β€” Track requests, costs, latency per project and model
  • πŸ”„ Fallbacks β€” Auto-failover between providers with circuit breakers
  • πŸ’° Billing β€” Built-in subscription and credit-based billing (Stripe)
  • 🧠 Semantic Cache β€” Similar questions return cached responses instantly
  • ⚑ Smart Routing β€” ML classifier routes to the optimal model for each request
  • 🐳 Self-Hosted β€” Docker Compose, 5-minute setup
  • πŸ”’ Secure β€” HMAC key hashing, Fernet encryption, rate limiting, TLS

Prerequisites

  • Docker Engine 24+ and Docker Compose v2
  • At least one AI provider API key (OpenAI, Anthropic, Google, or Mistral)
  • Supabase account (free tier) β€” only for production mode (not needed for dev mode)

Quick Start

Option A: Setup Wizard (recommended)

bash
git clone https://github.com/timmx7/styx.git
cd styx
./setup.sh                 # interactive wizard, generates .env
docker compose up -d --build   # first build: ~15-20 min; subsequent starts: ~60s

The wizard lets you choose between:

  • Dev mode β€” No Supabase needed, no authentication, instant start
  • Production mode β€” Full Supabase auth, account creation, API keys

Option B: Manual Setup

bash
git clone https://github.com/timmx7/styx.git
cd styx
cp .env.example .env

Edit .env with:

  1. Set SKIP_AUTH=true for dev mode, or configure Supabase for production
  2. At least one AI provider key (e.g., OPENAI_API_KEY)
Terminal
docker compose up -d --build   # first build: ~15-20 min; subsequent starts: ~60s

Access Points

Connect Claude Code

Terminal
claude mcp add styx -- npx styx-mcp

Connect Cursor

Add to .cursor/mcp.json:

config.json
{
  "styx": {
    "command": "npx",
    "args": ["styx-mcp"],
    "env": { "STYX_API_KEY": "your-key" }
  }
}

Send your first request

Terminal
curl -X POST http://localhost:8080/v1/chat/completions \
  -H "Authorization: Bearer YOUR_STYX_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Hello from Styx"}]
  }'

Dev mode: skip the Authorization header β€” requests are accepted without an API key.

Use with any OpenAI SDK

server.ts
// Node.js / TypeScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "your-styx-key",
  baseURL: "http://localhost:8080/v1",
});
server.ts
# Python
from openai import OpenAI

client = OpenAI(
    api_key="your-styx-key",
    base_url="http://localhost:8080/v1",
)

Supported Providers

ProviderModelsStatus
OpenAIgpt-4.1, gpt-4.1-mini, gpt-4o, gpt-4o-mini, o3, o4-miniβœ…
Anthropicclaude-sonnet-4, claude-3-5-sonnet, claude-3-5-haiku, claude-3-haikuβœ…
Googlegemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-2.0-flashβœ…
Mistralmistral-large, mistral-medium-3, mistral-small, codestralβœ…
Azure OpenAISame as OpenAI models, via Azure deploymentsβœ…

Auto-routing: Any model matching the provider prefixes above (gpt-*, claude-*, gemini-*, mistral-*, o3*, o4*) is routed automatically β€” even models released after your last config update.

Architecture

Code
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Client  │────▢│  Go Router   │────▢│  AI Provider  β”‚
β”‚  (app)   │◀────│  (port 8080) │◀────│  (OpenAI...)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”
                β”‚ Python API   β”‚
                β”‚ (port 8000)  β”‚
                β”‚ Auth/Billing β”‚
                β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚            β”‚            β”‚
    β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”  β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”
    β”‚Postgresβ”‚  β”‚  Redis   β”‚  β”‚ Next.jsβ”‚
    β”‚  (DB)  β”‚  β”‚ (cache)  β”‚  β”‚ (UI)   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Request flow:

Code
Client request
    β”‚
    β–Ό
Go Router (:8080) ──▢ Cache check ──▢ HIT? Return instantly
    β”‚                                   MISS? Continue...
    β–Ό
Budget check ──▢ OVER LIMIT? Block + alert
    β”‚              OK? Continue...
    β–Ό
Route to best provider (OpenAI / Anthropic / Google / Mistral)
    β”‚
    β–Ό
Provider error? ──▢ Automatic fallback (circuit breaker)
    β”‚
    β–Ό
Response to client + log to ClickHouse + update Redis counters

Project Structure

Code
styx/
β”œβ”€β”€ router/          # Go reverse proxy β€” the fast path (<10ms overhead)
β”œβ”€β”€ backend/         # Python FastAPI β€” auth, billing, business logic
β”œβ”€β”€ dashboard/       # Next.js + Tailwind β€” web dashboard
β”œβ”€β”€ classifier/      # ML request classifier (complexity scoring)
β”œβ”€β”€ cache-service/   # Semantic cache (Qdrant + sentence-transformers)
β”œβ”€β”€ sdk/             # Python & Node.js client SDKs
β”œβ”€β”€ packages/        # MCP server, gateway CLI
β”œβ”€β”€ infra/           # Docker, Helm, K8s, k6 load tests, Prometheus
└── docker-compose.yml

Comparison

FeatureStyxOpenRouterLiteLLMPortkey
MCP Nativeβœ…βŒβŒβŒ
Self-Hostedβœ…βŒβœ…βŒ
Open Sourceβœ… Apache 2.0βŒβœ…βŒ
Dashboardβœ… Full❌Basicβœ…
BYOKβœ… EncryptedβŒβœ…βœ…
Semantic Cacheβœ…βŒβŒβŒ
Smart Routingβœ… MLβŒβŒβœ…
Circuit Breakerβœ…βŒβœ…βœ…
One-Command Installβœ…N/A❌N/A

Claude Code Plugin

Install the Styx plugin directly in Claude Code:

Code
/plugin install styx@claude-plugin-directory

Or browse: /plugin > Discover > styx

This gives you /styx:setup, /styx:status, and the @styx-ops agent for managing your gateway from Claude Code.

MCP Connector

Styx includes a native MCP server. Connect it to Claude, Cursor, or any MCP-compatible client.

Local (stdio β€” requires npx)

Claude Code:

Terminal
claude mcp add styx -- npx styx-mcp

Cursor: Add to .cursor/mcp.json:

config.json
{
  "styx": {
    "command": "npx",
    "args": ["styx-mcp"],
    "env": { "STYX_API_KEY": "your-key" }
  }
}

Remote MCP Server

Connect to a hosted Styx instance without local installation:

Claude.ai / Claude Desktop: Settings > Connectors > Add custom connector > URL: https://mcp.styxhq.com/mcp

Claude Code:

Terminal
claude mcp add --transport http styx https://mcp.styxhq.com/mcp

See docs/DEPLOY_MCP_REMOTE.md for self-hosting the remote MCP server.

Examples

Check gateway health

Prompt: "Check if my AI gateway is healthy and which providers are connected" β†’ Styx checks all provider connections, returns status and latency per provider, flags any issues.

Analyze spending

Prompt: "How much have I spent on AI APIs this month?" β†’ Styx aggregates usage across providers, returns cost breakdown by model, shows cache savings.

Create a scoped API key

Prompt: "Create an API key for the marketing team limited to 1000 requests/day" β†’ Styx generates a rate-limited key, returns the key and its configuration.

Contributing

We welcome contributions! Please see CONTRIBUTING.md.

License

Apache 2.0 β€” see LICENSE for details.

Links

Reviews

No reviews yet β€” be the first to share how it worked for you.

Frequently Asked Questions about Styx MCP Server

styx-mcp-server is an MCP server that connects MCP-compatible clients such as Claude Code and Cursor to Styx, an open-source, self-hosted AI gateway. Styx provides one OpenAI-compatible endpoint for routing requests to OpenAI, Anthropic, Google, or Mistral, with intelligent model selection through styx:auto and support for bring-your-own API keys.

Connect it to Claude Code by running `claude mcp add styx -- npx styx-mcp`. Styx should be running and configured with at least one supported AI provider API key.

Configure it in Cursor by adding a `styx` entry to `.cursor/mcp.json` with `npx` as the command, `styx-mcp` as the argument, and your Styx API key in the `STYX_API_KEY` environment variable.

Styx can route requests to OpenAI, Anthropic, Google, and Mistral through one OpenAI-compatible endpoint. You provide the provider credentials using Styx's bring-your-own-key configuration.

Use `"model": "styx:auto"` in a request to let Styx choose a model based on request complexity. Requests can be sent through Styx's OpenAI-compatible `/v1/chat/completions` endpoint.

Related MCP servers

Add a badge to your READMEShow it’s listed β€” live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewStyx MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/styx-mcp-server?style=directory)](https://allmcps.com/mcp/styx-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/styx-mcp-server"><img src="https://allmcps.com/api/badge/styx-mcp-server?style=directory" alt="Styx MCP Server on AllMCPs" /></a>