此 模型上下文协议 (MCP) 服务器允许您使用 Claude Desktop 与 Things 应用中的任务管理数据进行交互。您可以请求 Claude 创建任务、分析项目、帮助管理优先级等。
该服务器利用了 Things.py 库和 Things URL 方案,并具有以下额外的可靠性特性:
这个 MCP 服务器解锁了 AI 在任务管理中的强大功能:
有多种方式安装和使用 Things MCP 服务器:
pip install things-mcp
或者使用 uv(推荐):
uv pip install things-mcp
安装后,可以直接运行服务器:
things-mcp
如果尚未安装,请安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
之后重启终端。
git clone https://github.com/hald/things-mcp
cd things-mcp
uv venv
uv pip install -r pyproject.toml
运行配置工具来设置您的 Things 认证令牌:
python configure_token.py
这将引导您完成配置 Things 认证令牌的过程,这是 MCP 服务器与您的 Things 应用交互所必需的。
编辑 Claude Desktop 配置文件:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
在配置文件中添加 Things 服务器到 mcpServers 键(确保更新到您安装这些文件的文件夹路径):
{
"mcpServers": {
"things": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/things-mcp",
"run",
"things_server.py"
]
}
}
}
Things URL 方案需要一个认证令牌。您可以在 Things → 设置 → 通用中找到它。
选项 1:通过配置脚本设置
python configure_token.py
选项 2:通过环境变量设置
export THINGS_AUTH_TOKEN="your-token-here"
选项 3:手动创建配置文件
mkdir -p ~/.things-mcp
echo '{"things_auth_token": "your-token-here"}' > ~/.things-mcp/config.json
重启 Claude Desktop 应用以应用更改。
get-inbox - 获取收件箱中的待办事项get-today - 获取今天到期的待办事项get-upcoming - 获取即将到来的待办事项get-anytime - 获取任意时间列表中的待办事项get-someday - 获取某天列表中的待办事项get-logbook - 获取已完成的待办事项get-trash - 获取已删除的待办事项get-todos - 获取待办事项,可选按项目过滤get-projects - 获取所有项目get-areas - 获取所有区域get-tags - 获取所有标签get-tagged-items - 获取具有特定标签的项目search-todos - 通过标题/备注进行简单搜索search-advanced - 多个过滤器的高级搜索get-recent - 获取最近创建的项目add-todo - 创建一个新的待办事项,支持完整的参数add-project - 创建一个新的项目,带有标签和待办事项update-todo - 更新现有的待办事项update-project - 更新现有的项目delete-todo - 删除待办事项(移动到回收站)delete-project - 删除项目(移动到回收站)show-item - 显示 Things 中的具体项目或列表search-items - 在 Things 中搜索项目project_uuid(可选)- 按项目过滤待办事项include_items(可选,默认值:true)- 包含检查清单项目include_items(可选,默认值:false)- 包含包含的项目status - 按状态过滤(未完成/已完成/已取消)start_date - 按开始日期过滤(YYYY-MM-DD)deadline - 按截止日期过滤(YYYY-MM-DD)tag - 按标签过滤area - 按区域 UUID 过滤type - 按项目类型过滤(待办事项/项目/标题)period - 时间周期(例如,'3d','1w','2m','1y')title - 待办事项的标题notes(可选)- 待办事项的备注when(可选)- 调度待办事项的时间(今天、明天、晚上、任意时间、某天,或 YYYY-MM-DD)deadline(可选)- 待办事项的截止日期(YYYY-MM-DD)tags(可选)- 应用于待办事项的标签list_title 或 list_id(可选)- 添加到的项目/区域的标题或 IDheading(可选)- 添加到的标题下checklist_items(可选)- 添加的检查清单项目id - 要更新的待办事项的 IDtitle(可选)- 新标题notes(可选)- 新备注when(可选)- 新调度deadline(可选)- 新截止日期tags(可选)- 新标签completed(可选)- 标记为已完成canceled(可选)- 标记为已取消title - 项目的标题notes(可选)- 项目的备注when(可选)- 调度项目的时间deadline(可选)- 项目的截止日期tags(可选)- 应用于项目的标签area_title 或 area_id(可选)- 添加到的区域的标题或 IDtodos(可选)- 在项目中创建的初始待办事项id - 要更新的项目的 IDtitle(可选)- 新标题notes(可选)- 新备注when(可选)- 新调度deadline(可选)- 新截止日期tags(可选)- 新标签completed(可选)- 标记为已完成canceled(可选)- 标记为已取消id - 要删除的待办事项的 ID(移动到回收站)id - 要删除的项目的 ID(移动到回收站)id - 要显示的项目的 ID,或其中之一:收件箱、今天、即将到来、任意时间、某天、日志簿query(可选)- 可选查询以过滤filter_tags(可选)- 可选标签以过滤Things MCP 服务器需要一个认证令牌来与 Things 应用交互。此令牌用于授权 URL 方案命令。
运行包含的配置工具来设置您的令牌:
python configure_token.py
此交互式脚本会提示您输入令牌,并将其安全地保存在本地配置中。
此项目使用 pyproject.toml 来管理依赖项和构建配置。它是使用 模型上下文协议 构建的,允许 Claude 安全地访问工具和数据。
此项目提供了两种不同的实现方法:
things_server.py)- 原始实现,使用基本的 MCP 服务器模式。things_fast_server.py)- 使用 FastMCP 模式的现代实现,具有基于装饰器的工具注册,代码更简洁且易于维护。# 克隆仓库
git clone https://github.com/hald/things-mcp
cd things-mcp
# 设置带有开发依赖项的虚拟环境
uv venv
uv pip install -e ".[dev]" # 以开发模式安装,带有额外依赖项
使用 MCP 开发服务器测试更改:
# 测试 FastMCP 实现
mcp dev things_fast_server.py
# 或测试传统实现
mcp dev things_server.py
python -m build
twine upload dist/*
需要 Python 3.12+。
get-cache-stats 工具监控缓存性能~/.things-mcp/logs/things_mcp.log~/.things-mcp/logs/things_mcp_structured.json~/.things-mcp/logs/things_mcp_errors.log服务器包括针对以下情况的错误处理:
python configure_token.py 来设置您的令牌get-cache-stats 工具监控缓存统计所有错误都被记录并返回带有描述性消息。要查看 MCP 日志:
# 实时跟随主日志
tail -f ~/.things-mcp/logs/things_mcp.log
# 检查错误日志
tail -f ~/.things-mcp/logs/things_mcp_errors.log
# 查看结构化日志进行分析
cat ~/.things-mcp/logs/things_mcp_structured.json | jq
# Claude Desktop MCP 日志
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
things_dlq.jsonget-cache-stats 工具检查命中率logging_config.py 中将控制台级别设置为 DEBUG