Borrowing it
Nothing to install: this file belongs to mjucius/cozi_mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/mjucius/cozi_mcp/main/CLAUDE.mdgit clone --depth 1 https://github.com/mjucius/cozi_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/mjucius/cozi_mcp/claude-md)<a href="https://agentmods.dev/instructions/mjucius/cozi_mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/mjucius/cozi_mcp/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/mjucius/cozi_mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/mjucius/cozi_mcp/claude-md.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.03369 | $0.03369 |
| Opus 5.5 | $0.01348 | $0.01348 |
| Sonnet 5.5 | $0.00674 | $0.00674 |
| Haiku 4.5 | $0.00337 | $0.00337 |
Grade A, and why
cozi_mcp CLAUDE.md scanned grade A with 0 findings 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 22d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 120 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.
Project Overview
Node 20+/TypeScript MCP server that exposes Cozi Family Organizer (lists + calendar) to AI assistants. Distributed two ways: MCPB bundle (drag-and-drop into Claude Desktop) and npx @mjucius/cozi-mcp for any other MCP client. Smithery distribution was dropped in 2.2.3 (zero installs, and its stale listings leaked into the official MCP Registry — #14); don't re-add a registry without a reason to expect users there.
v2.0 (2026-05) is a ground-up Node/TypeScript rewrite of the prior Python v1. The runtime changed AND the tool surface was consolidated (14 → 12 tools, slim projections). See README.md for the v1→v2 migration table. Legacy Python source is preserved at git tag v1.0.0.
Development Commands
npm install— install dependenciesnpm test— vitest (214 tests, mocksCoziClientat the boundary; no creds needed)npm run test:live— live conformance suite against the real Cozi API (tests/live/; readscreds.envorCOZI_USERNAME/COZI_PASSWORD, skips without them). ~43 tests, ~2.5 min, self-cleaning. Required before every release — see Testing.npm run typecheck—tsc --noEmitnpm run build— tsup →dist/server.js+dist/bin.jsnpm run dev— local stdio dev (needsCOZI_USERNAME+COZI_PASSWORDenv vars)npm run bundle:mcpb— producescozi-mcp.mcpbat repo root
Architecture
Core components
src/server.ts—createServer({ config })factory, called bybin.ts. Per-credentialsMap<string, CoziClient>cache so concurrent sessions stay isolated.src/bin.ts— npx + MCPB stdio entry point (#!/usr/bin/env node). ReadsCOZI_USERNAME/COZI_PASSWORDenv vars, instantiatescreateServer, pipes toStdioServerTransport.src/instructions.ts—SERVER_INSTRUCTIONSconstant injected into the MCP server.src/cozi/— Inlined Cozi HTTP client. No separate npm package. Cozi API access lives here.client.ts—CoziClientclass (auth with cookie refresh + list/item/calendar CRUD, calendar search). Every request carries the apikey.http.ts— fetch wrapper with per-client cookie jar, 100ms rate-limit gate, 3-attempt retry/backoff, 401-once-then-reauth.models.ts— Zod schemas with.transform()for camelCase↔snake_case wire mapping.appointment-payloads.ts—toApiCreate/Edit/DeleteFormat()builders for the three Cozi appointment payload shapes.errors.ts—CoziErrorhierarchy.
src/tools/— 15 MCP tools. Each tool has a*Handlerfunction (directly testable) and aregister*Tool(server, getClient)registrar.projections.ts—slimPerson/slimListSummary/slimItem/slimAppt. Wire keys are exact strings (type,item_count,all_day— notlistType,itemCount,allDay).parsers.ts—parseIsoDateTime,parseListType.untrusted.ts—toolResultreturns two text blocks:content[0]is the boundary-fenced Cozi data,content[1]a local-time stamp fromlocalNow()(host clock;TZoverrides) so assistants with a UTC clock resolve "tomorrow" correctly.
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.
- 22d ago Changed · +7 lines · +785 tokens per session 619f8615aa1d
- 25d ago Changed · +1 lines · +69 tokens per session e3ff11a007b9
- 26d ago Changed · -6 lines · -53 tokens per session 897a640789c6
- 1mo ago Changed · +12 lines · +631 tokens per session 80b5fdcf2c9f
- 1mo ago Changed · +1 lines · +31 tokens per session 8b4af7f4fdf0
- 1mo ago Changed · +2 lines · +232 tokens per session 1eb0840f91ae
- 2mo ago First seen · 103 lines · 1,674 tokens per session scan A f1ee77ed8760
cozi_mcp CLAUDE.md is an instructions file published in the GitHub repository mjucius/cozi_mcp (6 stars, last pushed 22d ago), licensed MIT. It adds 3,369 tokens to every session, about $0.0135 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
cozi_mcp CLAUDE.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| cozi_mcp CLAUDE.mdmjucius/cozi_mcp | Instructions file | 6 | 22d ago | MIT | A | 3,369 | Claude Code |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | yesterday | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |