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.
Hoot.-.Nov.12.mp4
⚠️ Beta Software — Hoot is in active development. Found a bug? Open an issue. Want to contribute? PRs welcome!
🌐 Try instantly (no install):
👉 hoot.run — Opens in your browser, ready to test.
Or run locally:
npx -y @portkey-ai/hootOpens on localhost:8009. One command, zero config.
- 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
- 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
- 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)
- 🦉 "Try in Hoot" links — Share servers with a single URL (docs)
- Persistent state — Your servers and tools stay configured between sessions
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)
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!
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
Hoot includes a client-side logger accessible from the browser console:
hootLogger.download() // Download logs as JSON
hootLogger.clear() // Clear logsBackend logs are written to backend.log. See logging docs for details.
- 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
| 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 |
Does Hoot work with all MCP servers?
Yes! Hoot supports both HTTP and SSE transports, OAuth 2.1, and API key authentication. We auto-detect server configurations to make connection as seamless as possible.
Is my data secure?
Yes. Hoot runs entirely on your local machine. OAuth tokens are stored in a local SQLite database (~/.hoot/hoot-mcp.db), and all communication happens over localhost. No data is sent to external servers.
Can I use Hoot in production?
Hoot is designed for development and testing. For production deployments, you can deploy Hoot to Cloudflare Workers for your team. See our deployment guide.
How do I test servers that require OAuth?
Just add the server URL. Hoot automatically detects OAuth requirements and guides you through the authorization flow. Tokens are stored securely and refreshed automatically.
Can I test multiple servers at once?
Absolutely! Connect to as many servers as you need. Hoot manages all connections simultaneously and lets you switch between them instantly.
Does Hoot support resources and prompts?
Not yet, but they're coming soon! Currently, Hoot focuses on tool testing. Resources and prompts are on our 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!
- 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
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Ways to contribute:
- 🐛 Report bugs and issues
- 💡 Suggest new features
- 📝 Improve documentation
- 🔧 Submit pull requests
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! 🦉
