What happened?
Scanning the remote Notion MCP server skips all three installed Docker scanners, although Docker is running and global Docker isolation and deep scanning are enabled. The error recommends a per-server Docker setting that cannot fix an HTTP server.
Environment: MCPProxy v0.66.1 (personal), darwin/arm64; Docker daemon 29.8.0 (docker info succeeds). Endpoint: https://mcp.notion.com/mcp, protocol http, no per-server isolation override. Installed scanners: mcp-ai-scanner, nova-proximity, ramparts.
The built-in scanner completes: 45 tool definitions exported, 21 low-severity warnings. This report concerns scanner execution, not the validity of those warnings.
Code trace and regression history
The release history points to commit 72a51c1e36293b1809f2595878a650fe56b87c63, merged in #781.
- First stable tag containing the change:
v0.47.0.
- First release candidate:
v0.47.0-rc.1.
v0.46.0 does not contain this scanner isolation-mode check.
- The same blocking logic is present in the
v0.67.0 source. Runtime reproduction was on v0.66.1; the other versions were checked through source history.
Call path:
internal/server/server.go sets SetIsolationModeResolver to call IsolationManager.ResolveMode for the scanned server.
- In v0.66.1,
internal/config/isolation_resolve.go forces mode none when ServerConfig.Command is empty. This includes remote HTTP servers, even with an explicit per-server Docker mode.
internal/security/scanner/engine.go rejects Docker scanners when that resolved mode is none or sandbox.
The original resolver in v0.47.0 has the same empty-command check in internal/upstream/core/isolation.go.
Temporary alternative
mcpproxy security scan notion --scanners tpa-descriptions completes with zero failed scanners. It runs only the built-in scanner and does not restore Docker scan coverage.
Expected behavior
Docker scanners that support captured tool definitions should run in local containers when Docker is available and deep scanning is enabled. A remote server does not need local process isolation for its captured metadata to be scanned.
If a scanner requires unavailable source code, report that specific limitation. Do not suggest an isolation override that the resolver ignores.
Suggested fix: separate permission and availability checks for Docker scanner execution from the target server’s effective process isolation. Preserve explicit scanner security policy. Add regression coverage for a remote HTTP server with no command, working Docker, and deep scanning enabled. Test the error guidance for remote servers as well.
Steps to reproduce
- Start Docker and confirm that
docker info succeeds.
- Enable deep scanning and install
mcp-ai-scanner, nova-proximity, and ramparts.
- Configure and authenticate the remote Notion MCP server with the relevant settings below.
- Run
mcpproxy security scan notion, or start the scan from the UI.
- Observe that all three Docker scanners are marked failed and skipped with isolation mode
none.
Relevant configuration (authentication omitted):
{
"docker_isolation": { "enabled": true },
"security": { "deep_scan": { "enabled": true } },
"mcpServers": [
{
"name": "notion",
"url": "https://mcp.notion.com/mcp",
"protocol": "http",
"enabled": true
}
]
}
MCPProxy version
MCPProxy v0.66.1 (personal) darwin/arm64
Operating system
macOS
Relevant logs
Docker-based scanner mcp-ai-scanner skipped: isolation mode "none" runs no Docker containers, so Docker scanner plugins cannot run for this server. In-process scanners still ran. To run Docker scanners, set isolation.mode to "docker" for this server on a host with a working Docker daemon. See docs/errors/MCPX_DOCKER_SNAP_APPARMOR.md.
The same error occurs for nova-proximity and ramparts.
tpa-descriptions: completed
in-process tool-description scan: 21 finding(s)
Pre-submission checklist
What happened?
Scanning the remote Notion MCP server skips all three installed Docker scanners, although Docker is running and global Docker isolation and deep scanning are enabled. The error recommends a per-server Docker setting that cannot fix an HTTP server.
Environment: MCPProxy v0.66.1 (personal), darwin/arm64; Docker daemon 29.8.0 (
docker infosucceeds). Endpoint: https://mcp.notion.com/mcp, protocolhttp, no per-server isolation override. Installed scanners:mcp-ai-scanner,nova-proximity,ramparts.The built-in scanner completes: 45 tool definitions exported, 21 low-severity warnings. This report concerns scanner execution, not the validity of those warnings.
Code trace and regression history
The release history points to commit 72a51c1e36293b1809f2595878a650fe56b87c63, merged in #781.
v0.47.0.v0.47.0-rc.1.v0.46.0does not contain this scanner isolation-mode check.v0.67.0source. Runtime reproduction was onv0.66.1; the other versions were checked through source history.Call path:
internal/server/server.gosetsSetIsolationModeResolverto callIsolationManager.ResolveModefor the scanned server.internal/config/isolation_resolve.goforces modenonewhenServerConfig.Commandis empty. This includes remote HTTP servers, even with an explicit per-server Docker mode.internal/security/scanner/engine.gorejects Docker scanners when that resolved mode isnoneorsandbox.The original resolver in v0.47.0 has the same empty-command check in
internal/upstream/core/isolation.go.Temporary alternative
mcpproxy security scan notion --scanners tpa-descriptionscompletes with zero failed scanners. It runs only the built-in scanner and does not restore Docker scan coverage.Expected behavior
Docker scanners that support captured tool definitions should run in local containers when Docker is available and deep scanning is enabled. A remote server does not need local process isolation for its captured metadata to be scanned.
If a scanner requires unavailable source code, report that specific limitation. Do not suggest an isolation override that the resolver ignores.
Suggested fix: separate permission and availability checks for Docker scanner execution from the target server’s effective process isolation. Preserve explicit scanner security policy. Add regression coverage for a remote HTTP server with no command, working Docker, and deep scanning enabled. Test the error guidance for remote servers as well.
Steps to reproduce
docker infosucceeds.mcp-ai-scanner,nova-proximity, andramparts.mcpproxy security scan notion, or start the scan from the UI.none.Relevant configuration (authentication omitted):
{ "docker_isolation": { "enabled": true }, "security": { "deep_scan": { "enabled": true } }, "mcpServers": [ { "name": "notion", "url": "https://mcp.notion.com/mcp", "protocol": "http", "enabled": true } ] }MCPProxy version
MCPProxy v0.66.1 (personal) darwin/arm64
Operating system
macOS
Relevant logs
Pre-submission checklist
mcpproxy doctorand reviewed the output