logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

things-mcp-pro

Advanced Model Context Protocol interface for comprehensive management of tasks and projects within the Cultured Code Things application via natural language.

Author

things-mcp-pro logo

excelsier

Other

Quick Info

GitHub GitHub Stars 26
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

fastmcptoolstasksthings fastmcpfastmcp managethings app

Things MCP Server: Advanced Task Management Integration

This implementation serves as a robust Model Context Protocol (MCP) endpoint, facilitating seamless, conversational interaction with your task data managed in the Things 3 application using Claude Desktop. It enables sophisticated operations such as intent-driven task generation, in-depth project portfolio assessment, strategic priority alignment, and complex list manipulation.

This server relies on the foundational Things.py library and adheres strictly to the Things URL Scheme specifications. To ensure enterprise-grade reliability, we have integrated several advanced resilience and performance enhancements:

  • Fault Tolerance: Implements exponential backoff and sophisticated retry loops for transient network or API issues.
  • System Stability: Utilizes the Circuit Breaker pattern to halt outbound calls upon sustained failure, preventing cascading system instability.
  • Operation Archiving: A designated Dead Letter Queue (DLQ) archives operations that cannot be completed for later manual inspection or reprocessing.
  • Data Optimization: Intelligent, context-aware caching layer significantly minimizes latency for read operations.
  • Observability: Comprehensive, structured JSON logging for precise monitoring and debugging.
  • Protocol Bridging: Incorporates an AppleScript bridge as a reliable fallback mechanism when URL scheme interactions prove insufficient.
  • Traffic Control: Fine-grained rate limiting to safeguard the responsiveness of the local Things application.
  • Quality Assurance: Maintained with an exhaustive, continuously updated test suite guaranteeing operational integrity.

The Value Proposition of Things MCP

This advanced server unlocks the full potential of generative AI for personal knowledge and productivity management:

  • Intent-Driven Creation: Translate complex, unstructured natural language instructions directly into fully detailed, correctly structured tasks.
  • Productivity Forensics: Generate insightful analytics and synthesized overviews of project progress and personal productivity trends.
  • Methodology Enforcement: Integrate Claude as an assistant to help structure and enforce methodologies like Getting Things Done (GTD) directly within your Things structure.
  • Zero-Friction Sync: Ensures instantaneous, bi-directional interaction with your established Things 3 data repository.

Core Capabilities

  • Granular access to all primary Things views (e.g., Inbox, Today, Upcoming, custom smart lists).
  • Full lifecycle management for Projects and Areas of Responsibility (AORs).
  • Precise Tag assignment and retrieval operations.
  • Support for complex, multi-parameter filtered searches.
  • Retrieval of recently acted-upon items.
  • Detailed item introspection, including the ability to manage nested checklist components.
  • Full hierarchical support (Areas containing Projects, Projects containing Headings).

Deployment Strategies

Installation can be achieved via two primary methodologies:

Prerequisites

  • Python runtime environment, version 3.12 or newer.
  • Active session with Claude Desktop.
  • Licensed installation of Things 3 (ensure URL scheme activation is enabled in Preferences).
  • A valid Things Authentication Token (essential for write operations).

Installation Command

bash pip install things-mcp-pro

Alternatively, utilizing the high-performance uv installer:

bash uv pip install things-mcp-pro

Server Activation

Execute the installed server entry point:

bash things-mcp-pro

Path B: Source Checkout and Manual Configuration

Prerequisites

  • Python 3.12+.
  • Claude Desktop running.
  • Things 3 configured with URL support.

Phase 1: Tool Acquisition

Use curl to obtain and install the uv package manager, then restart your shell session. bash curl -LsSf https://astral.sh/uv/install.sh | sh

Clone the source code repository: bash git clone https://github.com/hald/things-mcp cd things-mcp

Phase 2: Environment Setup

Initialize the virtual environment and install dependencies in editable mode: bash uv venv uv pip install -e ".[dev]"

Phase 3: Token Configuration

Execute the provisioning script to securely store the necessary authentication credential: bash python configure_token.py

Phase 4: Claude Desktop Integration

