Things MCP Server

Things MCP Server

Seamless Model Context Protocol integration for managing Things app todos and projects.

6
Stars
3
Forks
6
Watchers
0
Issues
Things MCP Server enables AI assistants to interact with the Things productivity app using the Model Context Protocol (MCP). It offers comprehensive support for Things' URL scheme, allowing creation, updating, and management of todos and projects through standardized commands. The server supports batch operations, advanced organization features, and natural language scheduling, making task automation efficient for MCP-compatible clients.

Key Features

Full Things URL scheme implementation
Create and update todos and projects
Batch operations via JSON interface
Natural language date and time parsing
Advanced organization with tags, areas, headings, checklists
Proper URL encoding and command parsing
Search and navigation of items
Toggle completed and canceled statuses
Integration with Claude Desktop and other MCP clients
Cross-platform command line usage (via npx or npm)

Use Cases

Automated todo creation and updating via AI assistants
Batch management of tasks and projects for productivity workflows
Natural language-driven scheduling and due date assignments
Organizing todos with tags, areas, and headings
Managing Things todos and projects programmatically on macOS
Bulk import or migration of tasks into Things app
Integrating project management with existing MCP-compatible tools
Interactive search and navigation of todos and projects
Automating personal or team productivity workflows using Node.js
Providing a backend for voice or chat-based task management clients

README

Things MCP Server

Trust Score

A Model Context Protocol (MCP) server that provides seamless integration with the Things productivity app. This server enables AI assistants to create, update, and manage your todos and projects in Things using its comprehensive URL scheme.

Features

  • Full Things URL Scheme Support - Complete implementation of all Things URL commands
  • Create Todos - Add single or multiple todos with rich metadata
  • Create Projects - Build projects with nested todos and organization
  • Update Items - Modify existing todos and projects
  • Smart Scheduling - Support for natural language dates and times
  • Advanced Organization - Tags, areas, headings, and checklist items
  • JSON Operations - Complex batch operations via JSON
  • Search & Navigation - Find and show specific items or lists
  • Proper URL Encoding - Handles special characters and spaces correctly

Prerequisites

  • macOS - Required for Things app integration
  • Things 3 - The Things app must be installed and running
  • Node.js - Version 16 or higher
  • MCP Client - Such as Claude Desktop app or any MCP-compatible client

Installation

Using npx (Recommended)

No installation required! Use directly with:

bash
npx things-mcp

Global Installation

bash
npm install -g things-mcp

Configuration

Claude Desktop

Add the server to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Using npx (recommended):

json
{
  "mcpServers": {
    "things": {
      "command": "npx",
      "args": ["-y", "things-mcp"]
    }
  }
}

Using global installation:

json
{
  "mcpServers": {
    "things": {
      "command": "things-mcp"
    }
  }
}

Usage

Once configured, you can interact with Things through your MCP client using natural language. Here are some examples:

Creating Todos

"Create a todo to buy groceries for tonight"
"Add a todo 'Call dentist' with a deadline of next Friday"
"Create multiple todos: milk, bread, eggs in my Shopping project"

Creating Projects

"Create a project called 'Website Redesign' in my Work area"
"Make a project 'Vacation Planning' with todos: book flights, reserve hotel, research activities"

Updating Items

"Update my 'Call dentist' todo to be due tomorrow"
"Add notes to my website project about the new color scheme"
"Mark the groceries todo as completed"

Organization

"Show my Today list"
"Search for all todos tagged with 'urgent'"
"Open the Someday list filtered by work tags"

Available Commands

add-todo

Create a new todo with extensive customization options:

  • title/titles - Single title or multiple titles separated by newlines
  • notes - Rich text notes (max 10,000 characters)
  • when - Natural language scheduling (today, tomorrow, evening, specific dates)
  • deadline - Due dates with natural language support
  • tags - Array of tag names for organization
  • checklist-items - Subtasks within the todo
  • list/list-id - Project or area assignment
  • heading/heading-id - Specific heading within projects
  • completed/canceled - Set completion status
  • show-quick-entry - Show quick entry dialog
  • reveal - Navigate to created todo

add-project

Create a new project with full configuration:

  • title - Project name
  • notes - Project description
  • when - Scheduling options
  • deadline - Project due date
  • tags - Organization tags
  • area/area-id - Area assignment
  • to-dos - Array of todo titles to create within project
  • completed/canceled - Project status
  • reveal - Navigate to created project

update

Modify existing todos:

  • id - Todo ID (required)
  • auth-token - Authorization token (required)
  • title - New title
  • notes/prepend-notes/append-notes - Note modifications
  • when - Reschedule
  • deadline - Change due date
  • tags/add-tags - Tag management
  • checklist-items - Modify checklist
  • list/heading - Move to different location
  • completed/canceled - Status changes
  • duplicate - Create copy before updating

update-project

Modify existing projects with similar options to update command.

show

Navigate to specific items or lists:

  • id - Specific item ID or built-in list (inbox, today, anytime, etc.)
  • query - Search by name
  • filter - Filter by tags

search

Search across all Things data:

  • query - Search terms

json

Advanced batch operations using JSON format for complex project structures.

version

Get Things app and URL scheme version information.

Authorization

Some operations (updates) require an authorization token from Things:

  1. macOS: Things → Settings → General → Enable Things URLs → Manage
  2. iOS: Settings → General → Things URLs

Copy your unique token and use it with update operations.

Getting Item IDs

To update specific items, you need their IDs:

macOS

  • Control-click on todo/project → Share → Copy Link
  • Control-click on list in sidebar → Share → Copy Link

iOS

  • Tap todo/project → toolbar → Share → Copy Link
  • Navigate to list → top right → Share → Copy Link

Error Handling

