bm25-based intelligent tool discovery across federated mcp servers
Implements full-text search indexing using Bleve (Go's BM25 search library) to enable sub-second discovery of tools across all connected upstream MCP servers. Instead of loading all tool schemas into agent context (causing token bloat), MCPProxy maintains an inverted index of tool names, descriptions, and metadata, allowing agents to query 'retrieve_tools' with search terms and receive only relevant results. The system achieves ~99% token reduction while maintaining 43% accuracy improvement over naive schema loading by ranking tools by relevance rather than returning all available tools.
Unique: Uses Bleve-based BM25 indexing with on-demand tool discovery rather than static schema loading, achieving 99% token reduction. Implements lazy tool loading pattern where agents request tools by search query instead of receiving full catalog upfront.
vs alternatives: Reduces token overhead by 99% compared to loading all tool schemas directly, and outperforms naive filtering by using relevance ranking instead of simple string matching.
transparent mcp protocol proxying with multi-server aggregation
Acts as a transparent gateway between AI agents and multiple upstream MCP servers, routing MCP protocol messages (initialize, call_tool, list_resources, etc.) to appropriate upstream servers based on tool ownership. Uses mark3labs/mcp-go library for protocol handling and implements routing logic in internal/server/mcp_routing.go that maintains connection state, handles message serialization/deserialization, and manages request/response correlation across multiple upstream connections. Supports three routing modes: retrieve_tools (search-based discovery), direct (pass-through to specific server), and code_execution (sandboxed tool invocation).
Unique: Implements transparent MCP protocol proxying with support for three distinct routing modes (retrieve_tools, direct, code_execution) managed through internal/server/mcp_routing.go. Uses mark3labs/mcp-go for protocol compliance rather than custom parsing, ensuring compatibility with MCP spec updates.
vs alternatives: Provides transparent multi-server aggregation without requiring agent-side changes, unlike solutions that require agents to manage individual server connections or custom routing logic.
system tray application for macos/windows/linux with quick access
Provides native system tray application (internal/ui/systray/) for quick access to MCPProxy on desktop platforms. Tray app shows proxy status (running/stopped), allows starting/stopping the proxy, and provides quick links to web UI and logs. Implements platform-specific integrations using systray library for native look-and-feel. Supports auto-start on system boot and background operation without terminal window.
Unique: Provides native system tray application with platform-specific integrations for macOS/Windows/Linux, enabling quick access to proxy status and controls without terminal.
vs alternatives: Offers native desktop application for proxy management, whereas most MCP implementations require CLI or web browser access, making MCPProxy more accessible to desktop users.
docker-based process isolation for tool execution with resource limits
Implements optional per-server Docker containerization (internal/config/config.go lines 94-95) that sandboxes tool execution in isolated containers with configurable resource limits (CPU, memory, disk, network). Each tool execution runs in a fresh container with minimal filesystem access, preventing tools from accessing host system or other containers. Supports container image specification per server, allowing different tools to run in different environments (Python 3.9, Node.js 16, etc.). Includes automatic container cleanup and resource monitoring.
Unique: Implements per-server Docker containerization with configurable resource limits and automatic container lifecycle management. Supports custom container images per server for flexible runtime environments.
vs alternatives: Provides Docker-based process isolation with resource limits, whereas most MCP implementations execute tools in-process without isolation, creating security and stability risks.
multi-edition deployment with personal (desktop) and server (multi-user oauth) variants
Supports two deployment editions optimized for different use cases: Personal edition (single-user desktop application with system tray and web UI) and Server edition (multi-user deployment with OAuth2 authentication, session management, and audit logging). Both editions share core MCP proxy logic but differ in authentication, UI, and operational features. Server edition includes multi-user session management (internal/data/session.go) and per-user activity logging for compliance.
Unique: Provides two distinct deployment editions (Personal and Server) with shared core logic but different authentication, UI, and operational features. Server edition includes OAuth2 and multi-user session management.
vs alternatives: Offers both single-user and multi-user deployment options from the same codebase, whereas most MCP implementations require separate products or significant configuration changes for different deployment models.
event-driven architecture with pub/sub system for state changes and notifications
Implements event-driven architecture (internal/runtime/events/) using publish-subscribe pattern for decoupled communication between components. Events are emitted for state changes (server connected/disconnected, tool added/removed, quarantine status changed) and can be subscribed to by multiple handlers (logging, UI updates, external webhooks). Event system supports filtering by event type and source, enabling selective subscription. Supports both in-process pub/sub and optional external event bus integration (Kafka, RabbitMQ).
Unique: Implements pub/sub event system for decoupled communication between components, with support for in-process and external event bus integration. Enables real-time notifications of state changes.
vs alternatives: Provides event-driven architecture for reactive updates, whereas most MCP implementations use polling or require external event systems for state change notifications.
diagnostic and monitoring endpoints with token metrics and health checks
Exposes diagnostic endpoints (/health, /metrics, /diagnostics) providing system health status, token usage metrics, and detailed diagnostics information. Health checks verify connectivity to upstream servers, database availability, and Docker daemon status. Token metrics track LLM token usage across tool calls, enabling cost analysis and optimization. Diagnostics endpoint provides detailed system information (Go version, memory usage, goroutine count) useful for troubleshooting.
Unique: Provides comprehensive health checks, token metrics, and diagnostics endpoints with detailed system information. Integrates with upstream server health monitoring and Docker daemon status.
vs alternatives: Offers built-in monitoring and diagnostics without requiring external tools, whereas most MCP implementations require separate monitoring infrastructure.
automatic quarantine system for malicious tool detection and isolation
Implements a security-first approach where newly connected upstream MCP servers are automatically quarantined until manually approved by an administrator. The quarantine system (internal/server/mcp.go line 46) prevents Tool Poisoning Attacks (TPAs) by preventing tool execution from untrusted servers while still allowing inspection and testing. Works in conjunction with sensitive data detection to identify tools that request credentials, API keys, or other sensitive information, flagging them for review. Uses Docker isolation (optional per-server containerization with resource limits) to sandbox tool execution from quarantined servers.
Unique: Implements automatic quarantine-by-default for all new upstream servers combined with Docker-based process isolation and sensitive data detection. Uses pattern-based analysis to identify credential requests in tool schemas before execution, preventing credential theft attacks.
vs alternatives: Provides defense-in-depth with automatic quarantine + Docker isolation + sensitive data detection, whereas most MCP implementations assume upstream servers are trusted or require manual security review.
+7 more capabilities