v0.6.0
A browser dashboard, and the first proof your setup actually speaks MCP. Still 23 tools and
2 prompts — nothing about querying your databases changed, but read the behaviour changes
below: the server now hosts the dashboard by default.
Added
-
A browser dashboard — the CLI's equal, clickable. One page on
http://127.0.0.1:31415, in three sections:- Databases — add, edit, remove and test your connections without hand-editing
connections.json. A stored DSN is never shown, by anything, ever: the field is
write-only, so an edit form starts blank and leaving it blank keeps the DSN already
saved. A connection's name is fixed once created (to rename, remove and re-add), and
fallback ports can be set or changed from here. A name that is blank, padded with
spaces, or contains a/is refused: the dashboard could save one, but could never
edit, test or remove it again. - Clients — the same nine MCP clients the wizard knows, each with inject/uninject
buttons and the exact command and arguments that client would launch. A client
whose config file cannot be parsed is listed and explained, never written to — the same
refusalsetupandclientsmake. - Verify & Doctor — the live verification below, plus the full
doctorsweep with the
sameok/warn/fail/skippedfindings the CLI prints.
- Databases — add, edit, remove and test your connections without hand-editing
-
Live MCP verification — "does the binary my client launches actually answer?" For each
detected client, the dashboard spawns the exact command and arguments stored in that
client's own config and holds a real MCP conversation with it using the SDK's own client
library:initialize, thentools/list(23 expected), then a reallist_databasescall.
The verdict is one ofanswers,launch_failed,handshake_failed,wrong_tool_count,
timeout— evidence, not a guess. The dashboard never answers from its own process, so a
client pointed at a different install is caught rather than masked. One more button runs
the same check over the HTTP (SSE) transport (port_in_usewhen port 8000 is already
taken). -
Stale-install detection. When the server a client launches reports a different version
than the dashboard itself is running, the result is flagged as stale with the upgrade
command — the "you upgraded but that client still starts the old copy" case, now visible
per client rather than inferred. -
db-conn-mcp guiopens the dashboard: it reuses the one a running server is already
hosting, or starts a standalone one (which shuts itself down after 15 idle minutes) and
opens your browser at it.db-conn-mcp setupnow ends with a tip pointing at the command,
so a first-time user discovers the dashboard instead of never hearing about it. -
A dashboard tab left open from before a restart says so. Each start mints a fresh
token, so an old tab's requests are refused; the page now shows a single banner asking
you to rundb-conn-mcp guiagain, instead of every panel failing for no stated reason.
Breaking / Behaviour changes
-
Starting the MCP server now also starts a local dashboard listener on
127.0.0.1:31415. Every server start hosts the dashboard alongside the MCP protocol;
the first server process to start wins the port and the rest skip it silently, so several
clients running the server at once still means exactly one dashboard. It listens on
loopback only — no connection from another machine can reach it — and every request,
including the page itself, must carry a secret token generated at start-up and stored in a
user-only file at~/.db-conn-mcp/gui-token. To turn it off, add--no-guito the
db-conn-mcp command in your client's config. If port 31415 is already taken by something
else on your machine, the server simply carries on without a dashboard. -
The server now reports its own version to your MCP client. During the initialize
handshake,serverInfo.versionused to be the version of the underlying MCP SDK (e.g.
1.27.2) because the SDK fills that in when a server does not supply one. It is now the
db-conn-mcp version (e.g.0.5.6). If you script against that field, expect our version
there from now on — and it finally lets a client tell which build of db-conn-mcp it is
talking to.
Changed
- Three dependencies are now declared explicitly:
starlette,uvicornand
httpx. All three already arrived withmcp, but the dashboard imports them
directly, and an import of ours must not rest on somebody else's transitive pin. db_conn_mcp.server.run()takes a newgui=Truekeyword (the CLI passesnot --no-gui).
Calling it as before is unchanged apart from the listener described above.