The server includes comprehensive error handling:

  • Invalid parameters are caught by Zod validation
  • Things URL failures are reported with clear messages
  • Missing authorization tokens are detected
  • Network and system errors are handled gracefully

Examples

Basic Todo Creation

javascript
// Creates a simple todo
{
  "title": "Buy milk",
  "when": "today",
  "tags": ["groceries"]
}

Complex Project Creation

javascript
// Creates a project with multiple todos and organization
{
  "title": "Plan Birthday Party",
  "area": "Personal",
  "when": "next week",
  "to-dos": [
    "Send invitations",
    "Order cake",
    "Buy decorations",
    "Plan menu"
  ],
  "tags": ["family", "celebration"],
  "reveal": true
}

JSON Batch Operation

javascript
// Complex structure with headings and nested todos
{
  "data": JSON.stringify([
    {
      "type": "project",
      "attributes": {
        "title": "Website Redesign",
        "area": "Work",
        "items": [
          {
            "type": "heading",
            "attributes": { "title": "Design Phase" }
          },
          {
            "type": "to-do",
            "attributes": {
              "title": "Create wireframes",
              "when": "today"
            }
          }
        ]
      }
    }
  ])
}

Troubleshooting

Things Not Opening

  • Ensure Things 3 is installed and updated
  • Check that Things URLs are enabled in settings
  • Verify the MCP server is running correctly

Authorization Errors

  • Get your auth token from Things settings
  • Include auth-token parameter for update operations
  • Ensure token is copied correctly without extra spaces

Connection Issues

  • Restart Claude Desktop or your MCP client
  • Check the configuration file syntax
  • Look for errors in client logs

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

License

MIT License - see LICENSE file for details.

Related

Support

  • 🐛 Bug Reports: Open an issue on GitHub
  • 💡 Feature Requests: Open an issue with enhancement label
  • 📚 Documentation: Check the Things URL scheme docs
  • 💬 Questions: Open a discussion on GitHub

Star History

Star History Chart

Repository Owner

Repository Details

Language JavaScript
Default Branch main
Size 22 KB
Contributors 2
MCP Verified Nov 12, 2025

Programming Languages

JavaScript
100%

Tags

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • Plane MCP Server

    Plane MCP Server

    Enables LLMs to manage Plane.so projects and issues via the Model Context Protocol.

    Plane MCP Server provides a standardized interface to connect large language models with Plane.so project management APIs. It enables LLMs to interact directly with project and issue data, supporting tasks such as listing projects, retrieving detailed information, creating and updating issues, while prioritizing user control and security. Installation is streamlined through tools like Smithery, and configuration supports multiple clients including Claude for Desktop.

    • 32
    • MCP
    • kelvin6365/plane-mcp-server
  • MCP Server for Asana

    MCP Server for Asana

    Bridge Asana's API with Model Context Protocol tools for seamless task management.

    MCP Server for Asana provides a Model Context Protocol (MCP) compliant interface to the Asana API, enabling direct interaction with Asana from MCP clients such as Claude Desktop. It offers tools to list, search, retrieve, and create tasks and projects within Asana workspaces, with options for both read and write operations. The server supports advanced task filtering, project searching, and read-only modes for secure testing. Integration facilitates automation and streamlined project management within AI-powered environments.

    • 107
    • MCP
    • roychri/mcp-server-asana
  • MCP Miro Server

    MCP Miro Server

    Miro board integration for AI assistants via Model Context Protocol.

    MCP Miro Server provides a standardized MCP server interface to the Miro platform, enabling AI assistants to access and manage Miro boards programmatically. It supports a wide range of board and item operations, including creating, listing, updating, and deleting boards and their contents. Secure OAuth token access ensures integration with users’ Miro accounts. Designed to work seamlessly with AI tools like Claude Desktop, it allows efficient and automated Miro workspace management.

    • 57
    • MCP
    • k-jarzyna/mcp-miro
  • MCP Linear

    MCP Linear

    MCP server for AI-driven control of Linear project management.

    MCP Linear is a Model Context Protocol (MCP) server implementation that enables AI assistants to interact with the Linear project management platform. It provides a bridge between AI systems and the Linear GraphQL API, allowing the retrieval and management of issues, projects, teams, and more. With MCP Linear, users can create, update, assign, and comment on Linear issues, as well as manage project and team structures directly through AI interfaces. The tool supports seamless integration via Smithery and can be configured for various AI clients like Cursor and Claude Desktop.

    • 117
    • MCP
    • tacticlaunch/mcp-linear
  • Notion MCP Server

    Notion MCP Server

    Enable LLMs to interact with Notion using the Model Context Protocol.

    Notion MCP Server allows large language models to interface with Notion workspaces through a Model Context Protocol server, supporting both data retrieval and editing capabilities. It includes experimental Markdown conversion to optimize token usage for more efficient communication with LLMs. The server can be configured with environment variables and controlled for specific tool access. Integration with applications like Claude Desktop is supported for seamless automation.

    • 834
    • MCP
    • suekou/mcp-notion-server
  • MyMCP Server (All-in-One Model Context Protocol)

    MyMCP Server (All-in-One Model Context Protocol)

    Powerful and extensible Model Context Protocol server with developer and productivity integrations.

    MyMCP Server is a robust Model Context Protocol (MCP) server implementation that integrates with services like GitLab, Jira, Confluence, YouTube, Google Workspace, and more. It provides AI-powered search, contextual tool execution, and workflow automation for development and productivity tasks. The system supports extensive configuration and enables selective activation of grouped toolsets for various environments. Installation and deployment are streamlined, with both automated and manual setup options available.

    • 93
    • MCP
    • nguyenvanduocit/all-in-one-model-context-protocol
  • Didn't find tool you were looking for?

    Be as detailed as possible for better results