{"_id":"@chainframe/donelog-mcp-server","_rev":"3-64a3f4e765b010054eed9322ad7a941e","name":"@chainframe/donelog-mcp-server","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@chainframe/donelog-mcp-server","version":"0.1.0","keywords":["mcp","donelog","ai","agent","productivity","logging","model-context-protocol"],"author":{"name":"Nitin Shukla"},"license":"MIT","_id":"@chainframe/donelog-mcp-server@0.1.0","maintainers":[{"name":"nitinpshukla","email":"nitin@chainframe.com"}],"homepage":"https://www.npmjs.com/package/@chainframe/donelog-mcp-server","bugs":{"url":"https://github.com/nitinshukla/donelog/issues"},"bin":{"donelog-mcp-server":"dist/index.js"},"dist":{"shasum":"79a65a771347589effb9407f235d807577be68e9","tarball":"https://registry.npmjs.org/@chainframe/donelog-mcp-server/-/donelog-mcp-server-0.1.0.tgz","fileCount":74,"integrity":"sha512-+aEMMLm2xNjzuiMNiCy6Wg0wupsRyfuZIzH1/5uNbq++f7mHWWFcp8NoUdWGVoZroZUKupCtg8h76BL+9FZuAg==","signatures":[{"sig":"MEUCIQCU75LZehwXd/rsPkovIpKq8HBrStovKiehtgwRq7r9ngIgQvFVHVGLIPj5sPBrXVtN4HbRHN65VnyZureEOBTRgps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100931},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"bb477c724b58513814e05f9f48aaf12cfe8b0f5c","scripts":{"dev":"tsc --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsc && chmod +x dist/index.js","test:watch":"vitest"},"_npmUser":{"name":"nitinpshukla","email":"nitin@chainframe.com"},"repository":{"url":"git+https://github.com/nitinshukla/donelog.git","type":"git","directory":"mcp-server"},"_npmVersion":"10.7.0","description":"MCP server for DoneLog — lets AI agents read and write accomplishment entries.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"zod":"^3.24.2","better-sqlite3":"^11.9.1","@modelcontextprotocol/sdk":"^1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.1","typescript":"^5.8.2","@types/node":"^22.13.14","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/donelog-mcp-server_0.1.0_1775451982082_0.06902059587123488","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @chainframe/noatery-mcp-server; install the new package instead."},"0.1.1":{"name":"@chainframe/donelog-mcp-server","version":"0.1.1","keywords":["mcp","donelog","ai","agent","productivity","logging","model-context-protocol"],"author":{"name":"Nitin Shukla"},"license":"MIT","_id":"@chainframe/donelog-mcp-server@0.1.1","maintainers":[{"name":"nitinpshukla","email":"nitin@chainframe.com"}],"homepage":"https://www.npmjs.com/package/@chainframe/donelog-mcp-server","bugs":{"url":"https://github.com/nitinshukla/donelog/issues"},"bin":{"donelog-mcp-server":"dist/index.js"},"dist":{"shasum":"d676c99d7d72fd8d0b1fb5ba9f8559e77c89ff3b","tarball":"https://registry.npmjs.org/@chainframe/donelog-mcp-server/-/donelog-mcp-server-0.1.1.tgz","fileCount":78,"integrity":"sha512-TtmkKP6EFQoh9tOinhpMne5xcZ/HfQDGUomej1CSaxE7rr5kleojReTv8K5TvN6mwVw7x30ji2tG/u1p38Uyxg==","signatures":[{"sig":"MEUCIQCrewWmEcuJXfpmurZKYjGSKTFikkahuB+nKwAcWMnteAIgB6nz7Uklrx1yTQKv+NWhDBqwyF6OToLDbJjUMhKUMnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111795},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"e9b828361b87fc58ad66570da720f971781623a0","scripts":{"dev":"tsc --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsc && chmod +x dist/index.js","test:watch":"vitest"},"_npmUser":{"name":"nitinpshukla","email":"nitin@chainframe.com"},"repository":{"url":"git+https://github.com/nitinshukla/donelog.git","type":"git","directory":"mcp-server"},"_npmVersion":"10.7.0","description":"MCP server for DoneLog — lets AI agents read and write accomplishment entries.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"zod":"^3.24.2","better-sqlite3":"^11.9.1","@modelcontextprotocol/sdk":"^1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.1","typescript":"^5.8.2","@types/node":"^22.13.14","@types/better-sqlite3":"^7.6.12"},"_npmOperationalInternal":{"tmp":"tmp/donelog-mcp-server_0.1.1_1776093146488_0.8202116141722202","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @chainframe/noatery-mcp-server; install the new package instead."}},"time":{"created":"2026-04-06T05:06:21.946Z","modified":"2026-04-23T13:39:58.476Z","0.1.0":"2026-04-06T05:06:22.228Z","0.1.1":"2026-04-13T15:12:26.618Z"},"bugs":{"url":"https://github.com/nitinshukla/donelog/issues"},"author":{"name":"Nitin Shukla"},"license":"MIT","homepage":"https://www.npmjs.com/package/@chainframe/donelog-mcp-server","keywords":["mcp","donelog","ai","agent","productivity","logging","model-context-protocol"],"repository":{"url":"git+https://github.com/nitinshukla/donelog.git","type":"git","directory":"mcp-server"},"description":"MCP server for DoneLog — lets AI agents read and write accomplishment entries.","maintainers":[{"name":"nitinpshukla","email":"nitin@chainframe.com"}],"readme":"# @chainframe/donelog-mcp-server\n\nMCP server for [DoneLog](https://github.com/nitinshukla/donelog) — lets AI agents read and write accomplishment log entries without invoking the UI.\n\n---\n\n## What it does\n\nDoneLog is a local-first macOS menu-bar app for logging what you shipped each day. This MCP server exposes DoneLog's SQLite database over the [Model Context Protocol](https://modelcontextprotocol.io), so AI agents (Cursor, Claude Code, Codex, and others) can create, search, update, and delete log entries on your behalf.\n\nAll agent-created entries are marked with `origin: \"mcp\"` in the database and are expected to include `#agent` (plus source and model tags) in their text so you can tell them apart in the DoneLog UI.\n\n---\n\n## Prerequisites\n\n- **DoneLog** must be installed and opened at least once (so it can create and migrate the database).\n- **Node.js ≥ 20**.\n- macOS (DoneLog is macOS-only).\n\n---\n\n## Installation\n\n**Global (recommended for faster startup):**\n\n```bash\nnpm install -g @chainframe/donelog-mcp-server\n```\n\n**Via npx (no install required, slower first run):**\n\n```bash\nnpx @chainframe/donelog-mcp-server\n```\n\n---\n\n## Configuration\n\nAdd the server to your AI tool's MCP config. Replace `npx @chainframe/donelog-mcp-server` with `donelog-mcp-server` if you installed globally.\n\n### Cursor\n\nCreate or edit `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (per-project):\n\n```json\n{\n  \"mcpServers\": {\n    \"donelog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"]\n    }\n  }\n}\n```\n\n### Claude Code\n\nCreate `.mcp.json` in your project root, or add to `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"donelog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"]\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"donelog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"]\n    }\n  }\n}\n```\n\n### Codex\n\nEdit `~/.codex/config.toml`:\n\n```toml\n[[mcp_servers]]\nname = \"donelog\"\ncommand = \"npx\"\nargs = [\"-y\", \"@chainframe/donelog-mcp-server\"]\n```\n\n### Windsurf\n\nEdit `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"donelog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"]\n    }\n  }\n}\n```\n\n### VS Code Copilot\n\nCreate `.vscode/mcp.json` in your workspace:\n\n```json\n{\n  \"servers\": {\n    \"donelog\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"]\n    }\n  }\n}\n```\n\n### Cline\n\nEdit `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"donelog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"],\n      \"disabled\": false,\n      \"autoApprove\": []\n    }\n  }\n}\n```\n\n### Continue\n\nEdit `~/.continue/config.json`:\n\n```json\n{\n  \"mcpServers\": [\n    {\n      \"name\": \"donelog\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"]\n    }\n  ]\n}\n```\n\n### Aider\n\nAdd to `.aider.conf.yml` in your project root:\n\n```yaml\nmcp-servers:\n  donelog:\n    command: npx\n    args:\n      - \"-y\"\n      - \"@chainframe/donelog-mcp-server\"\n```\n\n---\n\n## Custom database path\n\nBy default, the server auto-discovers the DoneLog database at:\n\n- `~/Library/Application Support/DoneLog/donelog.db` (installed app)\n- `~/Library/Application Support/com.nitinshukla.donelog/donelog.db` (dev build)\n\nOverride with the `DONELOG_DB_PATH` environment variable:\n\n```json\n{\n  \"mcpServers\": {\n    \"donelog\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chainframe/donelog-mcp-server\"],\n      \"env\": {\n        \"DONELOG_DB_PATH\": \"/path/to/custom/donelog.db\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Available tools\n\n| Tool | Description | Key parameters |\n|---|---|---|\n| `create_entry` | Log a completed task or accomplishment | `text` (required), `date` (YYYY-MM-DD), `time` (HH:MM), `source`, `model` |\n| `list_entries` | List entries by date or date range | `date`, `start_date`, `end_date`, `tag`, `origin`, `limit` |\n| `search_entries` | Full-text search across all entries | `query` (required), `start_date`, `end_date`, `tag`, `origin`, `limit` |\n| `update_entry` | Update the text of an existing entry | `id` (required), `text` (required) |\n| `delete_entry` | Delete an entry by ID (irreversible) | `id` (required) |\n| `list_tags` | List all tags with counts and last-used dates | _(no parameters)_ |\n| `export_entries` | Export entries as markdown or JSON | `start_date` (required), `end_date` (required), `format`, `tag`, `origin`, `group_by` |\n\n---\n\n## Available resources\n\n| URI | Description |\n|---|---|\n| `donelog://schema` | Static JSON description of the DoneLog data model and tagging conventions |\n| `donelog://tags` | Current tag list with entry counts and last-used dates |\n| `donelog://today` | Today's entries (same as `list_entries` with no parameters) |\n\n---\n\n## Tagging conventions\n\nWhen creating entries, AI agents should include the following tags in the `text` field:\n\n| Tag | Purpose | Example |\n|---|---|---|\n| `#agent` | **Required.** Marks the entry as AI-generated | `#agent` |\n| `#<source>` | Identifies the AI tool that created the entry | `#cursor`, `#claude`, `#codex`, `#windsurf` |\n| `#<model>` | Identifies the model used (dots → underscores) | `#sonnet_4_6`, `#gpt_5_4`, `#o3` |\n\n**Example entry text:**\n\n```\nRefactored the auth middleware to use JWT validation #agent #cursor #sonnet_4_6 #backend #auth\n```\n\nUse `list_tags` first to discover the user's existing tag vocabulary and reuse relevant tags.\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}