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 comp
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.
No installation required! Use directly with:
npx things-mcp
npm install -g things-mcp
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"
}
}
}
Once configured, you can interact with Things through your MCP client using natural language. Here are some examples:
"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"
"Create a project called 'Website Redesign' in my Work area"
"Make a project 'Vacation Planning' with todos: book flights, reserve hotel, research activities"
"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"
"Show my Today list"
"Search for all todos tagged with 'urgent'"
"Open the Someday list filtered by work tags"
Create a new todo with extensive customization options:
Create a new project with full configuration:
Modify existing todos:
Modify existing projects with similar options to update command.
Navigate to specific items or lists:
Search across all Things data:
Advanced batch operations using JSON format for complex project structures.
Get Things app and URL scheme version information.
Some operations (updates) require an authorization token from Things:
Copy your unique token and use it with update operations.
To update specific items, you need their IDs:
The server includes comprehensive error handling:
// Creates a simple todo
{
"title": "Buy milk",
"when": "today",
"tags": ["groceries"]
}
// 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
}
// 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"
}
}
]
}
}
])
}
Contributions are welcome! Please:
MIT License - see LICENSE file for details.