upstream_servers
Add, update, remove, or list upstream MCP servers, configure Docker isolation, and monitor connection status. New servers are automatically quarantined to prevent tool poisoning attacks.
Instructions
Manage upstream MCP servers - add, remove, update, and list servers. Includes Docker isolation configuration and connection status monitoring. SECURITY: Newly added servers are automatically quarantined to prevent Tool Poisoning Attacks (TPAs). Use 'quarantine_security' tool to review and manage quarantined servers. NOTE: Unquarantining servers is only available through manual config editing or system tray UI for security.
Docker Isolation: Use 'isolation_json' parameter to configure per-server Docker images, CPU/memory limits, and network isolation. Example: {"enabled": true, "image": "node:20", "network_mode": "bridge"}.
SMART PATCHING (update/patch): Uses deep merge - only specify fields you want to change. Omitted fields are PRESERVED, not removed. Examples:
Enable server: {"operation": "patch", "name": "my-server", "enabled": true} - only enabled changes
Enable isolation: {"operation": "patch", "name": "my-server", "isolation_json": "{"enabled": true}"} - enables isolation with defaults
Update image: {"operation": "patch", "name": "my-server", "isolation_json": "{"image": "python:3.12"}"} - other isolation fields preserved
Add env var: env_json merges with existing vars
Replace args: args_json replaces entirely (arrays not merged)
Remove field: use 'null' (e.g., isolation_json: "null" removes isolation)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Server URL for HTTP/SSE servers (e.g., 'http://localhost:3001') | |
| name | No | Server name (required for add/remove/update/patch/tail_log operations) | |
| lines | No | Number of lines to tail from server log (default: 50, max: 500) - used with tail_log operation | |
| command | No | Command to run for stdio servers (e.g., 'uvx', 'python') | |
| enabled | No | Whether server should be enabled (default: true) | |
| env_json | No | Environment variables for stdio servers as JSON object (e.g., '{"API_KEY": "value"}'). For update/patch: MERGES with existing vars (new keys added, existing keys updated). | |
| protocol | No | Transport protocol: stdio, http, sse, streamable-http, auto (default: auto-detect) | |
| args_json | No | Command arguments for stdio servers as a JSON array of strings (e.g., '["mcp-server-sqlite", "--db-path", "/path/to/db"]'). For update/patch: REPLACES all existing args (arrays are not merged). | |
| operation | Yes | Operation: list, add, remove, update, patch, tail_log. 'update' and 'patch' use smart merge - only specified fields change, others preserved. For quarantine operations, use the 'quarantine_security' tool. | |
| oauth_json | No | OAuth config as JSON object. MERGES with existing settings. Use 'null' to remove OAuth entirely. Fields: client_id, client_secret, scopes (array - replaces). | |
| headers_json | No | HTTP headers for authentication as JSON object (e.g., '{"Authorization": "Bearer token"}'). For update/patch: MERGES with existing headers (new keys added, existing keys updated). | |
| isolation_json | No | Docker isolation config as JSON object. MERGES with existing settings - only provided fields change. Use 'null' to remove isolation entirely. Example: '{"image": "python:3.12"}' updates only the image. |