Scout MCP
Enables remote file operations and command execution on Docker containers via SSH, including file browsing, log viewing, and container management across a fleet of machines
Allows access to Plex server logs and configuration files on remote systems through SSH-based file operations and directory browsing
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Scout MCPshow me the last 50 lines of /var/log/app.log on production-server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Scout MCP
MCP server for remote file operations via SSH. Scout your fleet of machines with a single tool.
Installation
# Clone and install
git clone https://github.com/jmagar/scout_mcp
cd scout_mcp
uv syncConfiguration
Scout MCP reads your ~/.ssh/config to discover available hosts. Optionally configure limits:
# Environment variables (optional)
export SCOUT_MAX_FILE_SIZE=5242880 # 5MB (default: 1MB)
export SCOUT_COMMAND_TIMEOUT=60 # seconds (default: 30)
export SCOUT_IDLE_TIMEOUT=120 # seconds (default: 60)
export SCOUT_MAX_POOL_SIZE=200 # max connections (default: 100)
export SCOUT_ENABLE_UI=true # Enable MCP-UI (default: false)
# Legacy MCP_CAT_* prefix still supported for backward compatibilityCurrent defaults:
Max file size: 1MB (1,048,576 bytes)
Command timeout: 30 seconds
Idle timeout: 60 seconds
Max pool size: 100 connections
Usage
Add to your Claude Code MCP config:
{
"mcpServers": {
"scout_mcp": {
"command": "uv",
"args": ["run", "--directory", "/code/scout_mcp", "python", "-m", "scout_mcp"]
}
}
}Interactive UI (Optional)
Scout MCP provides optional interactive UI components for enhanced file browsing.
Note: UI is disabled by default for better MCP client compatibility. To enable, set SCOUT_ENABLE_UI=true.
File Explorer
Access any directory to see an interactive file explorer:
tootie://mnt/cache/composeFeatures:
Sortable listings
Search/filter
File type icons
Size and dates
Log Viewer
Log files display with syntax highlighting and filtering:
tootie://compose/plex/logs
tootie://var/log/app.logFeatures:
Level filtering (ERROR/WARN/INFO/DEBUG)
Search functionality
Syntax highlighting
Line statistics
Markdown Viewer
Markdown files render with live preview:
tootie://docs/README.mdFeatures:
Live rendered preview
Source view toggle
Syntax highlighting
Proper formatting
File Viewer
Code and text files show with syntax highlighting:
tootie://app/main.pyFeatures:
Language detection
Line numbers
Copy to clipboard
Syntax highlighting
See docs/MCP-UI.md for complete UI documentation.
Tool: scout
List available hosts
scout("hosts")Cat a file
scout("hostname:/path/to/file.log")List a directory
scout("hostname:/path/to/directory")Run a command
scout("hostname:/working/dir", "rg 'pattern' -t py")
scout("hostname:~/code", "find . -name '*.md' -mtime -1")
scout("hostname:/var/log", "tail -100 app.log | grep ERROR")File Transfers
Scout includes beam - a simple file transfer feature using SFTP:
# Upload: local file exists → transfer to remote
mcp__scout__scout(
target="shart:/mnt/cache/docs/report.pdf",
beam="/tmp/local-report.pdf"
)
# Download: local file doesn't exist → download from remote
mcp__scout__scout(
target="squirts:/var/log/app.log",
beam="/tmp/app.log"
)Direction is auto-detected:
Local file exists → Upload (local → remote)
Local file doesn't exist → Download (remote → local)
Remote-to-Remote Transfers
Transfer files directly between two remote hosts using SFTP streaming:
# Transfer between two remote hosts
mcp__scout__scout(
beam_source="shart:/mnt/data/backup.tar.gz",
beam_target="squirts:/backups/backup.tar.gz"
)Features:
Streams data in 64KB chunks (constant memory usage)
No temp files on MCP server
Works for files of any size
Auto-optimizes when MCP server is source or target
Security
Warning: Scout MCP provides remote shell access. Deploy with care.
Quick Security Checklist
Enable API key authentication (
SCOUT_API_KEYS)Enable rate limiting (
SCOUT_RATE_LIMIT_PER_MINUTE)Verify SSH host keys are in
~/.ssh/known_hostsSet
SCOUT_STRICT_HOST_KEY_CHECKING=true(default)Bind to
127.0.0.1if local-only access neededUse SSH keys, not passwords
Limit SSH user permissions on remote hosts
Review
~/.ssh/configfor only necessary hostsCommand injection prevented (allowlist)
SSH host verification enforced (fail-closed)
Docker/Compose names validated
Security Configuration
Variable | Default | Purpose |
| (none) | Comma-separated API keys for authentication |
| 60 | Rate limit per client (requests/minute) |
| ~/.ssh/known_hosts | SSH host key verification |
| true | Reject unknown host keys |
| 0.0.0.0 | Bind address (use 127.0.0.1 for local only) |
| 1048576 | Max file size in bytes (1MB) |
| 30 | Command timeout in seconds |
Built-in Security Features
Scout MCP includes multiple layers of security protection:
API Key Authentication: Optional HTTP header-based authentication (production recommended)
Rate Limiting: Prevents abuse with configurable per-client request limits
SSH Host Key Verification: Validates remote host identity to prevent MITM attacks
Path Traversal Protection: Blocks
../and other escape sequencesCommand Injection Protection: Uses
shlex.quote()for all paths and argumentsInput Validation: Validates hostnames and paths for malicious patterns
File Size Limits: Prevents memory exhaustion attacks
Command Timeouts: Prevents hanging operations
Example: Secure Configuration
# Production deployment (localhost only, strict security)
export SCOUT_API_KEYS="$(openssl rand -hex 32)" # Enable authentication
export SCOUT_RATE_LIMIT_PER_MINUTE=60 # Rate limiting
export SCOUT_HTTP_HOST="127.0.0.1"
export SCOUT_STRICT_HOST_KEY_CHECKING=true
export SCOUT_MAX_FILE_SIZE=5242880 # 5MB
uv run python -m scout_mcpSee SECURITY.md for complete security documentation, threat model, and deployment best practices.
Test Coverage
Total: 74%
Tests: 422 (374 passing)
Last Updated: 2025-12-10
Run tests with coverage:
uv run pytest tests/ -v --cov=scout_mcp --cov-report=term-missing --cov-report=htmlHTML coverage report: open htmlcov/index.html
Development
# Run tests
uv run pytest tests/ -v
# Run tests with coverage
uv run pytest tests/ -v --cov=scout_mcp
# Lint and type check
uv run ruff check scout_mcp/ tests/
uv run mypy scout_mcp/
# Run server locally
uv run python -m scout_mcpLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jmagar/scout_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server