Add a new upstream MCP server to the proxy config
Block a tool for a specific user via the admin API
Check fastproxy health and upstream server status
Start the fastproxy HTTP server. Parse `$ARGUMENTS` for optional flags:
CLAUDE.md
Project-level agent definitions for fastproxy.
CLAUDE.md
Use this agent to manage a running fastproxy OAuth MCP gateway. Handles upstream server registration and removal, per-user tool blocklists, API key management, active session monitoring, health checks, and audit log queries. <example> Context: User wants to block a specific tool for a user. user: "Block the filesystem__write_file tool for user alice" assistant: "I'll use fastproxy-admin to apply the blocklist change." <commentary> Blocklist changes are live — the agent calls block_tool and FastMCP automatically sends tools/list_changed to alice's active sessions. </commentary> </example> <example> Context: User wants to add a new upstream MCP server. user: "Add the github MCP server to the proxy" assistant: "I'll use fastproxy-admin to register the server." <commentary> Server registration updates proxy.json and triggers hot-reload via the watcher task — no restart required. </commentary> </example> <example> Context: User wants to investigate a tool call failure. user: "Why did the filesystem__read_file tool fail for user bob earlier today?" assistant: "I'll use fastproxy-admin to query the audit log for that event." <commentary> Audit log queries show full request/response context, duration, error type, and input args for every tool call stored in the Redis ring buffer. </commentary> </example>
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
An OAuth-secured, unified MCP gateway. Aggregates all your MCP servers into a single endpoint — one URL, one login, granular per-user tool control.
Built on FastMCP.
You have a dozen MCP servers (filesystem, GitHub, home automation, databases, etc.) spread across Claude, Cursor, Codex, Gemini. Each needs its own config entry in each AI assistant. There's no central auth, no way to say "this user can't touch the filesystem tools", and no audit trail.
fastproxy fixes that:
https://your-server/mcp and get every tool from every backendpip install fastproxy
# Required: set JWT secret before first run
export FASTPROXY_JWT_SECRET="$(openssl rand -hex 32)"
# Start with a config file
fastproxy serve --config proxy.json
# Or auto-discover from your existing AI assistant configs
fastproxy discover
proxy.json{
"admins": ["your-user-id"],
"storage": {
"backend": "redis",
"url": "redis://localhost:6379/0"
},
"servers": {
"filesystem": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
},
"github": {
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
All tools are namespaced by server alias: filesystem__read_file, github__create_issue, etc.
Requires Python 3.11+.
# Core proxy
pip install fastproxy
# With code-mode transform support
pip install "fastproxy[code-mode]"
# With app UI support
pip install "fastproxy[apps]"
# Everything
pip install "fastproxy[all]"
# HTTP proxy server — clients connect to this
fastproxy serve [--config proxy.json] [--host 0.0.0.0] [--port 8000]
# Admin channel server — Claude Code spawns this for in-session notifications (optional)
fastproxy channel [--config proxy.json]
docker compose up
docker-compose.yml:
services:
proxy:
image: ghcr.io/jmagar/fastproxy:latest
ports:
- "8000:8000"
environment:
FASTPROXY_JWT_SECRET: "${FASTPROXY_JWT_SECRET}"
volumes:
- ./proxy.json:/app/proxy.json:ro
- ./skills:/app/skills
depends_on:
- redis
redis:
image: redis:7-alpine
volumes:
- redis-data:/data
volumes:
redis-data:
proxy.json is watched for changes — edit it and the proxy hot-reloads without dropping connections.
{
"admins": ["user-id-1", "user-id-2"],
"storage": {
"backend": "redis",
"url": "redis://localhost:6379/0"
},
"rate_limits": {
"requests_per_minute": 60,
"requests_per_hour": 1000
},
"list_page_size": 50,
"skills_dir": "./skills",
"vendor_skills": ["claude", "cursor"],
"servers": {
"my-server": {
"transport": "stdio",
"command": "python",
"args": ["-m", "my_mcp_server"],
"env": {
"API_KEY": "${MY_API_KEY}"
},
"tags": ["cacheable"],
"cache_ttl": 300,
"enabled": true
},
"remote-server": {
"transport": "http",
"url": "https://mcp.example.com/mcp"
}
}
}
Server entry fields:
| Field | Type | Description |
|---|---|---|
transport | "stdio" | "http" | "sse" | How to connect to the upstream server |
command | string | Command to run (stdio only) |
args | string[] | Command arguments (stdio only) |
url | string | Upstream URL (http/sse only) |
env | object | Environment variables. ${VAR} interpolation supported |
tags | string[] | Tags for filtering. Use "cacheable" to enable response caching |
cache_ttl | int | Component list cache TTL in seconds (default: 300, set to 0 to disable) |
enabled | bool | Whether this server is active (default: true) |
Server aliases must match [a-z0-9-]+. Hyphens are converted to underscores in tool names: my-server → my_server__tool_name.
| Variable | Required | Description |
|---|---|---|
FASTPROXY_JWT_SECRET | Yes | JWT signing key. Proxy refuses to start without it. Changing this invalidates all sessions. |
FASTPROXY_LIST_PAGE_SIZE | No | Override pagination page size (default: 50) |
npx claudepluginhub jmagar/fastproxy --plugin fastproxyQuery, monitor, and manage Unraid servers via GraphQL API through MCP tools. Supports system info, Docker, VMs, array/parity, notifications, plugins, rclone, and live telemetry.
Core homelab agents, commands, and setup/health skills for self-hosted service management. Includes interactive credential setup wizard and unified service health dashboard.
UniFi network management via MCP tools. Monitor devices, clients, network health, firewall rules, and perform management operations.
Gotify push notifications and management via MCP tools with HTTP fallback. Sends alerts for long-running tasks, plan completions, and blocked states.
Agents, commands, skills, and scripts for scaffolding, reviewing, aligning, and deploying homelab MCP server plugins. Includes canonical Python, TypeScript, and Rust server templates.
Centralized Claude Code configuration: Docker-first guards, permissions, MCP gateway, and workflow skills
Manage MCP servers - discover, analyze, execute tools/prompts/resources. Use for MCP integrations, capability discovery, tool filtering, programmatic execution, or encountering context bloat, server configuration, tool execution errors.
Build FastMCP 3.x Python MCP servers — covers provider/transform architecture (including CodeMode, Tool Search, and server-level transforms), component versioning, session state, authorization (MultiAuth, PropelAuth, connection-pooled token verifiers), evaluation creation, Pydantic validation, async patterns, STDIO and HTTP transports, nginx reverse proxy deployment, background tasks, Prefab Apps UI, security patterns, client SDK usage, testing, deployment, and migration from FastMCP v2. TypeScript is a legacy reference only and is not updated for v3.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Efficient skill management system with progressive discovery — 410+ production-ready skills across 33+ domains
v9.44.1 — Patch release for Gemini environment/version detection and qwen auth gating. Run /octo:setup.