Skip to content

bunnysayzz/modelman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Modelman Logo Modelman

npm version npm downloads License: MIT Node.js Version

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.

⚠️ Beta Software β€” Modelman is in active development. Found a bug? Open an issue. Want to contribute? PRs welcome!

Quick Start

🌐 Try instantly (no install):

πŸ‘‰ modelman.run β€” Opens in your browser, ready to test.

Or run locally:

npx -y @portkey-ai/modelman

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, modelman 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 Modelman" links β€” Share servers with a single URL (docs)
  • Persistent state β€” Your servers and tools stay configured between sessions

Architecture

Modelman runs a Node.js backend that acts as the MCP client, eliminating CORS issues when connecting to MCP servers from your browser.

graph TD
    subgraph Browser["Browser React"]
        A[Servers Page]
        B[Tools Page]
        C[Chat Interface]
    end
    
    subgraph Backend["Backend Node.js/Express"]
        D[MCP Client]
        E[OAuth Handler]
        F[JWT Auth]
    end
    
    subgraph MCPServers["MCP Servers"]
        G[Server 1<br/>HTTP/SSE]
        H[Server 2<br/>HTTP/SSE]
        I[Server N<br/>HTTP/SSE]
    end
    
    A --> D
    B --> D
    C --> D
    D --> G
    D --> H
    D --> I
    E --> D
    F --> D
    D --> E
    F -->|HTTP/WebSocket| D
    D -->|HTTP/SSE/stdio| G
    D -->|HTTP/SSE/stdio| H
    D -->|HTTP/SSE/stdio| I
    
    style Browser fill:#e3f2fd
    style Backend fill:#fff3e0
    style MCPServers fill:#f3e5f5
Loading

Architecture highlights:

  • No CORS headaches β€” Backend handles all MCP connections
  • Persistent OAuth tokens β€” Stored securely in SQLite (~/.modelman/modelman-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 modelman.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 ~/.modelman/modelman-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/bunnysayzz/modelman
cd modelman
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 backend
  • npm run backend β€” Backend only
  • npm run dev β€” Frontend only
  • npm run build β€” Build for npm distribution
  • npm run build:cloudflare β€” Build for Cloudflare Workers

Debugging

Modelman includes a client-side logger accessible from the browser console:

modelmanLogger.download()  // Download logs as JSON
modelmanLogger.clear()     // Clear logs

Backend logs are written to backend.log. See logging docs for details.

Documentation

πŸ“š Full Documentation

Why Modelman?

Feature Modelman 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 Modelman" links ❌ Copy-paste configs

FAQ

Does Modelman work with all MCP servers?

Yes! Modelman 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. Modelman runs entirely on your local machine. OAuth tokens are stored in a local SQLite database (~/.modelman/modelman-mcp.db), and all communication happens over localhost. No data is sent to external servers.

Can I use Modelman in production?

Modelman is designed for development and testing. For production deployments, you can deploy Modelman to Cloudflare Workers for your team. See our deployment guide.

How do I test servers that require OAuth?

Just add the server URL. Modelman 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. Modelman manages all connections simultaneously and lets you switch between them instantly.

Does Modelman support resources and prompts?

Not yet, but they're coming soon! Currently, Modelman focuses on tool testing. Resources and prompts are on our roadmap.

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 bunnysayzz β€” Making AI development easier, one tool at a time.

Made this because we were tired of curl-ing MCP servers. Hope it helps!