Are you the author? Sign in to claim
mlo-mcp
MCP server for the MyLifeOrganized (MLO) Windows desktop app. AI agents (Claude Code, Codex, Cursor, Claude Desktop — anything that speaks MCP over stdio) manage your MLO task tree by driving mlo.exe's undocumented command line locally. No cloud API, no account, your data never leaves the machine.
gtd-skills repoInstalling is two steps. Step 1 gets you reading — tools that list, search and inspect tasks work as soon as the server is registered. Step 2 enables writing, and it is a one-time setup per profile that cannot be skipped: until it is done, every tool that changes anything refuses.
There is no profile setting. The server operates on whatever profile MLO currently has open (auto-detected from MLO's own settings in the registry) and follows you across profile switches.
Any MCP client (via npx, straight from GitHub — no npm registry):
{
"mcpServers": {
"mlo": {
"command": "npx",
"args": ["-y", "github:govza/mlo-mcp"]
}
}
}
npx caches the GitHub install; pin a tag (github:govza/mlo-mcp#v0.3.0) for reproducibility, and re-run with a newer tag to update.
Claude Code — either register directly:
claude mcp add mlo -- npx -y github:govza/mlo-mcp
or install as a plugin (updates via /plugin update):
/plugin marketplace add govza/mlo-mcp
/plugin install mlo@govza
From a clone (no npx):
git clone https://github.com/govza/mlo-mcp
claude mcp add mlo -- node C:\path\to\mlo-mcp\mcp-server\dist-bundle\mlo-mcp.js
Read tools work now. Ask your agent to list your tasks to confirm.
Writes are applied by MLO's own sync merge rather than by editing your data file, so the server has to sit in the app's sync path before it can change anything. Until this is finished, add_task, update_task, complete_task and friends all refuse with a pointer back here — an ordinary sync alone never enables them.
.ml profile — a file copy while MLO is closed. Do this before the first bootstrap and before any sync experimentation. If you'd rather rehearse, open a copy of your profile in MLO and run the whole procedure against that.127.0.0.1:8181, and leave "Use secure connection" unchecked. This matters: with it checked MLO still syncs fine, but the endpoint only sees an opaque TLS tunnel, so bootstrap and every write silently stay dead. MLO's sync log prints "secure connection is OFF for this sync profile" when it is set correctly.sync tool).cloud_bootstrap — just ask your agent to run it. It pulls your account's complete cloud history so every pre-existing task gets its stable UID and full record.Writes are live from here. Two things worth knowing:
cloud_status reports the binding, the bootstrap lifecycle, the endpoint's cursor and whether the endpoint is up whenever you want to check where things stand.The full rationale, the merge rules, and what each failure mode looks like are in docs/mcp-cloud.md.
None required. The env vars that exist (MLO_EXE_PATH, MLO_CLOUD_PORT, … — all optional) are documented in mcp-server/README.md.
mcp-server/ | Tools reference, configuration, development, tests |
docs/ | The reverse-engineered mlo.exe CLI, XML & .ml binary formats, server architecture, MLO task model |
Everything in docs/ was verified empirically against MLO 15.x on Windows — MLO's CLI is largely undocumented, so the quirk catalog there is the map of what actually works.
Independent project for interoperability and personal use — not affiliated with, authorized by, or endorsed by the makers of MyLifeOrganized. "MyLifeOrganized" and "MLO" are trademarks of their respective owner, used here only to name the app this project interoperates with. It drives a copy of the app you already license and installed, on your own machine and data.
MIT
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows