A Postman-style developer console for testing and debugging Model Context Protocol (MCP) servers. Built as a Tasklet instant app.
| Feature | Description |
|---|---|
| 🔍 Tool Browser | Search and browse all MCP tools with category grouping |
| 📝 Request Builder | JSON editor with auto-populated schemas from tool definitions |
| 📊 Response Viewer | Syntax-highlighted JSON responses with error detection |
| ⏱️ Timing Metrics | Response time tracking for every request |
| 📜 Request History | Scrollable history bar with status badges |
| ⚙️ Connection Settings | Configurable server URL and bearer token via modal |
| 🔄 Cold Start Detection | Automatic retry on 503 responses (common with sleeping servers) |
| 📁 Preset Categories | Tools organized by domain — extensible for any MCP server |
📸 Coming soon — screenshots of the three-panel layout, tool browser, and response viewer.
git clone https://github.com/guitarbeat/mcp-dev-console.gitcp .env.example .env
# Edit .env with your MCP server URL and tokenCopy the files to your Tasklet workspace:
/agent/home/apps/mcp-dev-console/
The app will appear in the preview panel. It auto-connects on launch using the settings modal (⚙️).
- Browse tools in the left sidebar
- Select a tool to see its schema
- Edit the JSON arguments
- Execute and inspect the response
mcp-dev-console/
├── app.tsx # Main app — connection state, layout, tool routing
├── types.ts # Shared TypeScript interfaces
├── styles.css # Custom styles (extends DaisyUI)
├── components/
│ ├── ToolSidebar.tsx # Left panel — search, categories, tool list
│ ├── RequestPanel.tsx # Center panel — schema, editor, response viewer
│ └── HistoryBar.tsx # Bottom bar — request history timeline
├── utils/
│ ├── mcp.ts # MCP client — session mgmt, JSON-RPC, transport
│ └── presets.ts # Tool category presets (extensible)
├── .env.example # Configuration template
├── .github/
│ ├── ISSUE_TEMPLATE/ # Bug report & feature request templates
│ └── pull_request_template.md
├── CONTRIBUTING.md # Contribution guidelines
└── LICENSE # MIT License
The console communicates with MCP servers using the Streamable HTTP transport:
┌─────────────┐ initialize ┌─────────────┐
│ Dev Console │ ──────────────► │ MCP Server │
│ │ ◄────────────── │ │
│ │ session-id │ │
│ │ │ │
│ │ tools/list │ │
│ │ ──────────────► │ │
│ │ ◄────────────── │ │
│ │ tool schemas │ │
│ │ │ │
│ │ tools/call │ │
│ │ ──────────────► │ │
│ │ ◄────────────── │ │
│ │ result/error │ │
└─────────────┘ └─────────────┘
- Initialize — Handshake via
initializeJSON-RPC, capturesMcp-Session-Idheader - Discover — Fetches full tool catalog via
tools/list - Execute — Sends
tools/callwith user-provided arguments - Display — Renders response with syntax highlighting and error detection
The tool presets in utils/presets.ts organize tools into categories. To add presets for your own MCP server:
// utils/presets.ts
export const TOOL_PRESETS: Record<string, ToolPreset> = {
'my-tool': {
description: 'What this tool does',
category: '🔧 My Category',
args: { param: 'default-value' }
},
// ... more tools
};Tools not matching any preset are automatically grouped under "Other".
- React 18 + TypeScript — UI framework
- DaisyUI + Tailwind CSS — Component styling
- JSON-RPC 2.0 — MCP protocol wire format
- curl — HTTP transport via Tasklet sandbox
See CONTRIBUTING.md for development setup, code style, and PR guidelines.
MIT © Aaron L Woods