Skip to content

Quickstart

This guide gets you running with bearer token authentication. For production deployments with OAuth, see the OAuth example.

MCP Front Architecture

MCP Front acts as a secure gateway between AI assistants and your internal MCP servers. It handles authentication so your servers don’t have to.

Create config.json with a basic MCP server:

{
"version": "v0.0.1-DEV_EDITION_EXPECT_CHANGES",
"proxy": {
"name": "My MCP Proxy",
"addr": ":8080",
"auth": {
"kind": "bearerToken",
"tokens": {
"filesystem": ["my-secret-token"]
}
}
},
"mcpServers": {
"filesystem": {
"transportType": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
}
}
}

You have three options:

Terminal window
docker run -p 8080:8080 \
-v $(pwd)/config.json:/config.json \
ghcr.io/dgellow/mcp-front:latest
Terminal window
# Install directly from GitHub
go install github.com/dgellow/mcp-front/cmd/mcp-front@main
# Then run
mcp-front -config config.json
Terminal window
git clone https://github.com/dgellow/mcp-front
cd mcp-front
go build -o mcp-front ./cmd/mcp-front
./mcp-front -config config.json

Open Claude Desktop settings and add a new MCP server. Set the URL to http://localhost:8080/sse, auth type to Bearer Token, and token to my-secret-token. Save and restart Claude.

Ask Claude: “What MCP tools do you have available?”

You should see the filesystem tools from your MCP server.

Switch to OAuth authentication for production. Add more MCP servers to your config.

Terminal window
# Check if MCP Front is running
curl http://localhost:8080/health
# Should return: {"status":"ok","service":"mcp-front"}

If not running, check the process is actually running. Verify port 8080 isn’t already in use. Make sure firewall rules allow localhost connections.

The token in Claude must be in the list for that server:

{
"auth": {
"tokens": {
"filesystem": ["my-secret-token"] // <- Token must be in this array
}
}
}

Check logs for details:

Terminal window
# Docker
docker logs <container-id>
# Binary
# Logs print to stdout

This usually means MCP Front can’t start your MCP server:

  1. Test the MCP server directly:
Terminal window
npx -y @modelcontextprotocol/server-filesystem /tmp
# Should output JSON-RPC messages
  1. Check MCP Front logs for errors
  2. Ensure the command is in PATH
  3. For Docker, make sure the MCP server is accessible from the container