Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/wbopan/things-cloud-mcp/claude-mdgit clone --depth 1 https://github.com/wbopan/things-cloud-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/wbopan/things-cloud-mcp/claude-md)<a href="https://agentmods.dev/instructions/wbopan/things-cloud-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/wbopan/things-cloud-mcp/claude-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.01517 | $0.01517 |
| Opus 5 | $0.00758 | $0.00758 |
| Sonnet 5 | $0.00303 | $0.00303 |
| Haiku 4.5 | $0.00152 | $0.00152 |
Grade A, and why
things-cloud-mcp CLAUDE.md scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
**Do NOT use the Things Cloud MCP tools directly** (e.g. `things_find_tasks`, `things_edit_item`) for testing during development. Those call the deployed production instance, which does not reflect local code changes. Al How it starts
The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Build & Run
/usr/local/go/bin/go build -o things-cloud-mcp . # build
./things-cloud-mcp # run (default port 8080)
No linter configured. Run tests with /usr/local/go/bin/go test ./.... Verify build with go build ./....
Environment variables: PORT (default 8080), JWT_SECRET (base64, auto-generated if unset), DATA_DIR (default data/, for SQLite), THINGS_DEBUG (enables SDK debug logging).
Architecture
Single-package Go MCP server (~3 files): main.go (tools + state), oauth.go (OAuth 2.1 + JWT), landing.go (web UI).
Multi-user data flow:
- HTTP request arrives with
Authorization: Basic(email:password) orBearer(JWT from OAuth flow) UserManager.httpContextFunc()stores credentials in contextwrap()extracts user →UserManager.GetOrCreateUser()→ per-userThingsMCPinstance (cached by email)- Each
ThingsMCPholds its ownthingscloud.Client,thingscloud.History(sync cursor), andmemory.State(in-memory task graph) - Read handlers call
syncAndRebuild()then querystate.Tasks; write handlers callwriteAndSync()
Key SDK types (from github.com/arthursoares/things-cloud-sdk):
Task.CreationDateistime.Time(non-nullable);ScheduledDate,DeadlineDate,CompletionDateare*time.TimeTaskType: 0=task, 1=project, 2=heading.TaskStatus: 0=pending, 2=canceled, 3=completedTaskSchedule: 0=inbox, 1=anytime, 2=someday.Task.StartBucket: 0=default, 1=tonight (wire:sb)
MCP Tool Design
Before adding or modifying MCP tool definitions, check the MCP builder skill for current guidelines on tool naming, parameter descriptions, enum design, output structure, and behavioral annotations.
Coding Patterns
Tool handlers follow: func (t *ThingsMCP) handle<Name>(ctx, req) (*CallToolResult, error). Tool definitions use mcp.NewTool() with mcp.WithString/WithBoolean params. All registered via wrap() which handles user extraction. Exception: things_diagnose uses a custom handler with extractCredentials() because it needs raw email/password to create a fresh diagnostic client.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 79 lines · 1,517 tokens per session scan A 26f141287046
things-cloud-mcp CLAUDE.md is an instructions file published in the GitHub repository wbopan/things-cloud-mcp (24 stars, last pushed 16d ago), licensed MIT. It adds 1,517 tokens to every session, about $0.0076 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
mcp-server-things CLAUDE.md
Claude Code instructions for ebowman/mcp-server-things, covering things 3 mcp server - ai assistant instructions, project overview, ✨ latest features (v1.7.0), architecture and development guidelines.
things-mcp CLAUDE.md
Instructions for wbopan/things-mcp, covering claude.md, development commands, essential commands, testing commands and memories.
mcp-server-things AGENTS.md
AGENTS.md instructions for ebowman/mcp-server-things, covering agent instructions, quick reference, non-interactive shell commands, force overwrite without prompting and for recursive operations.
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).