Skip to main content
TaskForge 3.0: your AI can read your tasks.

Let an agent run your to-do list

Looking for a todo MCP server that acts on real files instead of a hosted database? taskforge ships one as a subcommand, taskforge mcp --stdio, for your Obsidian vault. Point Claude Desktop or another MCP client at it and the agent adds, searches, edits, and completes tasks through a small set of tools. It runs on your machine and edits the same markdown files the app does. No hosted server, no API key.

MCP or the CLI?

Prefer the MCP tools when your agent already has an MCP connection to TaskForge. They are typed, return structured errors the agent can self-correct against, and need nothing on your PATH. Reach for the CLI instead from shell contexts with no MCP connection: scripts, cron, CI, or a coding agent working in a repo checkout. Both drive the same engine with identical semantics, so pick whichever your runtime already has wired up. Editing vault files by hand is the last resort.

Install

Recommended: npx

Install Node.js (including npm and npx), then add this to your MCP client's config. npx fetches taskforge-md on first run.

Claude Desktop, one click

Prefer a guided install? Download the taskforge bundle (the .mcpb file) and open it. Claude Desktop walks you through the setup and asks for your vault folder.

{
  "mcpServers": {
    "taskforge": {
      "command": "npx",
      "args": ["-y", "taskforge-md", "mcp", "--stdio"],
      "env": {
        "TASKFORGE_VAULT": "/path/to/your/vault"
      }
    }
  }
}

On Windows, use cmd /c in front of npx. Desktop MCP clients like Claude Desktop start the server without a shell, and npx is a .cmd script Windows will only run through one:

{
  "mcpServers": {
    "taskforge": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "taskforge-md", "mcp", "--stdio"],
      "env": {
        "TASKFORGE_VAULT": "C:\\path\\to\\your\\vault"
      }
    }
  }
}

Built taskforge from source instead of using npx? Point the config at the binary directly:

"command": "taskforge",
"args": ["mcp", "--stdio"]

Desktop only, since that is where MCP clients live. taskforge ships as a single native binary for macOS and Windows, and the MCP server is one of its subcommands. Linux is coming soon.

The full tool set

30 tools in total, covering the whole task and note lifecycle: create, read, update, complete, archive, and delete, each with a bulk variant; move, reparent, and convert between an inline line and a task file; create, rename, delete, and edit notes without breaking a link; a lint check before you write a line; a doctor call for vault health; and dialect and spaces resources so the agent learns your format before it acts. The six below are the ones you will reach for most. Every call re-reads the vault from disk, so the agent always acts on the current files.

query_tasks Search and filter tasks, or read a saved list. Read-only. read-only
get_task Read one task and its content hash. Read-only. read-only
add_task Create a task in the vault's default target, in your format. writes
update_task Change a task's status, priority, due date, title, or tags. writes
complete_task Complete a task; returns the next occurrence if it recurs. writes, not idempotent
delete_task Delete a task. The model must echo the exact current title back, a guard against acting on a stale or hallucinated id. destructive

Each tool carries annotations, so a client knows at a glance which calls only read, which write, and which one deletes. The rest of the set adds bulk_add_tasks, bulk_update_tasks, bulk_complete_tasks, bulk_delete_tasks, get_tasks, archive_task, move_task, bulk_move_tasks, convert_task, bulk_convert_tasks, outdent_task, bulk_reparent_tasks, lint_task, doctor, list_spaces, get_dialect, create_note, read_note, update_note, patch_note_block, patch_note_frontmatter, normalize_references, delete_note, and move_note.

Three resources

Alongside the tools, the server exposes read-only context so the agent learns your vault's rules before it acts:

taskforge://dialect The machine-readable task dialect: status symbols, date format, custom fields, write targets.
taskforge://agents-guide The plain-language guide to your vault's task conventions.
taskforge://spaces Your saved spaces and how to add a task to each one.

One requirement: the vault contract

The server reads the contract files TaskForge writes into your vault, TaskForge/Settings/dialect.json and TaskForge/Settings/agents.md, to learn your exact task format. Open the vault in TaskForge 3.0 or later at least once, go to Settings, AI & Agents, and leave "Generate agent files" on. If the vault has never been opened in a recent build, the server falls back to generic defaults and warns the client. These paths use the default base folder; if you renamed it, use that folder instead.

If it cannot find your vault

The server always starts, even before it knows where your vault is, so Claude Desktop never shows an opaque "server failed to start". When a tool call cannot resolve a vault, it returns a plain error the agent can relay: set the TASKFORGE_VAULT environment variable to your vault path, or reinstall the bundle and enter the vault directory when prompted.

Local only

The TaskForge MCP server runs locally and reads and writes your vault's Markdown files. Installing through npx downloads the package from npm. Your AI client may send tool inputs and results to its provider; its privacy settings still apply. Your existing vault sync carries edits between devices.

Prefer a terminal?

If you want to script your tasks or run one-off commands rather than drive them from an agent, the taskforge CLI covers the same vault with the same rules.

Install the taskforge CLI →

Questions people ask

What is the taskforge MCP server?

It is a local Model Context Protocol server built into the taskforge binary. Run it with taskforge mcp --stdio and an MCP client like Claude Desktop can add, find, edit, complete, move, and delete the tasks and notes in your Obsidian vault through 30 typed tools, single and bulk. It is a to-do list your agent can act on, not just read.

Which MCP clients does it work with?

Any client that speaks MCP over stdio. Claude Desktop is the common one, and Claude Code, Cursor, and VS Code (for GitHub Copilot) all take the same config. Each gets the same 30 tools and three resources.

Is this a hosted or remote MCP server?

No. It runs on your machine over stdin and stdout and only touches the vault folder you point it at. There is no URL to host, no API key, and no TaskForge account. That is the point: your to-do list stays on your disk.

Do I need to install anything?

The npx setup requires Node.js with npm and npx. Then your client can run npx -y taskforge-md mcp --stdio to fetch and start the server. Claude Desktop users can instead open a native .mcpb bundle, which does not require Node.js.

The client says the server cannot find my vault. What now?

The server always starts, so the client never shows an opaque "failed to start". When a tool call cannot resolve a vault, it returns a plain message: set the TASKFORGE_VAULT environment variable to your vault path, or reinstall the bundle and enter the vault directory when prompted.

Does it need the vault contract files?

Yes, to match your format. It reads TaskForge/Settings/dialect.json and TaskForge/Settings/agents.md, generated when you open the vault in TaskForge 3.0 or later with "Generate agent files" on. Without them it still runs but falls back to generic defaults and warns the client it is guessing.

The agent acts on the list. The app keeps it.

The MCP server writes to your vault; TaskForge turns those files into lists, widgets, and reminders across your devices. Free to download on iPhone, iPad, Mac, Android, and Windows.