I was tired of not having a way to run my MCP servers locally with auth in a way that I could deploy elsewhere.
- Built-in OAuth2 - Works with MCP clients that support OAuth2
- Monitoring - Live logs, metrics, and status tracking
- Dashboard - Modern UI with dark/light themes
- Quick Launch - Just replace
npx
withmcx
Get up and running in less than 2 minutes:
# Install the CLI
npm install -g mcx
# Clone and start mathom
git clone https://github.com/stephenlacy/mathom.git
cd mathom
./quickstart.sh # Builds and starts everything
Visit http://localhost:5050 and you're ready to go!
Local-First Architecture
|
Real-Time Monitoring
|
# launch a server by name
mcx my-mcp-server
# launch from npm package
mcx @modelcontextprotocol/server-filesystem
# with custom arguments
mcx my-server -- --custom-arg value
STDIO servers in Docker images can be run using the --docker
flag, they will get wrapped automatically with the mathom-proxy:
mcx --docker mcp/github-mcp-server -e GITHUB_PERSONAL_ACCESS_TOKEN='ghp_token'
- Claude:
~/Library/Application Support/Claude/claude_desktop_config.json
- Cursor:
~/.cursor/mcp.json
{
"mcpServers": {
"myServer": {
"command": "mcx",
"args": ["my-mcp-server"],
"env": {
"MATHOM_URL": "http://localhost:5050"
}
},
"myDockerServer": {
"command": "mcx",
"args": ["--docker", "mcp/github-mcp-server", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN=ghp_token"],
}
}
}
npx @modelcontextprotocol/inspector mcx @modelcontextprotocol/server-everything
Docker Installation (Recommended)
docker compose up -d
Or use the quickstart script
Manual Installation
- Docker
- Go
- Node.js
- PostgreSQL
Environment Setup
# .env file
BETTER_AUTH_URL=http://localhost:5050 # required
DATABASE_URL=postgresql://... # required
LOG_URL=http://... # required
NODE_DOCKER_IMAGE="you-custom-node-image" # optional
Run locally:
cd dashboard
pnpm install
pnpm dev
cd ../podrift
go run cmd/main.go
- local-first platform
- OAuth2 auth
- slick dashboard
- run servers in docker
- team features