Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

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.

README.md

Things MCP Server

![Trust Score](https://archestra.ai/mcp-catalog/jimfilippou__things-mcp)

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:

npx things-mcp

Global Installation

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):

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

Using global installation:

{
  "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

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

Complex Project Creation

// 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

// 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

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Developer Tools servers.