Readme
mcpeek - MCP Server Inspector
A Rust CLI tool for inspecting and interacting with Model Context Protocol (MCP) servers.
Features
Installation
cargo build -- release
The binary will be available at target/ release/ mcpeek .
Usage
Launch the interactive terminal interface to explore an MCP server:
mcpeek < server-command> [ server- args...]
Examples:
# Connect to a Node.js MCP server
mcpeek node /path/to/server.js
# Connect to a Python MCP server
mcpeek python -m my_mcp_server
# With uvx
mcpeek uvx mcp-server-git
TUI Controls:
Tab / ←/ → : Switch between tabs (Tools, Prompts, Resources, Server Info, Logs)
↑/ ↓ : Navigate items in lists (or scroll logs in Logs tab)
Enter : View detailed information about selected item
C : Call/execute the selected tool (in Tools tab)
E : Jump to end of logs (in Logs tab)
R : Refresh current tab
Esc : Close detail view or cancel tool call input
Q : Quit application
Tool Calling (in Tools tab):
When you press C on a selected tool:
An input form appears showing all tool parameters
Navigate between fields using Tab / Shift+ Tab
Type values directly into each field
Required fields are marked as "(required)"
Press Enter to execute the tool call
Press Esc to cancel
Results are displayed in the detail view
Tabs:
Tools : Browse and inspect available tools, execute tool calls with interactive parameter input
Prompts : View prompts and their arguments
Resources : List available resources
Server Info : Display server capabilities and version information
Logs : View server stderr output in real-time (automatically captures server logs)
Debug Mode
Enable debug logging to stderr:
mcpeek -- debug node server.js
Architecture
src/
├── main. rs # CLI entry point and TUI event loop
├── mcp/
│ ├── mod . rs # Module exports
│ ├── client. rs # MCP client with JSON - RPC over stdio
│ └── protocol. rs # MCP protocol types and messages
└── tui/
├── mod . rs # TUI module exports
├── app. rs # Application state management
└── ui. rs # UI rendering logic
Key Components
MCP Client (mcp/client.rs ) :
Manages subprocess lifecycle
Handles JSON-RPC communication over stdio
Implements async message passing with tokio
Provides high-level methods for MCP operations
Protocol Types (mcp/protocol.rs ) :
Comprehensive type definitions for MCP protocol
JSON serialization/deserialization with serde
Supports initialize, tools, prompts, and resources capabilities
TUI (tui/ ) :
Built with ratatui for rich terminal interfaces
Tab-based navigation between different MCP capabilities
Detail views for in-depth item inspection
Real-time error handling and loading states
Live log viewer that captures server stderr output
MCP Protocol Support
This tool implements the MCP protocol version 2024 - 11 - 05 and supports:
✅ Server initialization and capability negotiation
✅ Tools (list, call)
✅ Prompts (list, get)
✅ Resources (list, read)
✅ Server information display
Requirements
Rust 2021 edition or later
An MCP-compatible server to connect to
Development
Run in development mode:
# Run the TUI
cargo run -- <server-command> [args...]
# With debug logging
cargo run -- --debug <server-command> [args...]
License
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Areas for enhancement:
Support for additional MCP protocol features
Enhanced error recovery
Resource subscription support
Sampling capabilities
Configuration file support
Advanced input types (arrays, nested objects) in tool call forms
Made with ❤️. Fueled by ☕️ and 🤖.