Go Mode and MCP
mddb is a Go Mode host. The Go Mode Android shell loads mddb's web app and calls its workspace tools through MCP. Voice uses the same tools.
mddb advertises itself
GET /.well-known/gomode.json is public. It names one tool group, workspace, at /api/v1/gomode/mcp, and the voice gateway when voice is on. Forward /.well-known/ through your reverse proxy.
The MCP endpoint requires the same bearer token as the web API. Requests from a browser must come from the server.base_url origin.
Add mddb to the Android shell
- Build and install the Go Mode Android app.
- In the app's Settings, add a service with your mddb
base_urlas the server URL. - Sign in through mddb's page.
The page hands its validated bearer token to the native MCP client and clears it on logout. The phone must reach the URL; Tailscale works well.
Some providers refuse sign-in inside an app. Use a password, or select Sign in with another device and approve the code from a signed-in browser.
Tools follow workspace roles
Every workspace member can call the read tools. Editors and admins also get the edit tools; viewers never see them.
| Tool | Access | Effect |
|---|---|---|
workspaces_list | Read | Lists the workspaces you can access. |
workspace_select | Read | Chooses a workspace for the current conversation. |
nodes_list | Read | Lists the children of a node, or the root nodes. |
node_read | Read | Reads a page or table node, including Markdown content and schema. |
record_read | Read | Reads one table record. |
records_query | Read | Reads a bounded window of records, optionally through a saved view. |
page_create | Edit | Creates a Markdown page under a parent, or at the workspace root. |
table_create | Edit | Creates a table with a column schema. |
node_update | Edit | Replaces a page's title and Markdown body. |
node_append | Edit | Appends Markdown to the end of a page. |
Workspace nodes are also MCP resources, and resource discovery includes nested pages and tables.
Each edit is a commit in the workspace's Git history. When a tool changes a page that is open in the web editor, the editor reports the external change instead of overwriting it.
Each conversation uses one workspace
Voice in the browser works in the workspace you have open. The Android shell's native connection has no fixed workspace:
- With one accessible workspace, the tools use it.
- With several, the workspace open in mddb's page, or the assistant's
workspace_selectcall, chooses it for the conversation.