{"_id":"@berlm/reclaim-mcp-server","_rev":"2-6dd0d8f8ee582648f650847ac8b7d810","name":"@berlm/reclaim-mcp-server","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@berlm/reclaim-mcp-server","version":"0.0.1","keywords":["mcp","model-context-protocol","reclaim","reclaim.ai","tasks","productivity","llm","ai","automation"],"author":{"name":"Dhruman Gupta"},"license":"MIT","_id":"@berlm/reclaim-mcp-server@0.0.1","maintainers":[{"name":"berlm","email":"dhruman.basketball@gmail.com"}],"homepage":"https://github.com/DhrumanGupta/reclaim-mcp-server#readme","bugs":{"url":"https://github.com/DhrumanGupta/reclaim-mcp-server/issues"},"bin":{"reclaim-mcp-server":"dist/index.js"},"mcp":{"serverInfo":{"displayName":"Reclaim.ai Task Server"},"setup_args":{"RECLAIM_API_KEY":{"type":"string","input":{"type":"secret","label":"Reclaim.ai API Token","placeholder":"e.g., 6dac21c9-ca90-4412-9d06-d4c242d3b9c6"},"required":true,"description":"Your Reclaim.ai API token. Required to connect to your Reclaim account. Found in Reclaim settings > Integrations > API Keys."}}},"dist":{"shasum":"41dc329ff00f94a0c8050bdca04774a96a1d3d85","tarball":"https://registry.npmjs.org/@berlm/reclaim-mcp-server/-/reclaim-mcp-server-0.0.1.tgz","fileCount":10,"integrity":"sha512-c8zahGcUjxSdXNp5A+Q5h4u9epsn7krL2+RLJUKwJmC71M6l9SnTTfSWDTI93QKwjgVkqibB6z/gLxj9ax3NKA==","signatures":[{"sig":"MEYCIQCicyGe1ONsRng2OHQ0+amLAVcAbSqiPsvSVMeIExwVcAIhAO8TY8VV/ViNUEvO2iXdcZVHRwd38RH6zTt8HmHDO5Z/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65268},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9986a32970935a5ecd9af6474fb985f1f6ad719c","scripts":{"dev":"tsc --watch","lint":"eslint --ext .ts src --max-warnings 0 --cache --cache-location node_modules/.cache/eslint/","test":"vitest run","build":"tsc","start":"node dist/index.js","format":"prettier --write .","prepare":"npm run build","lint:fix":"npm lint --fix","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"berlm","email":"dhruman.basketball@gmail.com"},"repository":{"url":"git+https://github.com/DhrumanGupta/reclaim-mcp-server.git","type":"git"},"_npmVersion":"11.4.2","description":"A Model Context Protocol (MCP) server for interacting with Reclaim.ai tasks.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.24.3","axios":"^1.8.4","dotenv":"^16.5.0","@modelcontextprotocol/sdk":"^1.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nock":"^14.0.4","eslint":"^8.57.0","vitest":"^3.1.1","prettier":"^3.5.3","typescript":"^5.8.3","@types/nock":"^11.1.0","@types/node":"^22.14.1","eslint-plugin-jest":"^28.6.0","eslint-plugin-import":"^2.29.1","eslint-plugin-promise":"^6.4.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^7.14.1","eslint-plugin-security-node":"^1.1.4","eslint-plugin-unused-imports":"^3.2.0","@typescript-eslint/eslint-plugin":"^7.14.1"},"_npmOperationalInternal":{"tmp":"tmp/reclaim-mcp-server_0.0.1_1760675963267_0.45807785054287153","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@berlm/reclaim-mcp-server","version":"0.0.2","description":"A Model Context Protocol (MCP) server for interacting with Reclaim.ai tasks.","main":"./dist/index.js","type":"module","bin":{"reclaim-mcp-server":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js","test":"vitest run","test:watch":"vitest","lint":"eslint --ext .ts src --max-warnings 0 --cache --cache-location node_modules/.cache/eslint/","lint:fix":"npm lint --fix","format":"prettier --write .","format:check":"prettier --check .","typecheck":"tsc --noEmit","prepare":"npm run build","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","reclaim","reclaim.ai","tasks","productivity","llm","ai","automation"],"author":{"name":"Dhruman Gupta"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/DhrumanGupta/reclaim-mcp-server.git"},"bugs":{"url":"https://github.com/DhrumanGupta/reclaim-mcp-server/issues"},"homepage":"https://github.com/DhrumanGupta/reclaim-mcp-server#readme","dependencies":{"@modelcontextprotocol/sdk":"^1.10.1","axios":"^1.8.4","dotenv":"^16.5.0","zod":"^3.24.3"},"devDependencies":{"@types/nock":"^11.1.0","@types/node":"^22.14.1","@typescript-eslint/eslint-plugin":"^7.14.1","@typescript-eslint/parser":"^7.14.1","eslint":"^8.57.0","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"^2.29.1","eslint-plugin-jest":"^28.6.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-promise":"^6.4.0","eslint-plugin-security-node":"^1.1.4","eslint-plugin-unused-imports":"^3.2.0","nock":"^14.0.4","prettier":"^3.5.3","typescript":"^5.8.3","vitest":"^3.1.1"},"engines":{"node":">=18.0.0"},"mcp":{"serverInfo":{"displayName":"Reclaim.ai Task Server"},"setup_args":{"RECLAIM_API_KEY":{"description":"Your Reclaim.ai API token. Required to connect to your Reclaim account. Found in Reclaim settings > Integrations > API Keys.","type":"string","required":true,"input":{"type":"secret","placeholder":"e.g., 6dac21c9-ca90-4412-9d06-d4c242d3b9c6","label":"Reclaim.ai API Token"}}}},"_id":"@berlm/reclaim-mcp-server@0.0.2","gitHead":"1083b3f292bbb0ecb53a408d9de65669e34044b4","_nodeVersion":"22.17.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-sQX3+h1gYtixsoyE9mKWUv3KBNx6bKaQyMhqcjdu55m4dMJ3XwSfdC7TYmGHJd8pK0/RwuQQtOL8tcWDV25yJA==","shasum":"5c8dd57e68d823eac0f960721a700ea46022bf8f","tarball":"https://registry.npmjs.org/@berlm/reclaim-mcp-server/-/reclaim-mcp-server-0.0.2.tgz","fileCount":10,"unpackedSize":65924,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICc0xMJZSwcRGEOgRWWysq28MR8A8bBDZKenVMd3wjc5AiEA9K2qxjsD4fGPHv4lWvK0pBTWm3gcTvelg8sM2tip9OA="}]},"_npmUser":{"name":"berlm","email":"dhruman.basketball@gmail.com"},"directories":{},"maintainers":[{"name":"berlm","email":"dhruman.basketball@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/reclaim-mcp-server_0.0.2_1760676652211_0.16487302900736522"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-17T04:39:23.207Z","modified":"2025-10-17T04:50:52.602Z","0.0.1":"2025-10-17T04:39:23.500Z","0.0.2":"2025-10-17T04:50:52.414Z"},"bugs":{"url":"https://github.com/DhrumanGupta/reclaim-mcp-server/issues"},"author":{"name":"Dhruman Gupta"},"license":"MIT","homepage":"https://github.com/DhrumanGupta/reclaim-mcp-server#readme","keywords":["mcp","model-context-protocol","reclaim","reclaim.ai","tasks","productivity","llm","ai","automation"],"repository":{"type":"git","url":"git+https://github.com/DhrumanGupta/reclaim-mcp-server.git"},"description":"A Model Context Protocol (MCP) server for interacting with Reclaim.ai tasks.","maintainers":[{"name":"berlm","email":"dhruman.basketball@gmail.com"}],"readme":"[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![npm version](https://img.shields.io/npm/v/reclaim-mcp-server.svg)](https://www.npmjs.com/package/reclaim-mcp-server)\n\n# Reclaim.ai MCP Server 🚀 _(UNOFFICIAL)_\n\n> **⚠️ UNOFFICIAL & UNAFFILIATED** – This project is **not** endorsed, sponsored, or supported by Reclaim.ai. It simply uses Reclaim's public API. Use at your own risk and comply with Reclaim's Terms of Service.\n\nA community‑maintained [**Model Context Protocol**](https://modelcontextprotocol.io/) (MCP) server that lets _any_ MCP‑capable client (Claude Desktop, Continue, Cursor, custom scripts, …) interact with the [Reclaim.ai API](https://reclaim.ai/) through a set of standard **resources** & **tools**.\n\n---\n\n## 🧐 Why MCP?\n\n- MCP is the \"USB‑C\" of LLM integrations – one wire that lets every model talk to every tool.\n\n- Run this server once and _all_ your MCP‑aware apps instantly gain Reclaim super‑powers.\n\n---\n\n## ✨ Key Features\n\n- **Active‑tasks resource** (`tasks://active`)\n\n- **14 task‑operation tools** (list, create, update, complete, timers, …)\n\n- 🛡 Type‑safe (TypeScript + Zod) & solid error‑handling\n\n- 📦 Zero‑config stdio transport – perfect for local AI assistants\n\n---\n\n## 📚 MCP Capabilities\n\n### Tools (Actions)\n\n| Tool                       | Description                   | Parameters                                                | ✅ Idemp. | ☠️ Destr. |\n| -------------------------- | ----------------------------- | --------------------------------------------------------- | --------- | --------- |\n| `reclaim_list_tasks`       | List tasks (default = active) | `{ \"filter\"?: \"active\"\\|\"all\" }`                          | ✅        | ❌        |\n| `reclaim_get_task`         | Fetch a task                  | `{ \"taskId\": number }`                                    | ✅        | ❌        |\n| `reclaim_create_task`      | Create a new task             | `{ /* task properties */ }`                               | ❌        | ❌        |\n| `reclaim_update_task`      | Update task properties        | `{ \"taskId\": number, /* updated properties */ }`          | ✅        | ❌        |\n| `reclaim_mark_complete`    | Mark complete                 | `{ \"taskId\": number }`                                    | ✅        | ❌        |\n| `reclaim_mark_incomplete`  | Unarchive / mark incomplete   | `{ \"taskId\": number }`                                    | ✅        | ❌        |\n| `reclaim_delete_task`      | Delete permanently            | `{ \"taskId\": number }`                                    | ✅        | **✅**    |\n| `reclaim_add_time`         | Add schedule minutes          | `{ \"taskId\": number, \"minutes\": number }`                 | ❌        | ❌        |\n| `reclaim_start_timer`      | Start timer                   | `{ \"taskId\": number }`                                    | ✅        | ❌        |\n| `reclaim_stop_timer`       | Stop timer                    | `{ \"taskId\": number }`                                    | ✅        | ❌        |\n| `reclaim_log_work`         | Log work time                 | `{ \"taskId\": number, \"minutes\": number, \"end\"?: string }` | ❌        | ❌        |\n| `reclaim_clear_exceptions` | Clear scheduling exceptions   | `{ \"taskId\": number }`                                    | ✅        | ❌        |\n| `reclaim_prioritize`       | Prioritise in planner         | `{ \"taskId\": number }`                                    | ✅        | ❌        |\n\n---\n\n## ⚠️ Known Issues\n\n**`COMPLETE` ≠ done.** Reclaim marks a task `COMPLETE` when its _scheduled block_ ends, even if you haven't finished the work. This server does include those tasks as active when the LLM uses the tool to pull active tasks (and reminds the model that `COMPLETE` tasks are still active). However, LLMs (Claude) sometimes ignore `COMPLETE` tasks when asked for \"open\" or \"active\" tasks. If that happens, you may need to prompt the LLM explicitly to \"include tasks with status COMPLETE\".\n\n## 🚀 Quick Start\n\n1. **Prerequisites**\n   - Node.js ≥ 18  \n   - [Reclaim API key](https://app.reclaim.ai/settings/developer)\n\n2. **Claude Desktop configuration (minimal)**\n```json\n{\n  \"mcpServers\": {\n    \"reclaim\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"@berlm/reclaim-mcp-server\"\n      ],\n      \"env\": { \"RECLAIM_API_KEY\": \"xxx\" }\n    }\n  }\n}\n   ```\n\n**Alternative Configuration:**\n\n   ```json\n{\n  \"mcpServers\": {\n    \"reclaim\": {\n      \"command\": \"absolute/path/to/node (run `which node` in terminal)\",\n      \"args\": [\n        \"/absolute/path/to/reclaim-mcp-server/dist/index.js\"\n      ],\n      \"env\": { \"RECLAIM_API_KEY\": \"xxx\" }\n    }\n  }\n}\n   ```\n\n\n### Alternative: Manual Installation\n\nIf you prefer to install from source:\n\n```bash\ngit clone https://github.com/DhrumanGupta/reclaim-mcp-server.git\ncd reclaim-mcp-server\nnpm install && npm run build\n\n# Run with your API key\nRECLAIM_API_KEY=your_api_key npm run start\n```\n\n## 🤝 Contributing  \n\nBug reports & PRs welcome! To contribute:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes (following the code style)\n4. Commit using Conventional Commits (`feat:`, `fix:`, etc.)\n5. Push to your branch (`git push origin feature/amazing-feature`)\n6. Open a Pull Request\n\nPlease squash your commits before opening a PR.\n\n## 📄 License\n\nMIT – see LICENSE.","readmeFilename":"README.md"}