MCP Testing Tool — Like Postman, but for the Model Context Protocol.
Overview
— Like Postman, but for the Model Context Protocol. Test, debug, and explore MCP servers with a beautiful interface. No AI chat needed. https://github.com/user-attachments/assets/e3add38e-9636-4f40-99d8-f4a2b8f0f056 — Hoot is in active development. Found a bug? Open an issue. Want to contribute? PRs welcome! 👉 — Opens in your browser, ready to test. Opens on localhost:8009. One command, zero config. - — HTTP and SSE transport support - — Just paste a URL, Hoot figures out the rest - — Test tools with parameters and view responses - — Everything is clipboard-ready - with automatic discovery and compliance testing (docs) - — Secure local authentication - — Built-in security features - — Safe for local development
README
🦉 Hoot
MCP Testing Tool — Like Postman, but for the Model Context Protocol.
Test, debug, and explore MCP servers with a beautiful interface. No AI chat needed.
https://github.com/user-attachments/assets/e3add38e-9636-4f40-99d8-f4a2b8f0f056
⚠️ Beta Software — Hoot is in active development. Found a bug? Open an issue. Want to contribute? PRs welcome!
Quick Start
🌐 Try instantly (no install):
👉 hoot.run — Opens in your browser, ready to test.
Or run locally:
npx -y @portkey-ai/hoot
Opens on localhost:8009. One command, zero config.
Features
Core Testing
- Connect to any MCP server — HTTP and SSE transport support
- Auto-detection — Just paste a URL, Hoot figures out the rest
- Execute tools — Test tools with parameters and view responses
- Copy-paste friendly — Everything is clipboard-ready
Authentication & Security
- OAuth 2.1 with automatic discovery and compliance testing (docs)
- JWT-based sessions — Secure local authentication
- Rate limiting & audit logs — Built-in security features
- Localhost-only by default — Safe for local development
Smart Features
- Intelligent tool filtering — Context-aware tool selection powered by AI
- Chat interface — Test tools conversationally with LLM assistance
- Keyboard shortcuts — Lightning-fast navigation (docs)
- 8 beautiful themes — Light & dark modes for every preference (docs)
Sharing & Collaboration
- 🦉 “Try in Hoot” links — Share servers with a single URL (docs)
- Persistent state — Your servers and tools stay configured between sessions
How It Works
Hoot runs a Node.js backend that acts as the MCP client, eliminating CORS issues when connecting to MCP servers from your browser.
Browser (React) → Backend (Node.js/Express) → MCP Servers
Architecture highlights:
- No CORS headaches — Backend handles all MCP connections
- Persistent OAuth tokens — Stored securely in SQLite (
~/.hoot/hoot-mcp.db) - Session-based auth — JWT tokens for secure frontend-backend communication
- Edge-ready — Deploy to Cloudflare Workers for global hosting (guide)
Data Persistence
On hoot.run:
- Server configs & tools — Saved in browser localStorage
- OAuth tokens — Managed by the hosted backend
- Chat history — Preserved in localStorage
On local (npx/npm):
- Server configs & tools — Saved in browser localStorage
- OAuth tokens — Stored in
~/.hoot/hoot-mcp.db(persists across npx runs) - Chat history — Preserved in localStorage
Your servers stay configured between sessions!
Development
Run from source:
git clone https://github.com/Portkey-AI/hoot
cd hoot
npm install
npm run dev:full
- Backend runs on
localhost:8008 - Frontend runs on
localhost:8009
Available scripts:
npm run dev:full— Run both frontend and backendnpm run backend— Backend onlynpm run dev— Frontend onlynpm run build— Build for npm distributionnpm run build:cloudflare— Build for Cloudflare Workers
Debugging
Hoot includes a client-side logger accessible from the browser console:
hootLogger.download() // Download logs as JSON
hootLogger.clear() // Clear logs
Backend logs are written to backend.log. See logging docs for details.
Documentation
- Quick Start Guide — Get up and running in 5 minutes
- Try in Hoot — Share servers with one-click links
- Authentication — OAuth 2.1 and API key setup
- Themes — Customize your interface
- Keyboard Shortcuts — Work faster
- Architecture — How Hoot is built
- Security — Security features and best practices
- Cloudflare Deployment — Deploy to the edge
Why Hoot?
| Feature | Hoot | Manual curl/testing |
|---|---|---|
| OAuth 2.1 support | ✅ Automatic discovery & flow | ❌ Manual token management |
| Transport auto-detection | ✅ HTTP/SSE auto-detected | ❌ Manual configuration |
| Visual interface | ✅ Beautiful UI | ❌ Terminal only |
| Tool filtering | ✅ AI-powered context-aware | ❌ None |
| Session persistence | ✅ Configs & tokens saved | ❌ Reauth every time |
| Share configurations | ✅ One-click “Try in Hoot” links | ❌ Copy-paste configs |
FAQ
Roadmap
We’re working towards full MCP specification support. Coming soon:
- Resources — MCP resource listing and reading
- Prompts — MCP prompt testing and execution
- Electron desktop app — Native app with stdio transport support
- Collaborative workspaces — Share server configs with teams
Want to contribute? Check out CONTRIBUTING.md or open an issue with feature requests!
Technology Stack
- Frontend — React 19, TypeScript, Vite, Zustand
- Backend — Node.js, Express, MCP SDK
- Database — SQLite (better-sqlite3)
- Deployment — npm, Cloudflare Workers + Durable Objects
- AI — Workers AI for semantic tool filtering
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Ways to contribute:
- 🐛 Report bugs and issues
- 💡 Suggest new features
- 📝 Improve documentation
- 🔧 Submit pull requests
License
MIT License — see LICENSE for details.
Built by Portkey — Making AI development easier, one tool at a time.
Made this because we were tired of curl-ing MCP servers. Hope it helps! 🦉
Install
npx -y @portkey-ai/hoot