A powerful TUI (Text User Interface) application for discovering, exploring, and proxying local MCP (Model Context Protocol) servers.
- Automatic Discovery: Finds all configured MCP servers from Claude Code and GitHub Copilot IntelliJ
- Server Type Support: Handles stdio, HTTP streaming, and SSE server types
- JSON5 Support: Parses both strict JSON and JSON5 (unquoted keys, comments, trailing commas)
- Config Validation: Validates configuration files with helpful error messages
- Server Overview: Lists all servers with their status, type, and capabilities at a glance
- Detailed Exploration:
- View available tools with descriptions and parameters
- Browse resources with URIs and metadata
- Explore prompt templates with arguments
- Preview prompt outputs in real-time
- Server Aggregation: Combine multiple MCP servers into a single proxy endpoint
- Port Configuration: Choose which port the proxy runs on (default: 3000)
- Granular Filtering: Select which tools, resources, and prompts to expose per server
- Persistent Config: Settings auto-save to
~/.config/mcp-explorer/proxy-config.toml - Dynamic Status: App header shows proxy status and port in real-time
- Advanced Logging: Track all tool calls, resource reads, and prompt requests
- Log Viewer:
- Topbar search with F3 navigation
- Collapsible filter sidebar (Ctrl+F to toggle)
- Expandable entries to view full parameters and responses
- Type filters (Tools, Resources, Prompts, Errors only)
- Search result counter and navigation buttons
- Client connection/disconnection event logging
- Modern TUI: Built with Textual for a responsive, keyboard-driven interface
- Professional Design: Clean, muted color scheme inspired by VS Code
- Error Reporting: Clear error messages for configuration issues and connection failures
Using uv (recommended):
uv pip install -e .Or with standard pip:
pip install -e .Run the application:
mcp-explorer-
Navigation:
↑/↓orj/k: Navigate listsEnter: Select itemEscape: Go backTab: Switch between tabs
-
Global Actions:
r: Refresh server listp: Open Proxy Configurationl: Open Log Viewerq: Quit application
-
In Log Viewer:
F3: Next search resultShift+F3: Previous search resultCtrl+F: Toggle filter sidebar
-
Other:
p: Preview prompt (when viewing a prompt)
MCP Explorer automatically discovers servers from (in order):
- Claude Code:
~/Library/Application Support/Claude/claude_desktop_config.json - GitHub Copilot IntelliJ:
~/.config/github-copilot/intellij/mcp.json - User MCP config:
~/.config/mcp/config.json - Home directory:
~/.mcp/config.json - Current directory:
./mcp.jsonor./.mcp.json
Configuration format:
{
"mcpServers": {
"my-stdio-server": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/server", "server.py"],
"env": {
"API_KEY": "value"
},
"description": "Optional description of the server"
},
"my-http-server": {
"type": "http",
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
},
"description": "HTTP streaming MCP server (FastMCP 2.0)"
},
"my-sse-server": {
"type": "sse",
"url": "http://localhost:8080/sse",
"description": "SSE-based MCP server (legacy)"
}
}
}Supported Server Types:
stdio: Launches a local process and communicates via stdin/stdout (default)http: Connects to a network MCP server via HTTP streaming (FastMCP 2.0 - recommended for production)sse: Connects to a running server via Server-Sent Events (legacy, backward compatibility)
The application follows SOLID principles with a clean separation of concerns:
- Models: Domain entities (Server, Tool, Resource, Prompt)
- Services:
MCPDiscoveryService: Server discovery and initializationMCPClientService: MCP protocol communicationMCPConfigLoader: Configuration file loading
- UI: Textual-based interface with screens, widgets, and dialogs
Install development dependencies:
uv pip install -e ".[dev]"Run tests:
pytestType checking:
mypy mcp_explorerLinting:
✅ HTTP Streaming Servers: Full support for HTTP streaming MCP servers using FastMCP 2.0
✅ StreamableHTTP Transport: Uses the recommended streamablehttp_client for production deployments
✅ Authentication Headers: Support for custom headers including Bearer tokens and API keys
✅ Network Accessibility: Connect to remote MCP servers over HTTP
✅ Bidirectional Streaming: Efficient real-time communication with HTTP servers
✅ Proxy Support: HTTP backend servers fully supported in the MCP proxy
✅ SSE Client Tracking: Log viewer now displays real-time count of connected SSE clients ✅ Connection Event Logging: Track individual client connections and disconnections with timestamps
- docs/HTTP_STREAMING_SUPPORT.md - HTTP streaming server configuration and usage guide ✅ Automatic Middleware: Starlette middleware automatically tracks all SSE connections ✅ Client Statistics: View connected client count prominently in the stats bar
✅ Fixed ESC Navigation: ESC key now works correctly in all detail screens ✅ Fixed Resource Discovery: Server capabilities (tools, resources, prompts) now discovered without errors ✅ JSON5 Support: Handles GitHub Copilot IntelliJ configs with unquoted keys ✅ Multi-format Support: Works with both Claude Code and GitHub Copilot configs
- QUICKSTART.md - Quick start guide with examples
- PROXY_USAGE_GUIDE.md - Complete guide to using the MCP Proxy feature
- docs/CONFIG_FORMATS.md - Configuration format reference
