Skip to main content

Upstream Servers

MCPProxy can connect to multiple MCP servers simultaneously, providing unified access through a single endpoint.

Server Types

MCPProxy supports three types of upstream connections:

stdio Servers

Local servers that communicate via standard input/output:

{
"name": "filesystem",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"],
"protocol": "stdio",
"enabled": true
}

HTTP Servers

Remote servers accessible via HTTP/HTTPS:

{
"name": "remote-server",
"url": "https://api.example.com/mcp",
"protocol": "http",
"enabled": true
}

OAuth Servers

Servers requiring OAuth 2.1 authentication:

{
"name": "github-server",
"url": "https://api.github.com/mcp",
"protocol": "http",
"oauth": {
"client_id": "your-client-id",
"scopes": ["repo", "user"]
},
"enabled": true
}

Configuration Options

OptionTypeRequiredDescription
namestringYesUnique identifier for the server
commandstringFor stdioCommand to execute
argsarrayNoCommand arguments
urlstringFor HTTPServer URL
protocolstringYesstdio or http
enabledbooleanNoWhether server is active (default: true)
working_dirstringNoWorking directory for stdio servers
envobjectNoEnvironment variables to pass
oauthobjectNoOAuth configuration

Docker Isolation

For enhanced security, stdio servers can run in Docker containers:

{
"name": "isolated-server",
"command": "npx",
"args": ["-y", "some-mcp-server"],
"protocol": "stdio",
"isolation": {
"enabled": true,
"image": "node:20",
"network_mode": "bridge"
}
}

Note: Memory and CPU limits are configured at the global level in docker_isolation, not per-server.

See Docker Isolation for complete documentation.

Quarantine System

New servers added via AI clients are automatically quarantined for security review. See Security Quarantine for details.