Modify the specific configuration file used by Claude Desktop: bash code ~/Library/Application\ Support/Claude/claude_desktop_config.json

Inject the server definition into the mcpServers object, replacing /ABSOLUTE/PATH/TO/PARENT/FOLDER/things-mcp with your actual installation directory:

{ "mcpServers": { "things-pro": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/things-mcp", "run", "things_fast_server.py" ] } } }

Phase 5: Finalization

Restart the Claude Desktop application for the new server binding to take effect.

Example Conversational Prompts

  • "Provide a summary of all tasks scheduled for completion this week across all active initiatives."
  • "Draft a new task detailing the Q3 budget review for the 'Finance' area, assigning it high priority and setting the deadline for the 15th of next month."
  • "Analyze the 'Major Product Launch' project structure and suggest optimization based on the critical path items."
  • "Conduct a complete review based on the PARA methodology using my current inventory in Things."

Advanced Usage Tips

  • Custom Instructions: Define a detailed persona in Claude's custom instructions detailing your preferred Things organizational schema (Areas, project naming conventions, mandatory tags).
  • Multi-Server Orchestration: Combine this service with a calendar MCP server to enable sophisticated scheduling, such as automatically creating prep tasks for upcoming meetings.

Toolset Reference

List Retrieval Functions

  • get-inbox - Fetch contents of the primary Inbox.
  • get-today - Retrieve items flagged for the current day.
  • get-upcoming - Access scheduled and upcoming items.
  • get-anytime - Get items without a specific date constraint.
  • get-someday - Retrieve items relegated to long-term planning.
  • get-logbook - Access archived/completed records.
  • get-trash - View deleted items.

Structural Queries

  • get-todos - Retrieve to-dos, filterable by associated project UUID.
  • get-projects - Fetch the entire project hierarchy.
  • get-areas - Fetch all organizational Areas.

Tag Management

  • get-tags - List all defined tags.
  • get-tagged-items - Retrieve items associated with a specified tag identifier.

Search & Temporal Operations

  • search-todos - Perform straightforward text-based searches on titles/notes.
  • search-advanced - Execute complex, multi-criteria searches (status, date ranges, tags, location).
  • get-recent - Fetch items created or modified within a specified temporal window (e.g., '7d', '1mo').

Mutator Functions

  • add-todo - Instantiates a new to-do item with comprehensive parameter support.
  • add-project - Generates a new project structure.
  • update-todo - Modifies attributes of an existing to-do.
  • update-project - Modifies attributes of an existing project.
  • delete-todo - Marks a to-do item for archival (moves to trash).
  • delete-project - Marks a project for archival.
  • show-item - Opens a specific item, list, or search result directly within the Things application.

Parameter Specification

get-todos

  • project_uuid (optional): UUID used to restrict retrieval to a single project.
  • include_items (optional, default: true): Boolean flag to include checklist sub-tasks.

search-advanced

  • status: Filter criterion: (incomplete|completed|canceled).
  • start_date: ISO date format (YYYY-MM-DD) for filtering by start date.
  • deadline: ISO date format (YYYY-MM-DD) for filtering by due date.
  • tag: Filter based on a specific tag name.
  • area: Filter based on the Area UUID.
  • type: Filter by item category (to-do|project|heading).

add-todo

  • title: Mandatory descriptive name for the task.
  • when (optional): Scheduling instruction ('today', 'tomorrow', 'anytime', 'YYYY-MM-DD').
  • list_title or list_id (optional): Target container (Project or Area name/ID).
  • checklist_items (optional): Array of strings for sub-tasks.

Authentication and Security

Tags must pre-exist within the Things database to be successfully applied. The server includes logic to attempt auto-creation of missing tags; however, persistent failures in tag creation will result in the item being created without those specific tags.

Token Provisioning Guide

The Things URL Scheme necessitates an authorization token for all transactional commands (CRUD operations). If omitted, the Things application will prompt the user for interactive authorization on every attempt.

Token Retrieval Instructions

  1. Launch the Things application on your macOS device.
  2. Navigate to Things → Preferences (or Cmd+,).
  3. Select the General tab.
  4. Verify the Enable Things URLs checkbox is active.
  5. The required authentication token will be explicitly displayed within this preferences pane.

Deployment Methods for the Token

Method 1: Automated Script (Recommended) bash python configure_token.py

This script handles interactive prompting and secure local storage.

Method 2: Environment Variable Setting bash export THINGS_AUTH_TOKEN="your-retrieved-token-here"

Method 3: Direct Configuration File Creation bash mkdir -p ~/.things-mcp echo '{"things_auth_token": "your-retrieved-token-here"}' > ~/.things-mcp/config.json

Development & Architecture Notes

Dependency management is orchestrated via pyproject.toml. This project is engineered around the MCP framework, specifically leveraging the modern FastMCP implementation (things_fast_server.py) which utilizes decorator syntax for cleaner tool registration compared to the traditional things_server.py.

Development Setup

bash

Clone the repository (if starting from source)

git clone https://github.com/hald/things-mcp cd things-mcp

Setup editable environment

uv venv uv pip install -e ".[dev]"

Testing Server Instances

Use the mcp dev utility for rapid iteration:

bash

Test the modern FastMCP server

mcp dev things_fast_server.py

Resilience and Performance Deep Dive

Failure Mitigation Strategies

  • Adaptive Retries: Implements exponential backoff scheduling when encountering temporary API gateway errors or timeouts.
  • Isolation: Circuit breaker logic monitors failure rates to prevent resource exhaustion.
  • DLQ Management: Failed operations are preserved in the DLQ for auditing, ensuring no command is silently lost.
  • Scripted Override: AppleScript provides a robust, lower-level alternative when the primary URL scheme pathway fails unexpectedly.

Optimization Techniques

  • Data Caching: Aggressive caching implemented for read-heavy operations, coupled with TTLs for freshness.
  • Request Throttling: Strict rate limiting applied to prevent request bursts from impacting host application stability.
  • Cache Invalidation: Mechanisms are in place to actively purge caches upon successful write operations.

Diagnostic Tools

  • Structured Telemetry: Detailed, machine-readable JSON logs capture operation timing, status, and context.
  • Log Repository:
  • Primary Logs: ~/.things-mcp/logs/things_mcp.log
  • Structured Logs: ~/.things-mcp/logs/things_mcp_structured.json

Troubleshooting and Diagnostics

The system is instrumented to report failures related to invalid identifiers, missing required payload parameters, database access disruptions, and token authorization errors.

Common Resolution Steps

  1. Token Check: Verify token validity by executing python configure_token.py.
  2. Host Availability: Ensure the Things application is launched and responsive.
  3. Scheme Status: Confirm URL Scheme enablement in Things Preferences.
  4. System Health: Review the status of the Circuit Breaker and inspect the Dead Letter Queue contents.

Log Examination

For real-time operational monitoring:

bash

Monitor primary server activity

tail -f ~/.things-mcp/logs/things_mcp.log

Analyze structured data flow (requires jq)

cat ~/.things-mcp/logs/things_mcp_structured.json | jq

Deep Debugging

  1. DLQ Inspection: Examine things_dlq.json for persistent failures.
  2. Circuit Status: Look for status updates regarding the circuit breaker state in logs.
  3. Cache Metrics: Use the get-cache-stats tool to diagnose hit/miss ratios.

== Contextual Background: Business Management Systems ==

Business management systems encompass the entirety of applications, methodologies, and control structures employed by organizations to maintain competitive viability amid market flux and to drive measurable performance improvements. These solutions span functional silos, covering areas from financial control and resource planning to customer engagement and operational process governance.

Modern business software has evolved rapidly, moving from rudimentary Management Information Systems (MIS) through monolithic Enterprise Resource Planning (ERP) suites, culminating in today's distributed, cloud-native platforms. The success of adopting these powerful tools hinges less on their inherent feature set and more critically on the organization's strategic alignment and the meticulous adaptation of the tool to inherent business workflows.

Selection criteria should prioritize strategic fit over feature novelty, ensuring that the chosen ecosystem supports, rather than dictates, organizational needs. Effective utilization demands a managerial commitment to integrating the technology thoughtfully into the established operational framework.

See Also

`