Things MCP Server
# Things MCP Server
[](https://badge.fury.io/js/@wenbopan%2Fthings-mcp)
[](https://opensource.org/licenses/MIT)
[](https://www.apple.com/macos/)
Control your Things.app tasks directly from Claude Code, Claude Desktop, Cursor, and other AI assistants using the Model Context Protocol (MCP).
## What It Does
This MCP server lets AI assistants interact with your Things.app tasks on macOS. You can:
- **Create** new tasks and projects
- **Update** existing items
- **View** your task database with detailed summaries
- **Schedule** tasks for specific dates
- **Organize** with areas, tags, and deadlines
## Quick Start
### 1. Get Things Authorization Token
For updating existing tasks, you need an authorization token:
1. Open **Things.app** on macOS
2. Go to **Things → Preferences → General**
3. Check **"Enable Things URLs"**
4. Copy the authorization token that appears
### 2. Configure Your AI Assistant
<details>
<summary><strong>Claude Desktop</strong></summary>
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):
```json
{
"mcpServers": {
"things": {
"command": "npx",
"args": ["@wenbopan/things-mcp"],
"env": {
"THINGS_AUTH_TOKEN": "your-token-here"
}
}
}
}
```
</details>
<details>
<summary><strong>Cursor IDE</strong></summary>
Create `.cursor/mcp.json` in your project or `~/.cursor/mcp.json` globally:
```json
{
"things": {
"command": "npx",
"args": ["@wenbopan/things-mcp"],
"env": {
"THINGS_AUTH_TOKEN": "your-token-here"
}
}
}
```
</details>
### 3. Restart Your AI Assistant
After configuration, restart your AI assistant to load the MCP server.
## Use Cases
### Daily Planning
"Show me my today's tasks and create a project for the new marketing campaign with initial tasks for research, design, and content creation."
### Project Management
"Update the mobile app project to add design review and testing tasks, then schedule the design review for next Monday."
### Task Organization
"Move all my unscheduled shopping tasks to the 'Personal' area and tag them with 'weekend'."
### Progress Tracking
"Give me a summary of all active projects with their deadlines and completion status."
### Quick Capture
"Create a task to call the dentist, schedule it for tomorrow, and set a deadline for end of week."
## License
MIT
## Contributing
Issues and pull requests welcome! Please ensure all tests pass before submitting.TDQS
Scored across 6 tools
Each tool has a clear and distinct purpose: adding projects/todos, updating them, exporting data, and generating summaries. There is no overlap or ambiguity between these actions.
All tools follow a consistent verb_noun pattern using snake_case (e.g., add_project, update_todo, export_json). The naming is predictable and uniform across the entire set.
With 6 tools, the server is well-scoped for a personal task management system. It covers core CRUD (without delete) for projects and todos, plus export and summary utilities—each tool earns its place.
The tool set covers creation, retrieval (via summary and export), and update for projects and todos, but missing delete operations for both. Additionally, there are no dedicated tools for managing areas or tags independently, which limits lifecycle coverage.