@portkey-ai/hoot
v0.13.0
Published
Postman for MCP Servers - A fast, lightweight testing tool with full OAuth 2.1 support
Downloads
502
Readme
🦉 hoot
⚠️ early beta - things might break. if they do, open an issue.
🤝 contributions welcome - see something that could be better? PRs are appreciated!
testing tool for MCP servers. like postman but for MCP.
https://github.com/user-attachments/assets/e3add38e-9636-4f40-99d8-f4a2b8f0f056
why
needed a quick way to test MCP servers without spinning up a whole AI chat interface.
install
npx -y @portkey-ai/hootthat's it. opens on localhost:8009
or install globally if you want:
npm install -g @portkey-ai/hoot
hootwhat works
- connect to MCP servers (http/sse)
- auto-detection - just paste a URL, we figure out the rest
- see what tools they have
- execute tools with params
- view responses
- oauth 2.1 if your server needs it
- copy stuff to clipboard
- 🦉 "try in hoot" links - share servers with just a URL (docs)
- 8 beautiful themes - light & dark modes (docs)
how it works
runs a node.js backend that connects to MCP servers (because CORS is annoying). react frontend talks to the backend over localhost.
browser → backend → mcp serversno cors issues. backend handles oauth tokens in sqlite.
persistence
- server configs & tools: saved in browser localStorage (survives page refreshes)
- oauth tokens: stored in
~/.hoot/hoot-mcp.db(persists across npx runs)
your servers stay configured between sessions, even when running with npx!
running from source
git clone <repo>
npm install
npm run dev:fullbackend runs on 8008, frontend on 8009.
debugging
there's a logger in the console:
hootLogger.download() // get logs🔒 security
hoot includes built-in security features for safe local development:
- ✅ session-based authentication
- ✅ rate limiting
- ✅ audit logging
- ✅ localhost-only access
runs securely on your local machine. read more
what's missing
- resources (coming)
- prompts (coming)
- more tests (working on it)
tech
react 19, typescript, vite, zustand, express, MCP SDK
license
MIT
made this because i was tired of curl-ing MCP servers. hope it helps.
