{"_id":"tododdle-mcp","_rev":"31-2aa7f73fc69b6b1d44e0b609c6574ce2","name":"tododdle-mcp","dist-tags":{"latest":"3.6.0"},"versions":{"2.0.0":{"name":"tododdle-mcp","version":"2.0.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.0.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"e2d08ce8f50c7a3ef58a94d62b251afb216af5f6","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.0.0.tgz","fileCount":23,"integrity":"sha512-eSHoI/pkplU8zShdwYLBAcg+rpwXPwX2cW6VE1Z17dbc+trJAvhCj3kKJkD3hmZutjHg28O58gInHb0lyD5NNg==","signatures":[{"sig":"MEUCIBV+kjGTwO16ULIKtqyQtKLnt0mV3aQhCQ+irzyU4AcTAiEA4XnRRT6qFC27LXTeHnkMkGJO8LuSkqylj3kUy/D5KL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78438},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a344b450a4ce90d918f50c91c736bfb9c097cb0a","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"paulrblakey","email":"paul@krffl.com"},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.0.0_1785071577238_0.6086163718150199","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"tododdle-mcp","version":"2.2.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.2.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"ab635ea9605f6a89c774abd62e8f62f5fa4d4b10","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.2.0.tgz","fileCount":27,"integrity":"sha512-Vi5JfFE7R6/pkiSB6VetDU6QXam9+qGZ1zAwouWhSYl7PtPFH4F7E0vFr8XsUth7cNx92ghqtnjzKMnbbK2U3Q==","signatures":[{"sig":"MEUCICFy5j69TbHqjbKOViD25amzamRHwLAyxmkqA17V00gJAiEA9WaFAACEK6HXmOoOaacZjNz4917f/HYyEJjYEp6z63A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110464},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9bb2fdc21c48bca0f26de59ea8fed88ccd95c086","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.2.0_1785262464681_0.5249748039964937","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"tododdle-mcp","version":"2.3.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.3.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"1865d7df70f8829adcdfececb6f1d9e02b811f43","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.3.0.tgz","fileCount":27,"integrity":"sha512-izIDAwpv46e7f2URlKu6LM1KDr1p1hgAKhdKCbMqEDWa6jUKQU5vEZHt74Gx2mu5O+1EUu716lRmqtsouul2mA==","signatures":[{"sig":"MEQCICJchwUTeEiYDDaWpF1saTOWSKWYm5LxPH2o/kj6dsQ2AiBLIl+mj+8uZe9c2Lp1tNK/jh0nIod/Yd6go1xGR5YInA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":112346},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"8cc62cc97cf2efb49ae02499a2cea3e261387ba9","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.3.0_1785350907116_0.22601898576969504","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"tododdle-mcp","version":"2.3.1","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.3.1","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"54dded1757c28d1c861da498a34ee1b8766731f6","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.3.1.tgz","fileCount":27,"integrity":"sha512-T7SdbgaIH1SZS0BJxYYoF9X+eZfd2C8Fpt5UcMxYn+gx9r8qwEWWN2FSUv1+BQ2H5wTCSzXuzqsVbduTqrhpQA==","signatures":[{"sig":"MEQCIEoyI6M+krLwQdkN+Vbw0fCXsBGl0L9/0nX2pccFJ3dJAiB98W4hbQpVbjRVqIvYsVkz1Alk5rsud9AuyhKnBQ7tVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":112389},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"6395e42d9375d5fd7a5cdf90e999b9b9e4b96152","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.3.1_1785351657632_0.708767756624866","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"tododdle-mcp","version":"2.4.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.4.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"a7bdefcb3fbd4368ca71f7b6252aaeafc85af96f","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.4.0.tgz","fileCount":27,"integrity":"sha512-AZLl8CZjhqm3CQ0sCOiWg7T2fOnh8WuV8NQAPEOhwzaKzvr7n0HNALKSAvj3ju3tmXR1bkk903YGGpUefoRugA==","signatures":[{"sig":"MEQCIHBhMOACl0sj+MV9mdmvX+pNTmYdM5/T/c7CnkQiUZZoAiB5pRBoUkBcCU6rvasQLW+RwIhim28k2hVqBTzxqkbWGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":153433},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7774b1d080312077eb5494850c1ff96f3092fd28","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.4.0_1785357405155_0.6905993357254967","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"tododdle-mcp","version":"2.5.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.5.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"7bbf4bd5dcbe8f9f34ded063f499122288744588","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.5.0.tgz","fileCount":27,"integrity":"sha512-5u6xZOleSNpIvvW2DjM+WKuXbq8q31Uhm6F/DD6fQm1Ls3ejavqh1n4kAmFMFcBV+BxKAYGZ2T1RR/FeLyHcoA==","signatures":[{"sig":"MEUCIQDosIUt99hoj79AZ8jcmAbzJmbgIB/Icnr4ZDTzZTge9wIgdaxJ3LCxGCrJo6bw8wwrHbwEXHd9mT1JmZqe9dXeiNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159026},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"6ba6191f4a9ecccb7bc5f7298bc56480b5ae9237","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.5.0_1785525209746_0.6840491790587659","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"tododdle-mcp","version":"2.6.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.6.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"49bff549150ff19a8b3530c92adeaedc82234b51","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.6.0.tgz","fileCount":27,"integrity":"sha512-cjhjb3NEyiDMzCaGg423G1i1EFWOA/vHBO1QQjfkpDDEhEBNEHA98NPD1wm91yZa4N1e8GM8WKJJwVpYUg84tw==","signatures":[{"sig":"MEQCICOjfrUcsT/qafyMTVbcxNLDaMWcl12VMRbZw7+SrIKZAiAaQAT677qzRf1ldOYKEHYigHQ7vDg6ym366eoSl7I/RA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162911},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"ede9852333b28fec6169d146aaf6da157ce12168","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.6.0_1785943420018_0.8362872618146133","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"tododdle-mcp","version":"2.7.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.7.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"b2e4e923d96d6ef892da8edcb707850f6bc6aa0f","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.7.0.tgz","fileCount":27,"integrity":"sha512-tEIAUT4Y0Af1WZQPU3evg4EV8mj131FOyl1mEYmvGoi27yA6XzXmTPmtYQsH1h6kj1sQhf9RbC4TRfokEKdUcA==","signatures":[{"sig":"MEQCIHwimirr1YPA7sns8PVRrLLVzpjBwaEOq/sNCw+9vHy0AiAeMr5/VA8Bsiwi5vKgBaRn7T8P1b94Vb0bJ8MLK91BbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":164434},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"ac7aa7c3af2d917a26a46399323123a69f219fa6","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.7.0_1785958286846_0.8189471169415341","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"tododdle-mcp","version":"2.7.1","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.7.1","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"d5fdf2f8fe56d3844972f0fba802c16545cb684f","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.7.1.tgz","fileCount":28,"integrity":"sha512-MLpfvRKbnnDfrVXgMYcyVk9p8grJGF1OO6nhWm+A2AEqjwPqXOPI0UKlq2jQXTa+yEOQItHpwrJIhw2bPl/o/A==","signatures":[{"sig":"MEUCIQCttrjasaisKrn60hhvYjMQ6nyiHrQQU3F14NmN+Y3ggwIgQRD9RS+Ie5wOcf+JXYh7tk0HrudOFtwShzitRTRy0Mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172591},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"41b6aa9a0182bc76368720e8108b61ff3acbe0e8","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.7.1_1786273979029_0.011353975546170902","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"tododdle-mcp","version":"2.8.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@2.8.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"8ed32254d0a5be88658b29a08583ce17b96c99bf","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-2.8.0.tgz","fileCount":28,"integrity":"sha512-oniESb/xpstSdnuQItgAv/+N5trv40snkWa3NXM4RojpSjUVwFVGVSij5NhhIFFOIEJ14kLISKhrELfR6XKSXA==","signatures":[{"sig":"MEUCIH1urm7iZ4e3qeMisLzFMrAhI18ADZQUZx5hlt3PNCPZAiEAocdOsxpw2m7wtiZtBWSAvn7vxAHvWrrsrTOFvPN5BpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180496},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"1150a036df650074f01b23400218e78bb93f32c0","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_2.8.0_1786301573048_0.4934722320186382","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"tododdle-mcp","version":"3.0.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.0.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"11cfdf4e6810642eb859271109fc480cb850863b","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.0.0.tgz","fileCount":32,"integrity":"sha512-v3Shjq9YyeXzjR+G1hS117MBHSmUU1tnLlTgcmZkkoM4xiCHoTCEy/7MFBWhKj9bJofIWy2bg/Gk42Ig5EjCEA==","signatures":[{"sig":"MEYCIQDrJ5LDYZIri11xrl1d1aNXgYvVq9T3tClpnPVDsDTiHQIhAMTOMfsvrXuX+Y9PuGCq1SGWQaUCCgI2u0Y3jcZk2Ber","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":185700},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"bdb02071eec3be5daccab9383daa588a0a98c8aa","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.0.0_1786557852125_0.4731861854218957","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"tododdle-mcp","version":"3.0.1","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.0.1","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"3006fe358ba2fdd1b7599d366fd6259843725732","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.0.1.tgz","fileCount":32,"integrity":"sha512-4b7k4N7OVlmuVFk0NYK1/ift02aRP2lI+nZ20bnowrbUIE4rsEtzaW2Wr/szp85I4ghDRmlz+2Q7+gOnuK905w==","signatures":[{"sig":"MEUCIQD0MW1JN+6Y79/yhdRqR5um0QsftWIjV5LJbWrpK50ALQIgBWzSSIitcfh56tHxgUFOu9pMSSdjRcAanhD/H3OAAto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187943},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"a2d12fedd2aae4ef2c23038c67b0e506a7688970","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.0.1_1786631809122_0.15418529994870922","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"tododdle-mcp","version":"3.1.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.1.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"a19885bf888ce969f52772f68528fbf3b2629a0b","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.1.0.tgz","fileCount":32,"integrity":"sha512-wUcrWVSiwgMWJfn//n1vJanJtjHPg6lJGj4dHK9H2aECyoS1292Jt2R4ZQcYzG6imOfCA7D6zwGH1gjoHhtr8g==","signatures":[{"sig":"MEQCIFMeWSJbZYI2ZDzbZLMyPOP7NvhjMGzXj9fThOVsIlUSAiBTyrgR2D7sjNsjTLIw9MNdna6l18ICZvftOAtMCZ64+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":195583},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"e8ee47843e4652381d2415ce8ebf128ff0f9ebf8","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.1.0_1786674839259_0.44303251033729696","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"tododdle-mcp","version":"3.1.1","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.1.1","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"ac7968635892ce1988387e7d2f1f6ffcfd03caa3","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.1.1.tgz","fileCount":33,"integrity":"sha512-JtP85XP3mBAi+ZMD6+zj1cv5FdDkOo8yDl5Y1x3fZjFbhhguYrVJ7XREB6gYPj2uM/K1sAb9GYajdQAqFtpkGw==","signatures":[{"sig":"MEQCIHymWhfz7oS51LwW29DdIjCbSja2tSNW3DvgGDaWkcHbAiBRbLmzKXrVBslKhamyyghGYlZzmBnfDeS1GE3KM4WMRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":203388},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"b8ed2d5866d0d4cc452b202610cd90f6985d2fe0","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.1.1_1786714617410_0.9354354416820125","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"tododdle-mcp","version":"3.1.2","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.1.2","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"26d679411f565591f2d1c0556b2a8f2db46465ce","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.1.2.tgz","fileCount":33,"integrity":"sha512-u/8p3JIqDExqF4Ap7Z0ZrsuUbBQ44XZpRa/12JhcsO9A2AcedHD7reFDTvPbvrsfymteM9Z3n6kdxek4zwABSg==","signatures":[{"sig":"MEQCIDSZM0gU4NklOVTAvGgv/uZdfp8/uMfVFF9CdlgVm1ViAiA77sIqgz/iHs9w+UV6eDXOEpTgApx/XHFqdE7lfanx/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":204497},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7cbd2aa99d88158fe91de3f940dd5fbcec038050","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.1.2_1786978335814_0.3649155157766246","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"tododdle-mcp","version":"3.2.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"01dafa7cd9e9c65cf26dace8086931fb33cf0b21","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.0.tgz","fileCount":33,"integrity":"sha512-xlQp821FyMBBSWw3TZ/6KCQi+qOWHmgPdEFmJkAx/6pCiilsTGk1gJxQzrNtwWkB1BbzNlDkYZfEjfaat5Rbkg==","signatures":[{"sig":"MEYCIQCAFR/JZ9SbeTuJqJkwd7/VLDXtxSGhR75gG0tgITpR/wIhAICLdhGPMr8v2TMzyR49MLOsLgYEX3zu7yEck+xDNoCO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":206447},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"85c96971712efcd3652384d79da4fbef189c06bc","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.0_1786993598572_0.3165076805107272","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"tododdle-mcp","version":"3.2.1","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.1","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"aecfcf6ab097b79fb7390bd135f19cc87b663d53","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.1.tgz","fileCount":33,"integrity":"sha512-V8PIv7cKJRhCUPV4d3Pd6xe1vn/AArIQoGIr5WJT1ThoyArnLKZTvOzk9xnnqM4UPsTWbGgVeV6zA2Q7rGXQiw==","signatures":[{"sig":"MEQCIGGo2LEJgA23+dxmsxboIRXoXALGqbJh9tWVujE9gZ0jAiBT8NstZXDvS4sAErB5aQgbCDtBx7CDP//Rn/NLyDrKQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211881},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"1775fdbc0cf83b4fe32f4f5f7dbdff52ce0b058e","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.1_1787254431694_0.10952598878541431","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"tododdle-mcp","version":"3.2.2","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.2","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"85f0d37cf4a2d3516b1ca9a49948dfb1584cfca1","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.2.tgz","fileCount":33,"integrity":"sha512-nr5q1Q+m5tAs+uerr/IGYxaezjHAc2J60oFSQngPBVGyftc0Ymj9Y0BOXASr/+l1Cl/JTGvXtnn5zjGYA/CoYg==","signatures":[{"sig":"MEUCIF67krtHkK5y6uAnc7v1VYkmbGGYOy1EEkqIRTEef+O1AiEAi0JdLdkz04p0nftOqJLJG0UgvagZuJYzL7lnyJyePpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212866},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"11ae17de623302cd2ec13cfcb519bfda3762ca26","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.2_1787346342461_0.6824965169810466","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"tododdle-mcp","version":"3.2.3","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.3","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"71a6a2f0cee3be9fbc9c6d1bcd79c7ce1b1b0ed5","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.3.tgz","fileCount":36,"integrity":"sha512-eTFvwuyYzGJUclD8FLMh75pAXRSsnHEonY0+w93YYisD39K2egiwM6U3i8NIlfU+YjwXie2ABV8Vcw8dimyQxQ==","signatures":[{"sig":"MEUCIQCI6pKh+ze8zWze7z13tCovxmuQKN+t2YajxUKkKCrMAgIgK7LJhJym2UnhUnu+f5r0TLvgO5CwR0gUPGoG+AxhNTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":210067},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"2d022945f9fd2f6c4f6e073fd9bb2f6003844073","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.3_1787404618175_0.9771039467651392","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"tododdle-mcp","version":"3.2.4","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.4","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"f9ecf7ef63d53aaa2b3e34099e3e9e78f91d4745","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.4.tgz","fileCount":36,"integrity":"sha512-et9pxIznwH542B+w2BWdzxzQ8YJKmZrH5jPCw/zIZdEbu6HKk3aZho94S0ZGtj5rQbq771uRNQbMc/c9+q+p7A==","signatures":[{"sig":"MEQCID4zgWerszCxsKOVkz1zCwG4UplK8eAG71Z64fJb6WReAiBsNUOUSDlhOvRKYmcjLdMtlHO7E8ha3/H/yeoh9WASZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211082},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"d1f8fa4ab48b885ca071c503667b97c79a7da423","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.4_1787484266328_0.5759984271201093","host":"s3://npm-registry-packages-npm-production"}},"3.2.5":{"name":"tododdle-mcp","version":"3.2.5","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.5","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"bd417a0ccdc4bfe7e3f2fa58a77386a2e4ba5dff","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.5.tgz","fileCount":36,"integrity":"sha512-DUOq7RMOa3yg4hMQPkL9RBti5t208fTEGSYCzgTimnRidE4+0Y4bFxM4yxTAJVhNgVuUEVlRcd+jXUd6Z7yPKw==","signatures":[{"sig":"MEUCIAZGTsOyOWH10mlrwuIEA7lUs8hJL6Vnx2y7c41NQvGxAiEA22ygt+ELsTSr5SrCUhMYD3hDWMORY8Tr+B3KabHYEBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231598},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4d79b1a0a70a432bcf6d2d1cc1d8ece3f75f5eb2","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.5_1787489428624_0.9210802955972806","host":"s3://npm-registry-packages-npm-production"}},"3.2.6":{"name":"tododdle-mcp","version":"3.2.6","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.6","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"2070fc0c693e3c0d5efedf0bbe20301850d3a190","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.6.tgz","fileCount":36,"integrity":"sha512-lmhEFUznBAqYRkU9gJKc5+CQzSty0M78dSOu5XymuARpOMP+YPrHZh8F75PkUa3ZASNXhRs4EXPItNiq+/FyQQ==","signatures":[{"sig":"MEQCIHQz6X3FU5O/yjgtSHP7IE5iDaEO2rJnwqts1mbkqM0iAiA4BSzMCMIk+RT+kXhW1YfOo6okW62AbUPpoakAhRKuHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":236022},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"95f01c2fc1d4e7786e40822bc1229379679a11c5","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.6_1787498709460_0.3285977832199731","host":"s3://npm-registry-packages-npm-production"}},"3.2.7":{"name":"tododdle-mcp","version":"3.2.7","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.7","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"dd7b851594570390f9d285e39cdb57699e7733db","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.7.tgz","fileCount":39,"integrity":"sha512-xqhfCkW/KizyLgdEjSRxcUQGjjJ/S7LJV7G50VQCcgccOV5nWmgyUJS5tovCfA2EDKs7q4FhnQWA8/TplPXljQ==","signatures":[{"sig":"MEUCIQC+UdFVeiGul4VNFZtegY9BxKLef0LgGG4mnARPxCfsewIgRqe+5z5b+4Z8CEAIPQ7vumSU2+MYn63Ss+oGK9+Cbg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":245108},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"87117f78de899cae5df33db23df17d2779423bcc","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.7_1787663996378_0.01631990126560745","host":"s3://npm-registry-packages-npm-production"}},"3.2.8":{"name":"tododdle-mcp","version":"3.2.8","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.8","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"6c57ef17129c3700e7651ccc8c86f0d50a2fdece","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.8.tgz","fileCount":39,"integrity":"sha512-4biASWVTqLbTwAaGyPbQpX+U83nWEWX76Yun6IJDkYoHbh7CL2wNoCAhfpPG77WpQ2FcfrM15k6yrhjdl2IJPQ==","signatures":[{"sig":"MEUCICnc6ppBdNyXg1uAp+Zsa9QAPLshZbht4m4WDKCOyTPLAiEAqkVIu5ar2vzXD8CP7DSx18Va3CfvCAsqYFH46ZgmtZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":245254},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"a8f74e7b7266f7d787d66fa5da45a44f757b31c8","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.8_1787680095354_0.6541112003511007","host":"s3://npm-registry-packages-npm-production"}},"3.2.9":{"name":"tododdle-mcp","version":"3.2.9","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.2.9","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"7fb1b27c84d5a577b3910b4fa9ab530d93ef0129","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.2.9.tgz","fileCount":39,"integrity":"sha512-tOInicAJ6NgJSqQyfloMQ7jRyDRQX9GnUkrhtKC1N0/NzrqUyfvXaYvaIaYttslY6SsmgciNtB8cz4Efz3ba+g==","signatures":[{"sig":"MEUCIG1w3MgnebrEZ1ANxk3L7pUj+op2KyHf2nRJUzHhESmbAiEA2DVNQWx95/+2JOdL1R4NHWP/X5tShr/ytiQN/T5CGV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247750},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"421bfbda6271e0b9c1e0f5891956f51c8e020163","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.2.9_1787692952334_0.36290754083832866","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"tododdle-mcp","version":"3.3.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.3.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"0e218937ca593cd3bed08fb8e5e2e8bae9aa7ad4","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.3.0.tgz","fileCount":42,"integrity":"sha512-cExcisRrRlA/9W+2n51wglAmLShnRtmTrtgyv9Swrc/oWNSS12ZLTbKG6pcs6N48y2L+QMvFV3lzRYMmsm+7nA==","signatures":[{"sig":"MEQCIGsbOKKvg8dmmMlRSyV39pDM8Yit4ocOjRfZ4KzA4LGRAiBRviG9iU7NP9xoG88ErCqqKYJXIKR7gcJv9vSqdjCFJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263685},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"0cd9d6c6d023883e4a8a06912b7e6ae3b274c39a","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.3.0_1787752502982_0.954536611235671","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"tododdle-mcp","version":"3.3.1","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.3.1","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"2ea58779eb8eb92097a24d7b89264281c41041a8","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.3.1.tgz","fileCount":42,"integrity":"sha512-Dr+FB6Ng8I6GLWXEtiDZQvT5TFUo0dr2l3q846UaFMoMFdnAuLjL3R/b/YBfZokRmQ69VJgj9RxL+Gx030R5OQ==","signatures":[{"sig":"MEQCIE/GQJt/m3gpuiVqo4mYTn6kq/BHv+EL2WihyrWfkwwBAiBX+4D9vBvl+Cm+AtdiXt0Y4QGWZSQfxR+W11Ke3QpI+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":264872},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"830c51a1cad8c0949a37834dc1d571671df4317b","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.3.1_1787762773747_0.7195742467354591","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"tododdle-mcp","version":"3.4.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.4.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"69560c06772afc28210a48993c47b831b232b675","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.4.0.tgz","fileCount":49,"integrity":"sha512-K0UMDTOAr1uAopYMufUiidiki0pHMMCSw3XYa+iKRIWzJfgcA5XSRLjp2ewXZ7rTCtsachk6Ijkui494SNjDVA==","signatures":[{"sig":"MEUCIEhG/gQl8hA9DY2fIS0NxHx7MlGcUbk1zFZOHKZ7Wm3FAiEA38YbQalABwkR8HCqMzndWqDOgMKk34ApPJxcpTA+uRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC3HTS+/GAOQawEVU9v8zYdHZY/QVUXqAvDP6NsaN+4vgIgKEHrJ4DtLNmm/dIbzY0iYR2VSFzTeIgvJbGGzy835k4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285471},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"7267b804c26d3a1bd8b65350b5d63c9812a6971a","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.4.0_1788024188993_0.44409903854698607","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"tododdle-mcp","version":"3.5.0","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.5.0","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"c32ab9580576be62dbe26f0018da11a634eb6338","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.5.0.tgz","fileCount":49,"integrity":"sha512-kYPqszFX/FJgcDNmdZA5D1eB3hPHNaA5iUWn2wZNWyFKnWyPh5z8gU4TTIPx3KNZwk6w0wGH78ctbxaRpCu2TQ==","signatures":[{"sig":"MEUCIQCdfk7TRlGC3PxilIb1DU5SjlKxrrZUD+ncG5/Ur6PiHAIgTuD4zjt02XeabQlU3KJo1x5fOxM8dsCIZaohVIXoKC0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCOKLzLU4Fu8n0FLQc2IyDUzY4D45Mt7jYLPAi8VG1aCAIhAInb5INalfLZrKyBHhW3oP+bX8O1i5NOcvxi55+4f/8m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290513},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"949e6580df8ea401b4a330159557d0869847c249","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.5.0_1789048947355_0.6251236599172341","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"tododdle-mcp","version":"3.5.1","keywords":["mcp","model-context-protocol","tododdle","project-management"],"author":{"name":"ToDoddle"},"license":"MIT","_id":"tododdle-mcp@3.5.1","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"homepage":"https://tododdle.com","bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"bin":{"tododdle-mcp":"dist/index.js"},"dist":{"shasum":"f225ef165052a29496186529d8f03afb7ff5389f","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.5.1.tgz","fileCount":49,"integrity":"sha512-ykEhCKRtaf1r/J/LuIF/CHV/0n8GB8qnkZ4wLCmn+YqNZnjKiEbhPCD7J1hlIaTEG+0rAJOydkMMPrGsbqk/rQ==","signatures":[{"sig":"MEUCIEESZK0SnXXmzv1v3JYGUZoTDSz8YysGsq1K1iK4r522AiEAg/qrt4Dr8T2r1E7aEn7ijJQfebniw7rnnrQNy8fS/D0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC2zH9SaZC3ylKKmR7brNwzhTX9vwvMHcMVPF42OdEJxAiArXWA86EQeKtNLO45kJ8mrZpaidVFKNKFE0TKNeUPs9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290792},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"0eb168ecb2773a3e5e81cec890474c2392fa6b9c","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm audit --audit-level=low && npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/tododdle-mcp_3.5.1_1789049150215_0.19822109198714366","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"_id":"tododdle-mcp@3.6.0","bin":{"tododdle-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"dist":{"shasum":"830a24f1a6861e22efee2ae15a3fb3a988d10c7b","tarball":"https://registry.npmjs.org/tododdle-mcp/-/tododdle-mcp-3.6.0.tgz","fileCount":51,"integrity":"sha512-TTGhbBoGq1zIgMOoHTQUH9Qzoz3fs1sbXdJVmYsmw62FLBAWBKFYARPnbBsLJKVvFVVi94oqwmef3EHP/bz6nA==","signatures":[{"sig":"MEQCIGkzRMnKLipEnjJGjI/70i5wH1x47lTevBgwENchE60PAiBWowpDUQD8Dk4Sye/qAoLDcvA6AN1423SMljq8dkgXqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCHWSHRnfKjLD7+5KtBfatSHCoPTMe04SyMJkXKjDk2sQIgMctVb54recRpkE6cGEh/RHZOGGoKYejzXrrGOdpVBB0="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/tododdle-mcp@3.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":310988},"main":"dist/index.js","name":"tododdle-mcp","type":"module","types":"./dist/index.d.ts","author":{"name":"ToDoddle"},"engines":{"node":">=20.0.0"},"gitHead":"e12b313fe412f14c9b0344973e27e3a15ec2a343","license":"MIT","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test test/*.test.mjs","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","prepack":"npm run build","postbuild":"chmod +x dist/index.js","type-check":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\"","test:coverage":"npm run build && node --test --experimental-test-coverage --test-coverage-include='dist/**/*.js' --test-coverage-exclude='dist/index.js' --test-coverage-lines=90 --test-coverage-branches=75 --test-coverage-functions=85 test/*.test.mjs","prepublishOnly":"npm audit --audit-level=low && npm run test:coverage","check:api-parity":"node scripts/check-external-api-parity.mjs"},"version":"3.6.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7545fdda-b9fc-4a2f-a57b-06f4f9ae2ae1"}},"homepage":"https://tododdle.com","keywords":["mcp","model-context-protocol","tododdle","project-management"],"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"Agent-first task, project context, and time tracking for ToDoddle","directories":{},"maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"_nodeVersion":"24.20.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","prettier":"^3.3.3","typescript":"^7.0.2","@types/node":"^22.15.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tododdle-mcp_3.6.0_1790091783438_0.21909239079778553"}}},"time":{"created":"2026-07-26T13:12:57.133Z","modified":"2026-09-22T15:43:03.927Z","2.0.0":"2026-07-26T13:12:57.439Z","2.2.0":"2026-07-28T18:14:24.823Z","2.3.0":"2026-07-29T18:48:27.258Z","2.3.1":"2026-07-29T19:00:57.803Z","2.4.0":"2026-07-29T20:36:45.320Z","2.5.0":"2026-07-31T19:13:29.903Z","2.6.0":"2026-08-05T15:23:40.172Z","2.7.0":"2026-08-05T19:31:27.022Z","2.7.1":"2026-08-09T11:12:59.210Z","2.8.0":"2026-08-09T18:52:53.225Z","3.0.0":"2026-08-12T18:04:12.307Z","3.0.1":"2026-08-13T14:36:49.269Z","3.1.0":"2026-08-14T02:33:59.406Z","3.1.1":"2026-08-14T13:36:57.555Z","3.1.2":"2026-08-17T14:52:15.962Z","3.2.0":"2026-08-17T19:06:38.714Z","3.2.1":"2026-08-20T19:33:51.825Z","3.2.2":"2026-08-21T21:05:42.651Z","3.2.3":"2026-08-22T13:16:58.326Z","3.2.4":"2026-08-23T11:24:26.481Z","3.2.5":"2026-08-23T12:50:28.795Z","3.2.6":"2026-08-23T15:25:09.628Z","3.2.7":"2026-08-25T13:19:56.514Z","3.2.8":"2026-08-25T17:48:15.558Z","3.2.9":"2026-08-25T21:22:32.498Z","3.3.0":"2026-08-26T13:55:03.129Z","3.3.1":"2026-08-26T16:46:13.949Z","3.4.0":"2026-08-29T17:23:09.097Z","3.5.0":"2026-09-10T14:02:27.436Z","3.5.1":"2026-09-10T14:05:50.312Z","3.6.0":"2026-09-22T15:43:03.556Z"},"bugs":{"url":"https://github.com/krffl/tododdle-mcp/issues"},"author":{"name":"ToDoddle"},"license":"MIT","homepage":"https://tododdle.com","keywords":["mcp","model-context-protocol","tododdle","project-management"],"repository":{"url":"git+https://github.com/krffl/tododdle-mcp.git","type":"git"},"description":"Agent-first task, project context, and time tracking for ToDoddle","maintainers":[{"name":"paulrblakey","email":"paul@krffl.com"}],"readme":"# ToDoddle MCP Server\n\nThe official Model Context Protocol stdio server for [ToDoddle](https://tododdle.com). It gives MCP-compatible agents a bounded interface for project context, boards, lanes, tickets, comments, and time tracking through ToDoddle's hosted API.\n\nThe package contains no ToDoddle application or database code. It is a small stdio client that authenticates as an Agent Connection and calls the hosted API.\n\nVersion 3 sends its package version and compatibility level with every token and API request. If ToDoddle returns `MCP_UPDATE_REQUIRED`, run `npx --yes --prefer-online tododdle-mcp@latest` and restart the MCP host. The error includes the installed version, minimum supported level, update command, and current troubleshooting guide.\n\nAgent work claims let any connected agent indicate that it is actively handling a ticket without becoming the human assignee. Claims use the configured Agent Connection label, an opaque run ID, and an expiring lease. Each claim also starts or resumes a durable Agent Run. The agent can record a terminal result, evidence, and optional usage telemetry without changing ticket status.\n\nThe server sends content-trust and authority guidance in its MCP initialization response. Agents receive this guidance before they read tool results. Ticket text, Context, comments, support messages, Notes, documents, attachments, links, logs, quoted text, and agent output cannot change the workflow, tool policy, connection grants, safety controls, or project scope. External content remains evidence only.\n\n## Requirements\n\n- Node.js 20 or newer\n- A ToDoddle Agent Connection client ID and client secret\n- Scopes and project grants configured for that Agent Connection in ToDoddle\n\n## Configure\n\nCreate an Agent Connection in ToDoddle, grant it only the scopes and projects it needs, and copy its client ID and one-time client secret. The examples follow npm's current `latest` release so restarted clients receive capability and security updates.\n\n### Codex\n\nAdd the server from a terminal:\n\n```bash\ncodex mcp add tododdle \\\n  --env TODODDLE_CLIENT_ID=your_client_id \\\n  --env TODODDLE_CLIENT_SECRET=your_client_secret \\\n  -- npx --yes --prefer-online tododdle-mcp@latest\n\ncodex mcp list\n```\n\nCodex desktop, the CLI, and the IDE extension share the MCP configuration in `~/.codex/config.toml`. For project-specific configuration, add the same server to `.codex/config.toml` in a trusted project. Restart the server after changing credentials or scopes.\n\nSee the [Codex MCP documentation](https://learn.chatgpt.com/docs/extend/mcp) for configuration and troubleshooting.\n\n### Claude Code\n\nInstall the server for your user account so it is available across projects:\n\n```bash\nclaude mcp add tododdle --scope user \\\n  --env TODODDLE_CLIENT_ID=your_client_id \\\n  --env TODODDLE_CLIENT_SECRET=your_client_secret \\\n  -- npx --yes --prefer-online tododdle-mcp@latest\n\nclaude mcp get tododdle\n```\n\nRun `/mcp` inside Claude Code to inspect the connection. On native Windows, place `cmd /c` before `npx` in the command. See the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for scope options and diagnostics.\n\n### Cursor\n\nAdd this configuration to `~/.cursor/mcp.json` for all projects, or to `.cursor/mcp.json` for one project:\n\n```json\n{\n  \"mcpServers\": {\n    \"tododdle\": {\n      \"command\": \"npx\",\n      \"args\": [\"--yes\", \"--prefer-online\", \"tododdle-mcp@latest\"],\n      \"env\": {\n        \"TODODDLE_CLIENT_ID\": \"your_client_id\",\n        \"TODODDLE_CLIENT_SECRET\": \"your_client_secret\"\n      }\n    }\n  }\n}\n```\n\nDo not commit a project-level configuration containing real credentials. Restart Cursor after changing the configuration; ToDoddle tools will then be available to Agent. See the [Cursor MCP documentation](https://docs.cursor.com/context/model-context-protocol) for configuration and status controls.\n\nFor every client, `npx` downloads the package to npm's cache. Cloning ToDoddle or running a local ToDoddle service is not required.\n\n## Workflow Guidance\n\nThe MCP server provides capabilities. The package distributes four optional skills:\n\n| Skill | Use |\n| --- | --- |\n| `tododdle-workflow` | Manage ordinary tracked work and use ToDoddle as the durable ledger. |\n| `tododdle-bootstrap` | Bind an existing repository to one verified ToDoddle project. |\n| `tododdle-factory` | Run one explicit, supervised autonomous delivery attempt with an Agent Run and stable evidence. |\n| `tododdle-supervisor` | Use current ToDoddle supervision assessments at meaningful workflow decisions when a compatible backend is available. |\n\nThe bootstrap skill has a deterministic updater that adds a small managed block to the effective root agent instructions. The Factory skill reuses the workflow rules and adds bounded delivery, escalation, cleanup, and package staging checks. The Supervisor skill adds optional decision guidance without connecting the coding agent to Jev, OpenJev, or another evaluator.\n\nThe workflow skill keeps common routing and safety rules in a small entry file. Direct reference links load file handling, project execution, time tracking, and scheduled workflow details only when needed. This keeps the normal prompt smaller without hiding required rules.\n\nThe skill tells an agent to claim substantial ticket work, renew a long-running claim before it expires, and finish its Agent Run with evidence. It also covers ticket status, durable comments, verification, and handoffs. The skill does not add credentials or tools. Configure the MCP connection separately for each client.\n\n### Codex\n\nThe npm package includes a Codex plugin containing all four skills. Configure the MCP server first using the Codex instructions above, then add the ToDoddle plugin marketplace:\n\n```bash\ncodex plugin marketplace add krffl/tododdle-mcp\n```\n\nRestart Codex, open the Plugins Directory, select **ToDoddle**, and install the plugin. Codex can invoke the skills automatically. Use `$tododdle-bootstrap` to connect an existing repository. Use `$tododdle-workflow` for ordinary tracked work. Use `$tododdle-supervisor` when a configured supervision backend should guide decision boundaries. Invoke `$tododdle-factory` only for an explicit supervised factory run or autonomous delivery request.\n\nInstalling the plugin does not create or expand ToDoddle credentials, scopes, or project grants. All four skills declare the separately configured `tododdle` MCP server as a dependency.\n\n### Claude Code\n\nThe same npm package includes a Claude Code plugin containing the workflow, bootstrap, Factory, and Supervisor skills. Keep the existing ToDoddle MCP connection. Add the marketplace and install the plugin in Claude Code:\n\n```text\n/plugin marketplace add krffl/tododdle-mcp\n/plugin install tododdle@tododdle\n```\n\nChoose user scope to use the workflow across projects. Run `/reload-plugins` if Claude Code asks you to activate the plugin. Use `/tododdle:tododdle-bootstrap` for repository setup, `/tododdle:tododdle-workflow` for ordinary tracked work, `/tododdle:tododdle-supervisor` for available supervision decisions, and `/tododdle:tododdle-factory` for an explicit supervised delivery run. Claude Code can also invoke each skill from its description.\n\n### Supervision Guidance\n\nThe optional Supervisor skill reads current assessments through `get_supervisor_state`. It uses the normal ToDoddle workflow when no compatible evaluator is available. The coding agent never contacts Jev, OpenJev, or another decision engine directly. It does not manufacture guidance with `record_assessment`, and it does not let an assessment change Ticket status or bypass human control.\n\n### Supervised Factory Runs\n\nThe optional Factory skill coordinates one delivery attempt. The installed coding client supplies the model, repository, terminal, Git, and tests. ToDoddle supplies the brief, Context, Ticket, claim, durable Agent Run, evidence, review, and human oversight.\n\nThe skill stops for unclear requirements, destructive actions, migrations that need review, security or billing risk, production access, stale revisions, claim conflicts, missing access, failed verification, or exhausted limits. It records a handoff and releases the claim. It never silently completes or archives a Ticket. Before publishing a package that changes the Factory skill, complete its supervised staging dogfood gate.\n\nInstalling this plugin does not start another MCP server. It does not change OAuth, Agent Connection scopes, project grants, or existing MCP credentials.\n\n### Scheduled ToDoddle Workflows\n\nThe distributed skill includes opt-in recipes for a morning control tower, ticket review sweep, weekly backlog hygiene, roadmap summary, Agent Connection inbox follow-up, and local release verification. Each recipe defines a suggested cadence, required scopes, mutation level, prompt, duplicate controls, and approval boundaries.\n\nInstalling the plugin never creates a schedule. Ask Codex to create a named recipe, then confirm the timezone, project, cadence, and allowed mutation level. Test the prompt in a normal chat and review the first runs. Scheduled tasks can use the ToDoddle plugin and its connected MCP tools. Desktop tasks that need local files also require the project to remain available and the app to be running. See the [scheduled tasks documentation](https://learn.chatgpt.com/docs/automations).\n\nUse scheduled ToDoddle workflows for user-level checks and reports. Keep required service operations, such as notification delivery, billing reconciliation, webhook retries, and backups, in ToDoddle's server-owned queue or cron system.\n\n### Bounded Project Context\n\nFor substantial planning or implementation, load project context in a small, predictable sequence:\n\n1. Call `get_project_context` once for bounded board and lane structure, the brief summary, and artifact summaries.\n2. Call `get_project_brief` only when the complete canonical brief is relevant.\n3. Use `list_project_artifacts` to scan summary-only Context records. Call `get_project_artifact` only for the artifacts needed for the current work.\n4. Use `search_project` to discover an item in a known project. Follow the selected result with a narrow get tool. Use list tools for bounded browsing and reports, not repeated discovery scans. Keep list calls bounded and follow their pagination metadata.\n5. Reuse returned project, board, lane, ticket, and artifact IDs in the active conversation and its compaction summary. Refresh only volatile ticket state before a mutation.\n\nWhen an agent creates or changes artifact Markdown, it should provide a current summary in the same request. Summaries are limited to 500 characters. Older clients may omit the summary; the API accepts the write and returns a warning so the summary can be repaired before handoff.\n\nContext artifacts can form a tree. Supply `parentArtifactId` when creating or updating a child artifact. Set `parentArtifactId` to `null` during an update to move the artifact to the top level. The parent must belong to the same project. The canonical project brief cannot be a parent or child. ToDoddle rejects self-parenting and hierarchy cycles.\n\nSimple lookups should skip the brief and full context entirely. Use `search_project` when you know the project but not the item ID. It returns compact ticket, board, lane, Note, Context, and document matches. Follow the selected result with the narrowest get tool. Use `get_ticket` for one known ticket, `get_tickets` for 1–20 known ticket IDs, or hierarchy-filtered `list_tickets` for bounded browsing. `list_tickets` and `get_work_queue` return compact summaries by default. Set `detail` to `full` only when the complete list payload is necessary. `get_tickets` excludes comments by default. Request `latest_update` for one recent handoff or status update per ticket, or `all` only when full history is necessary. Do not batch-hydrate a broad list without a clear need. `get_work_queue` remains the cross-project operational view. The stable API fields `planId`, `sectionId`, and `taskId` identify boards, lanes, and tickets.\n\n### Version 3 migration\n\nVersion 3 replaces Plan, Section, and Task tool names with Board, Lane, and Ticket names. The hosted API paths and stable ID fields do not change. Version 2 clients must update to `tododdle-mcp@latest` and restart their agent host. The API returns `MCP_UPDATE_REQUIRED` with the exact update command when an old client identifies itself.\n\nThe server returns authoritative website URLs with records so an agent can hand work back to a human without reconstructing routes. Access remains the intersection of the Agent Connection's scopes, explicit project grants, and authorizing user's current ACL on every call.\n\n### Repository Policy\n\nWhen adding ToDoddle to an existing repository, invoke `$tododdle-bootstrap`. It verifies the ToDoddle project and adds a managed work-ledger block to the effective root instruction file. It uses `AGENTS.override.md` when that file already exists. Otherwise, it updates or creates `AGENTS.md`.\n\nThe bootstrap updater preserves every instruction outside `<!-- tododdle:start -->` and `<!-- tododdle:end -->`. It updates an existing block instead of adding a duplicate. It stops on malformed markers. Run its dry mode first and review the diff before writing. The updater never commits, pushes, or stores credentials.\n\nStart a new agent task or restart the agent host after bootstrap. Agents load repository instructions at task start. [`examples/AGENTS.tododdle.md`](examples/AGENTS.tododdle.md) remains the detailed manual policy for repositories that need more rules than the managed block.\n\n## Tools\n\n### Read And Plan\n\n- `list_projects`\n- `get_project`\n- `get_project_context`\n- `list_boards`\n- `get_board`\n- `list_lanes`\n- `get_lane`\n- `list_project_members`\n- `list_review_requests`\n- `get_review_request`\n- `list_review_comments`\n- `list_project_documents`\n- `get_document_download_url`\n- `list_notes`\n- `get_note`\n- `list_tickets`\n- `search_project`\n- `list_ticket_attributes`\n- `set_ticket_attribute`\n- `delete_ticket_attribute`\n\nTicket attributes hold small typed integration and handoff facts. Read them before updates, use namespaced keys, and never store secrets in them.\n- `get_work_queue`\n- `list_available_work`\n- `get_focus_list`\n- `add_ticket_to_focus`\n- `move_focus_ticket`\n- `remove_ticket_from_focus`\n- `get_ticket`\n- `get_tickets`\n- `get_support_case`\n- `get_project_brief`\n- `list_project_artifacts`\n- `get_project_artifact`\n- `get_agent_inbox`\n- `list_agent_runs`\n- `get_agent_run`\n- `get_supervisor_state`\n\n### Manage Tickets\n\n- `claim_ticket`\n- `claim_next_ticket`\n- `renew_ticket_claim`\n- `finish_agent_run`\n- `record_work_event`\n- `record_assessment`\n- `record_verification`\n- `release_ticket`\n- `create_ticket`\n- `update_ticket`\n- `transition_ticket`\n- `preview_ticket_move`\n- `move_ticket`\n- `set_ticket_blocker`\n- `add_ticket_comment`\n- `acknowledge_agent_reply`\n- `archive_ticket`\n\n`list_available_work` reads only unblocked, currently unclaimed work in one project. `claim_next_ticket` selects the highest-ranked eligible ticket. `claim_ticket` and `renew_ticket_claim` manage its agent lease without changing human assignment. `finish_agent_run` records the terminal result and releases the matching lease. `release_ticket` stops work without a result and records the run as cancelled. None of these tools changes ticket status. `preview_ticket_move` reports lane automation and hierarchy blockers before a board move. `move_ticket` and `archive_ticket` are destructive because a destination lane can archive the ticket. Ticket deletion is unavailable.\n\nSupported run-bound tools accept the stable `runId` and `projectId` needed to send the complete `X-ToDoddle-Run-*` header set. The API then binds the request to the stored workspace, project, Ticket, Agent Connection, allowed action, and expiry. Keep the same run ID from claim through completion. A run cannot approve itself or expand its own authority.\n\n`get_supervisor_state` returns compact, permission-filtered facts for one Ticket. `record_work_event` and `record_verification` add meaningful events to the existing Ticket timeline. `record_assessment` creates an immutable assessment with validated evidence. A correction refers to the earlier assessment and creates a new row. These tools cannot complete a Ticket, approve access, merge code, or deploy changes.\n\nDurable agent-to-human handoffs use typed `HANDOFF` comments with a concise outcome, verification and immutable evidence, and any remaining risk or next action. External mutations return a stable ToDoddle `uiUrl`; expiring asset token URLs must not be copied into comments. A continuing run reads and handles its Agent Connection inbox reply before acknowledgement, then reloads the linked record.\n\nTicket create/update accepts the stable kind values `TASK`, `FEATURE`, `EPIC`, `BUG`, `RESEARCH`, and `ACTION_ITEM`. Lane create/update supports `SET_KIND` alongside status, priority, assignee, review-request, and archive entry actions. `REQUEST_REVIEW` accepts one to 20 unique reviewer IDs and optional instructions. It cannot share a lane with `ARCHIVE_TASK`.\n\n### Manage Optional Reviews\n\n- `create_review_request`, `update_review_request`, `complete_review_request`, `cancel_review_request`\n- `respond_to_review_request`\n- `add_review_comment`\n- `add_review_checklist_item`, `update_review_checklist_item`\n\nReviews are optional and stay separate from ticket status. A request can target one Ticket, Document, Board, or Context artifact. Use `list_project_members` before selecting reviewers. Only a named reviewer can respond. Use `expectedRevision` for request updates, completion, and cancellation. Use the reviewer or checklist item `updatedAt` value for a response or checklist change. Create requests, comments, and checklist items require an idempotency key. Reuse that key only to retry the same operation.\n\n### Manage Support Cases\n\n- `get_support_case`\n- `update_support_case`\n- `reply_to_support_case`\n\nSupport cases remain linked to internal Tickets. Read the support case before a mutation and use its latest `revision`. Choose `REQUESTER_VISIBLE` only for a customer reply. Choose `INTERNAL_NOTE` for private operator context. MCP does not return the requester's email address.\n\n### Manage Project Structure\n\n- `create_project`, `update_project`, `archive_project`, `restore_project`\n- `create_board`, `update_board`, `move_board`, `archive_board`, `restore_board`\n- `create_lane`, `update_lane`, `move_lane`, `archive_lane`, `restore_lane`\n\nArchive operations are destructive and require client approval. Permanent deletion is intentionally unavailable.\n\n### Manage Notes\n\n- `create_note`\n- `update_note`\n- `archive_note`\n\nOmit `projectId` to work with workspace Notes. Supply `projectId` to work with Notes for that project. Project Notes require both an Agent Connection project grant and the current user access to the project. Parent Notes must use the same workspace or project scope.\n\n### Track Time\n\n- `get_active_time_entries`\n- `list_project_time`\n- `list_ticket_time`\n- `start_ticket_timer`\n- `stop_ticket_timer`\n- `log_ticket_time`\n- `update_time_entry`\n- `archive_time_entry`\n\n`archive_time_entry` is destructive and requires client approval.\n\n### Manage Project Context\n\n- `create_project_artifact`\n- `update_project_artifact`\n- `transition_project_artifact`\n- `link_artifact_ticket`\n- `add_artifact_comment`\n- `list_artifact_revisions`\n- `link_project_artifacts`\n\n`create_project_artifact` and `update_project_artifact` accept an optional `parentArtifactId`. Use it for true parent-child Context nesting. Set it to `null` on update to remove the current parent.\n\n### Upload Files\n\n- `upload_project_document`\n- `attach_file_to_ticket`\n- `begin_upload`\n- `complete_upload`\n\nEach tool accepts either an approved local `filePath` or an HTTPS `sourceUrl`. The local MCP creates a private staging root at `<system-temp>/tododdle-mcp-uploads` with user-only permissions. Files stream directly from this local MCP process to ToDoddle's short-lived Bunny upload URL; file bodies are never placed in MCP JSON messages.\n\nIf an agent copies a source file into a dedicated ToDoddle upload directory only to satisfy the local path restriction, it should remove that temporary copy after the tool confirms success. It should retain the copy after a failed or uncertain upload so the upload can be retried. It must never remove the original source or a pre-existing file. Temporary files that the MCP creates for HTTPS sources are removed automatically.\n\nFor a pasted or clipboard image, create a private temporary directory inside `<system-temp>/tododdle-mcp-uploads`. Save or copy the image attachment there with a suitable image extension. Never alter the original clipboard attachment. The MCP removes the staged file after confirmed success. It keeps the file after a failed or uncertain upload so the agent can retry and report the path.\n\nRemote clients use `begin_upload` and `complete_upload`. Call `begin_upload` with file metadata and an idempotency key. Upload the file bytes from the user's device directly to the returned short-lived URL with the returned headers. Then call `complete_upload` with the document ID and a new idempotency key. Do not print, log, or store the signed URL. A client that cannot send the direct HTTPS upload cannot use remote attachments. The hosted gateway and Vercel never receive or stage the file bytes.\n\nUse `get_document_download_url` with a `projectId` and `documentId` returned by `list_project_documents` to obtain a five-minute tokenized URL. The URL grants access only to that ready document and should not be stored in comments or other durable project context. Video documents return a protected stream URL when the workspace subscription permits playback.\n\nFor attachment review, request a fresh URL, download the asset into a private `mktemp -d` directory without printing or persisting the URL, and inspect the local file with the appropriate tool. Use a browser only when local download or rendering is unavailable. Remove only the agent-created temporary files and directory after successful inspection; never remove an original or pre-existing user file.\n\nThe server also provides ticket, project, and project-artifact resource templates plus `triage_work` and `daily_status` prompts.\n\n## Permissions\n\nTools never expand the Agent Connection's authority. Every request is checked against all three layers:\n\n1. The Agent Connection's granted scopes.\n2. Its granted projects.\n3. The authorizing user's organization and project permissions.\n\nConfigure scopes and project grants in ToDoddle under **Agent Connections**. Scopes are not requested by or stored in this package.\n\nCommon scopes include:\n\n- `projects:read` and `projects:write`\n- `tasks:read` and `tasks:write`\n- `context:read` and `context:write`\n- `time:read` and `time:write`\n- `documents:read` and `documents:write`\n\nUploading a project document requires `projects:read` and `documents:write`. Attaching a new upload to a task also requires `tasks:write`.\n\n## Environment\n\n| Variable | Required | Default | Purpose |\n| --- | --- | --- | --- |\n| `TODODDLE_CLIENT_ID` | Yes | None | Agent Connection identifier |\n| `TODODDLE_CLIENT_SECRET` | Yes | None | Agent Connection secret |\n| `TODODDLE_BASE_URL` | No | `https://app.tododdle.com` | Application API origin; HTTPS is required except for loopback development |\n| `TODODDLE_UPLOAD_ROOTS` | No | None | Optional platform path-delimited list of additional directories the MCP may read for uploads |\n| `TODODDLE_MAX_UPLOAD_BYTES` | No | `1073741824` | Local safety ceiling; the hosted API may enforce a lower limit |\n\nNo upload-root configuration is needed for normal local use. Stage temporary files below `<system-temp>/tododdle-mcp-uploads`; do not use the full system temporary directory as an approved root. On macOS and Linux, separate optional roots with `:`; on Windows, use `;`. The server resolves symlinks and rejects files outside managed staging and approved roots. Add optional roots only for Docker, sandboxes, or directories whose contents you approve for upload. HTTPS sources reject embedded credentials, private-network destinations, unsafe redirects, oversized responses, and empty files.\n\nUse the final application API origin directly. The public `tododdle.com` and `www.tododdle.com` hosts serve the marketing site and are rejected. Legacy `trackingti.me` hosts are also rejected because cross-origin redirects must not forward bearer credentials.\n\nTokens are held in memory only and refreshed automatically. The client secret is sent only to ToDoddle's hosted token endpoint. Server diagnostics go to stderr so stdout remains reserved for MCP JSON-RPC.\n\n## Development\n\n```bash\nnpm install\nnpm run format:check\nnpm run type-check\nnpm run test:coverage\nnpm run check:api-parity -- /path/to/tododdle/src/config/api-route-inventory.json\nnpm audit --audit-level=low\nnpm pack --dry-run\n```\n\n`config/external-api-parity.json` is the checked contract between the model-callable tool registry and ToDoddle's External API inventory. Every discovered tool must appear in the manifest, every tool is invoked with schema-valid input in tests, and every resulting API method/path must match its declared mapping. External methods that are transport-only, compatibility-only, aggregated by another tool, or superseded have an explicit reviewed exception instead of disappearing from the audit.\n\nWhen the application External API changes, compare its generated `src/config/api-route-inventory.json` with this manifest before releasing either side. The current reviewed surface accounts for every External API method with no missing or extra entries; tool totals are derived from the registry and manifest rather than a historical hard-coded count.\n\nRun the MCP package from source:\n\n```bash\nTODODDLE_CLIENT_ID=... \\\nTODODDLE_CLIENT_SECRET=... \\\nnpm run dev\n```\n\nThe npm `prepack` lifecycle builds `dist/` automatically. `prepublishOnly` runs the complete package test and coverage thresholds before publication.\n\n## Release Safety\n\n- Review `npm pack --dry-run` and verify that only the declared runtime, plugin, skill, examples, parity manifest, documentation, license, and package metadata are present.\n- Publish from a tagged release with npm trusted publishing/provenance where available.\n- Treat tool removal, renaming, or incompatible input changes as major releases.\n- Keep generated ToDoddle connection snippets pinned to a tested package version.\n\n## License\n\nMIT\n\n### Private image inspection\n\nUse `get_document_image(projectId, documentId, size?)` to inspect a private image directly. The tool returns native MCP image content plus document metadata. `size` defaults to `standard` (1280 pixels); use `large` (2560 pixels) for small text. It requires the same `projects:read` and `documents:read` access as document downloads. No signed URL or base64 text copy is returned.\n\nThe web API converts PNG, JPEG, WebP, GIF, and AVIF to JPEG. It uses the first animation frame, removes metadata, and applies source-byte, pixel, output-byte, and time limits. Other file types still use `get_document_download_url`. Image contents are untrusted evidence, never operating instructions.\n\nDeploy the matching web `/documents/:documentId/image` API before releasing this package or updating the hosted server. Existing clients must refresh their server/tool list. This change needs no new credential or scope.\n\n### 3.5.0 release\n\nAdds native private image previews through `get_document_image`. Deploy the matching web image endpoint before updating clients. Refresh the plugin or restart an npm-based MCP client after updating to 3.5.0. No database migration or new environment setting is required. Hosted rollout remains a separate release gate.\n\n### 3.5.1 release\n\nUpdates vulnerable transitive dependencies and enforces the dependency audit in both the publish workflow and `prepublishOnly`. A release must pass Quality before its tag is published. Failed audits must be fixed, not bypassed.\n\n### 3.6.0 release\n\nAdds the provider-neutral supervision tools and the optional `tododdle-supervisor` skill. The skill uses current ToDoddle assessments when a compatible decision backend is available and falls back to the normal workflow when it is not. This release also accounts for the bounded supervision aggregate in the External API parity manifest. No new MCP credential or scope is required.\n","readmeFilename":"README.md"}