SupaThings MCP

SupaThings MCP

SupaThings MCP is a macOS server that enables AI agents to read and manage Things 3 data by combining SQLite-based queries with official URL-scheme commands. It provides over 30 tools for project structural analysis and task placement, allowing agents to understand and interact with tasks while maintaining safe interoperability.

Category
访问服务器

README

SupaThings MCP

npm version License Node

SupaThings MCP is a Things 3 MCP server for macOS.

It was built to solve a practical gap: AI agents can write to Things via things:///, but they cannot reliably understand your real project structure from URL commands alone.

SupaThings combines SQLite-based reads with official URL-scheme writes, so agents can both understand and act safely.

Table of Contents

Quick Start

1) Run with npx (no install)

npx -y supathings-mcp

2) Global install from npm

npm install -g supathings-mcp

Alias also available:

things-mcp

3) Build from source

npm install
npm run build
node dist/index.js

4) MCP config example

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

5) Configure MCP in your client (copy/paste)

Codex:

codex mcp add supathings -- npx -y supathings-mcp

Claude Code:

claude mcp add --transport stdio supathings -- npx -y supathings-mcp

Gemini CLI:

gemini mcp add -s user supathings npx -y supathings-mcp

What This MCP Server Does (and Why It Exists)

MCP servers expose tools over a standard protocol so AI clients can call them programmatically.

In Things, there are two realities:

  • The things:/// URL scheme is excellent for creating/updating/navigating items.
  • URL commands alone do not expose full structural context (project hierarchy, headings, checklist relationships, planning summaries).

SupaThings was built to bridge that split.

Technical approach:

  • Read path: query local Things SQLite data for structure and context.
  • Write path: execute official things:/// URL actions for safe interoperability.
  • Planning path: add semantic tools for heading inference, validation, project summaries, and task placement.

Why this is useful in practice:

  • Better decisions: agents can place tasks under the right heading.
  • Lower token usage: compact structural answers instead of large raw dumps.
  • Safer automation: writes stay on official Things-supported surfaces.
  • More predictable workflows: clear split between data understanding and data mutation.

Current Scope (v0.4.0)

Current release: 0.4.0

Shipped scope today:

  • Tool surface: 37 MCP tools
  • Read model: local Things SQLite database (areas, projects, headings, todos, tags, checklist items)
  • Write model: official things:/// URL scheme
  • Semantic layer: heading inference, heading validation, project structure summaries, task placement suggestions
  • Optional AppleScript actions: runtime-gated

Current boundaries:

  • macOS + local Things installation required
  • recurring template rows are intentionally excluded from read queries
  • headings are easiest to guarantee at project creation time
  • adding missing headings to existing projects remains constrained by Things capabilities

How It Works

Three-layer model:

  • SQLite layer for rich reads of local Things data
  • things:/// layer for writes, updates, moves, and navigation
  • AppleScript layer for optional lightweight app actions (show-quick-entry, log-completed, empty-trash)

This split is deliberate: read from local truth, write through supported Things APIs.

Things-Native Philosophy

SupaThings is opinionated here: Things should be treated like Things.

Headings are modeled as semantic groupings (categories, work blocks, deliverables), not as a Jira-style workflow board by default.

That changes:

  • how headings are inferred
  • how project summaries are generated
  • how task placement is suggested

Recommended Workflows

New project with headings

Use when the project does not exist yet:

  1. suggest-headings
  2. create-project-with-headings
  3. optionally verify with get-projects or get-project-structure

Existing project missing headings

Use when the project already exists but needs structure:

  1. get-headings or suggest-headings
  2. create missing headings manually in Things
  3. validate-headings
  4. create or move tasks into those headings

Why: creating headings is most reliable during brand-new project creation.

Existing project with structure already in place

  1. get-project-structure
  2. summarize-project
  3. suggest-task-placement
  4. create or move tasks into the chosen headings

Available Tools

Current exposed tools: 37

Category Tools
Read and inspection app-status, version, get-areas, get-tags, get-projects, get-headings, get-project-structure, get-todos, get-inbox, get-today, get-upcoming, get-anytime, get-someday, get-logbook, get-trash, get-tagged-items, get-recent, search-todos, search-items, search-advanced
Semantic planning suggest-headings, validate-headings, suggest-task-placement, summarize-project
Write and navigation add-todo, add-project, create-project-with-headings, update, update-project, update-todo, show, show-item, search, json
Optional AppleScript show-quick-entry, log-completed, empty-trash

If Apple Events are unavailable, these fail gracefully.

Token and Context Efficiency

SupaThings is designed to reduce context burn in AI workflows.

Current efficiency features:

  • concise text responses
  • structured payloads without duplicating full JSON in text output
  • detail: "compact" | "full" on major read/search tools
  • limit on major list/search tools
  • get-project-structure for lightweight structural inspection
  • summarize-project for planning-focused summaries
  • suggest-task-placement for semantic placement suggestions

Requirements

  • macOS
  • Things 3 installed locally
  • Node.js 22+
  • npm 10+
  • Apple Events permission only if you want optional AppleScript actions

Build and Smoke Tests

npm run build
npm run smoke
npm run smoke:mcp

Smoke coverage includes:

  • server startup over stdio
  • tool listing
  • Things app availability
  • SQLite access
  • project and heading inspection
  • semantic tools (suggest-headings, get-project-structure, suggest-task-placement, summarize-project)

Packaging and Release

Create local tarball

npm pack

Full release guide

See:

  • docs/PUBLISHING_GUIDE.md

Quick release summary:

  1. Validate build and smoke tests.
  2. Commit and push to your GitHub repo.
  3. Create and push an annotated tag (for example v0.4.0).
  4. Create a GitHub release from that tag.
  5. Publish to npm (npm publish --access public).
  6. Verify npx -y supathings-mcp and client setup commands.

Project Structure

Attribution

This project builds on prior work and ideas from:

Licensing and attribution details are included in LICENSE and NOTICE.

Support

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

License

Apache-2.0. See LICENSE and NOTICE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选