Skip to main content
Glama
taskpaper-mcp-server

taskpaper-mcp-server

by kekincai

taskpaper-mcp-server

Model Context Protocol server for automating TaskPaper on macOS.

This server talks to TaskPaper through JavaScript for Automation (osascript -l JavaScript) and TaskPaper's document.evaluate({ script, withOptions }) bridge. It exposes a small set of safe, fixed tools rather than arbitrary TaskPaper JavaScript execution.

Requirements

  • macOS

  • TaskPaper installed

  • Node.js 20+

  • Automation permission for the MCP host to control TaskPaper

Related MCP server: Things MCP

Tools

  • taskpaper_status - check install/running status and open document count

  • taskpaper_read_front_document - read the front document as TaskPaper text

  • taskpaper_read_file - read a .taskpaper file from disk

  • taskpaper_search_items - search tasks. Pass file to search a .taskpaper file directly

  • taskpaper_add_task - add a task to root or a named project. Pass file to edit a .taskpaper file directly; otherwise it tries the front TaskPaper document.

  • taskpaper_complete_task - mark the first matching task as @done(yyyy-mm-dd). Pass file to edit a .taskpaper file directly

  • taskpaper_list_projects - list projects in a .taskpaper file

  • taskpaper_archive_done - move done tasks into an archive project in a .taskpaper file

  • taskpaper_set_filter - set the front document's TaskPaper filter

For reliability, prefer passing an explicit file path. TaskPaper window ordering is not stable enough to make front-document writes the primary workflow.

Development

npm install
npm test
npm run build

Run locally over stdio:

npm run build
node dist/server.js

Example MCP configuration:

{
  "mcpServers": {
    "taskpaper": {
      "command": "node",
      "args": ["/absolute/path/to/taskpaper-mcp-server/dist/server.js"]
    }
  }
}

Example direct file write:

{
  "file": "/Users/you/tasks.taskpaper",
  "project": "Inbox",
  "text": "Buy milk",
  "due": "today",
  "tags": {
    "home": true
  }
}

Humans can ask in natural language, for example "add buy milk to Inbox for today". The model should pass text, project, and friendly metadata such as due, start, or tags; the server writes valid TaskPaper tags like @due(today) into the file.

Example complete task in a file:

{
  "file": "/Users/you/tasks.taskpaper",
  "query": "Buy milk",
  "date": "2026-07-07"
}

Example archive done tasks:

{
  "file": "/Users/you/tasks.taskpaper",
  "archiveProject": "Archive"
}

Available Tools

9 tools
taskpaper_add_taskAdd TaskPaper TaskC

Add a task to the root or a named project in the front TaskPaper document.

Inputs: text (required), due, file, tags, +4 more.

taskpaper_archive_doneArchive Done TaskPaper TasksB

Move done tasks in a TaskPaper file into an archive project.

Inputs: file (required), archiveProject.

taskpaper_complete_taskComplete TaskPaper TaskB

Mark the first item matching a TaskPaper query as done. Pass file to edit a .taskpaper file directly.

Inputs: query (required), date, file.

taskpaper_list_projectsList TaskPaper ProjectsC

List projects in a TaskPaper file.

Inputs: file (required).

taskpaper_read_fileRead TaskPaper FileC

Read a TaskPaper file from disk.

Inputs: file (required).

taskpaper_read_front_documentRead Front TaskPaper DocumentA

Read the serialized text of the front TaskPaper document.

Inputs: no named parameters.

taskpaper_search_itemsSearch TaskPaper ItemsC

Search TaskPaper items. Pass file to search a .taskpaper file directly.

Inputs: query (required), file.

taskpaper_set_filterSet TaskPaper FilterC

Set the item path filter on the front TaskPaper document.

Inputs: query (required).

taskpaper_statusTaskPaper StatusA

Check whether TaskPaper is installed/running and count open documents.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: adding, completing, archiving, listing, reading, searching, filtering, and checking status. No overlap between tools.

    Naming Consistency4/5

    All tools start with 'taskpaper_' and mostly follow verb_noun pattern (e.g., 'add_task', 'complete_task'). However, 'status' is a noun without a verb, and 'archive_done' uses a past participle instead of a clear verb, creating minor inconsistency.

    Tool Count5/5

    9 tools cover the essential operations for a TaskPaper server without being excessive or insufficient. The scope is well-balanced.

    Completeness4/5

    Core operations like read, add, complete, search, filter, and archive are covered. Missing features like task deletion or project creation are notable but not critical for basic workflow.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that enables automation and management of OmniFocus tasks, projects, and tags using natural language and programmable interfaces from VS Code, command line, or any MCP-compatible client.
      12
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      An MCP server for Things 3 on macOS that enables AI assistants to create, read, update, and manage tasks and projects. It utilizes the Things URL scheme for write operations and AppleScript for querying data from the app.
      15
      22 npm
      2
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      An MCP server that enables AI assistants to interact with OmniFocus on macOS via JXA, supporting task, project, folder, tag, perspective, and search operations.
      31
      34 npm
      MIT