MongoBuddy is an open-source desktop MongoDB client built for developers who want a snappy, keyboard-first alternative to heavier GUIs. Connect to any MongoDB instance, run queries and aggregations, edit documents inline, and keep your query history β all in a clean native app.
- π Multi-connection manager β save and switch between MongoDB connections, credentials stored locally via
electron-store - β¨οΈ Powerful query editor β CodeMirror 6 with JavaScript/JSON syntax highlighting, autocomplete, bracket matching, undo/redo,
Ctrl+Fsearch andCtrl+Hreplace - π Results table β row numbers, inline document editor, EJSON-aware filters for
find/count/aggregate/distinct - π Query history β per-connection history so you can rerun anything youβve touched before
- π₯ Import dialog β drop in JSON / EJSON documents
- π― Keyboard-first UX β thoughtful focus management (Base UI Dialogs) and shortcuts throughout
- π Dark by default β CodeMirror one-dark theme, easy on the eyes
- π₯ Cross-platform native builds β Windows, macOS (Apple Silicon), and Linux
- π€ Built-in MCP server β point Claude, Cursor, or any MCP client at your live MongoDB connection (read-only tools)
| Connection dialog | Query editor |
|---|---|
| Document editor | Query history |
|---|---|
Grab the latest build from Releases β.
| OS | File | Notes |
|---|---|---|
| πͺ Windows | MongoBuddy-Setup-X.Y.Z.exe |
NSIS installer, x64 |
| π macOS | MongoBuddy-X.Y.Z-arm64.dmg |
|
| π§ Linux | MongoBuddy-X.Y.Z.AppImage or mongo-buddy_X.Y.Z_amd64.deb |
AppImage (portable) or Debian package |
The app is not yet code-signed, so your OS may show a βpublisher unknownβ warning the first time you open it. Thatβs on the roadmap.
- Download the build for your OS from Releases
- Open MongoBuddy
- Add a connection β paste any MongoDB URI (
mongodb://β¦ormongodb+srv://β¦) and hit connect
Thatβs it. Pick a database, pick a collection, and start querying.
MongoBuddy ships with a built-in Model Context Protocol server so you can let Claude, Cursor, or any MCP-aware tool inspect the MongoDB connection you already have open in the app.
The server starts automatically on launch and exposes a Streamable HTTP endpoint:
http://localhost:27099/mcp
The MCP server uses the active connection in the app β open a connection in MongoBuddy and your MCP client will see the same databases and collections. Close the app and the server goes with it.
All tools are read-only. Writes still go through the GUI.
| Tool | Purpose |
|---|---|
list_databases |
List databases on the connected server |
list_collections |
List collections in a database |
sample_fields |
Sample a collection and return its top-level field names |
find |
Query documents (supports filter, sort, skip, limit, EJSON) |
count |
Count documents matching a filter |
aggregate |
Run an aggregation pipeline |
distinct |
Distinct values of a field |
list_indexes |
List indexes on a collection |
| Flag | Default | What it does |
|---|---|---|
--mcp-port=N |
27099 |
Bind the MCP server to port N (1β65535) |
--disable-mcp |
off | Donβt start the MCP server |
For Claude Code, register the server with the claude CLI:
claude mcp add --transport http mongo-buddy http://localhost:27099/mcpFor other MCP clients that support Streamable HTTP, point them at the same URL. If you change the port with --mcp-port=N, update the URL to match.
Want to hack on MongoBuddy? Everything runs locally.
git clone https://github.com/terebentina/mongo-buddy.git
cd mongo-buddy
pnpm install
pnpm dev| Command | What it does |
|---|---|
pnpm dev |
Run the app in development with hot reload |
pnpm build |
Build the app bundles |
pnpm test |
Run main + renderer Vitest suites |
pnpm lint |
ESLint over src/ |
pnpm typecheck |
TypeScript check (node + web) |
pnpm format |
Prettier write |
pnpm release |
Bump version, tag, push β triggers GitHub Actions to build Win/Mac/Linux artifacts and attach them to the release |
src/
βββ main/ # Electron main process β Mongo service, IPC handlers, stores
βββ preload/ # Preload bridge
βββ renderer/ # React 19 + Tailwind UI
βββ shared/ # Shared TypeScript types
We use Conventional Commits β commit-and-tag-version reads them to generate the CHANGELOG and pick the next version.
feat(editor): add bracket matching
fix(connection): handle SRV records with no TXT
Electron 41 Β· React 19 Β· TypeScript Β· Vite Β· Tailwind v4 Β· Base UI Β· CodeMirror 6 Β· MongoDB Node driver 7 Β· Zustand Β· Vitest
Ideas on deck β contributions very welcome:
- macOS Intel (x64) build
- Auto-update via
electron-updater - SSH tunnel support
- Schema visualization
- Export results (CSV / JSON / BSON)
- Code-signed Windows + macOS builds
Open an issue if you want to tackle one β or suggest your own.
PRs are welcome! A few ground rules:
- For anything non-trivial, open an issue first so we can align
- Follow Conventional Commits
- Before opening a PR, run
pnpm lint && pnpm test
A proper CONTRIBUTING.md is on the way.
MIT Β© 2026 Dan Caragea
Built on the shoulders of giants: Electron, MongoDB, CodeMirror, Base UI, Tailwind CSS, and many more.