{"_id":"@dennypradipta/date-operations-mcp","_rev":"5-2ede1aece03d14c5dd4193033b558f1a","name":"@dennypradipta/date-operations-mcp","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@dennypradipta/date-operations-mcp","version":"1.0.0","keywords":["date","fns","mcp"],"author":{"name":"Denny Pradipta"},"license":"MIT","_id":"@dennypradipta/date-operations-mcp@1.0.0","maintainers":[{"name":"dennypradipta","email":"denny@hyperjump.tech"}],"homepage":"https://github.com/dennypradipta/date-operations-mcp#readme","bugs":{"url":"https://github.com/dennypradipta/date-operations-mcp/issues"},"dist":{"shasum":"e58d09b3b56f24235da248fa0d113725b871c8d4","tarball":"https://registry.npmjs.org/@dennypradipta/date-operations-mcp/-/date-operations-mcp-1.0.0.tgz","fileCount":11,"integrity":"sha512-XIox5HCP/OUaRyUTRX3EguaHsq23FEMA33xEKhRGl7v8rXPMbMkd9dxI06yQf3q6PKpqyRACTFJbGkHOWIhvCA==","signatures":[{"sig":"MEUCIQCad0O0uPdopqoSHNazae+csztwkY1wwCfKsKitAW4NQAIgHmj8XViTCX6y3G9AF5qx6TBEBGXNY94CmH4LvFvbIW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29347},"main":"index.ts","type":"module","gitHead":"888e4c4175ffabc013d3bb3eb14141d6d056456c","scripts":{"dev":"tsx index.ts","test":"vitest --run --coverage","build":"tsc","start":"node dist/index.js","test:watch":"vitest --coverage --watch"},"_npmUser":{"name":"dennypradipta","email":"denny@hyperjump.tech"},"repository":{"url":"git+https://github.com/dennypradipta/date-operations-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"MCP for Date Operations","directories":{},"_nodeVersion":"24.9.0","dependencies":{"zod":"^3.25.76","fastmcp":"^3.19.1","date-fns":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.7.1","@vitest/coverage-v8":"^3.2.4","@vitest/coverage-istanbul":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/date-operations-mcp_1.0.0_1760079556777_0.5184582799171635","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dennypradipta/date-operations-mcp","version":"1.0.1","keywords":["date","fns","mcp"],"author":{"name":"Denny Pradipta"},"license":"MIT","_id":"@dennypradipta/date-operations-mcp@1.0.1","maintainers":[{"name":"dennypradipta","email":"denny@hyperjump.tech"}],"homepage":"https://github.com/dennypradipta/date-operations-mcp#readme","bugs":{"url":"https://github.com/dennypradipta/date-operations-mcp/issues"},"dist":{"shasum":"e1321046efadecfd40c9080b18cb9fe0dbf91766","tarball":"https://registry.npmjs.org/@dennypradipta/date-operations-mcp/-/date-operations-mcp-1.0.1.tgz","fileCount":11,"integrity":"sha512-zXLZDAeVzn4fVPjcKeoUcS+atS8M6E3+VxTqw6Bjmn6RbDb08IP+i60TG/C+76yY6qdZ4W92kaYH15qGT5HKug==","signatures":[{"sig":"MEUCIQDsLjbvM3z8peo89Gvu1Rl4sT+f0AJE7YU9vc/GLBe0ZAIgPlwEpx6lGytPA1UtIR2CwdvBVKuLiGfd/vGzjn4HNUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29348},"main":"index.js","type":"module","gitHead":"b5245b1a78ec7e8fb2d2d2f344b606c7d99dfe18","scripts":{"dev":"tsx index.ts","test":"vitest --run --coverage","build":"tsc","start":"node dist/index.js","test:watch":"vitest --coverage --watch"},"_npmUser":{"name":"dennypradipta","email":"denny@hyperjump.tech"},"repository":{"url":"git+https://github.com/dennypradipta/date-operations-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"MCP for Date Operations","directories":{},"_nodeVersion":"24.9.0","dependencies":{"zod":"^3.25.76","fastmcp":"^3.19.1","date-fns":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.7.1","@vitest/coverage-v8":"^3.2.4","@vitest/coverage-istanbul":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/date-operations-mcp_1.0.1_1760079983398_0.05897341307463044","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dennypradipta/date-operations-mcp","version":"1.0.2","keywords":["dennypradipta","date","operations","mcp","fast-mcp"],"author":{"name":"Denny Pradipta"},"license":"MIT","_id":"@dennypradipta/date-operations-mcp@1.0.2","maintainers":[{"name":"dennypradipta","email":"denny@hyperjump.tech"}],"homepage":"https://github.com/dennypradipta/date-operations-mcp#readme","bugs":{"url":"https://github.com/dennypradipta/date-operations-mcp/issues"},"bin":{"date-operations-mcp":"dist/index.js"},"dist":{"shasum":"2fb8f87104cd2210b39f1d14316870afbdad9385","tarball":"https://registry.npmjs.org/@dennypradipta/date-operations-mcp/-/date-operations-mcp-1.0.2.tgz","fileCount":15,"integrity":"sha512-JXwLlUAUnoBnCcof8o4Ka6Zkvbj2SqlIe6ldA9zHYCt31r0bkcFvKzIcLcWDooQThZN8enwzLs2yISCJES50DQ==","signatures":[{"sig":"MEYCIQCnm7Z1cdflpvT+Sqrc5F8Rh16lE5xVY/UunQ4aBNFXigIhALpvUtVarsFgw7zwtY2flPu7t64MGzuxQ4vXeOy2GG0H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21868},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ce29b1f2fe414826bb9ad3bf3879b1dcba18756e","scripts":{"dev":"tsx src/index.ts","test":"vitest --run --coverage","build":"tsc","start":"node dist/index.js","test:watch":"vitest --coverage --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"dennypradipta","email":"denny@hyperjump.tech"},"repository":{"url":"git+https://github.com/dennypradipta/date-operations-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"MCP for Date Operations","directories":{},"_nodeVersion":"24.9.0","dependencies":{"zod":"^3.25.76","fastmcp":"^3.19.1","date-fns":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.7.1","@vitest/coverage-v8":"^3.2.4","@vitest/coverage-istanbul":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/date-operations-mcp_1.0.2_1760080523978_0.4768253036155494","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dennypradipta/date-operations-mcp","version":"1.0.3","keywords":["dennypradipta","date","operations","mcp","fast-mcp"],"author":{"name":"Denny Pradipta"},"license":"MIT","_id":"@dennypradipta/date-operations-mcp@1.0.3","maintainers":[{"name":"dennypradipta","email":"denny@hyperjump.tech"}],"homepage":"https://github.com/dennypradipta/date-operations-mcp#readme","bugs":{"url":"https://github.com/dennypradipta/date-operations-mcp/issues"},"bin":{"date-operations-mcp":"dist/index.js"},"dist":{"shasum":"25649ecf87f4a56043c41d7b8449a200949026b0","tarball":"https://registry.npmjs.org/@dennypradipta/date-operations-mcp/-/date-operations-mcp-1.0.3.tgz","fileCount":15,"integrity":"sha512-FDxct6HebbDVAqV3YScyqGWg2mX9oWEZjC6MkRvZlvpImGB8Wjn9R2OQUCe7yHEorHP8K20g0cIt2NgEa5H8sg==","signatures":[{"sig":"MEUCIFnOQ5SPOctzbbopIEQ5X9Udhkd43NUIolceNGNmQyDtAiEAq0q8nvzF0tj44sNIIWX0e/Ym6yu3WBpgZEFuJ+Frr1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25773},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5d65e2f0a0e0fdc55c97629826958ab6ae051e7a","scripts":{"dev":"tsx src/index.ts","test":"vitest --run --coverage","build":"tsc","start":"node dist/index.js","test:watch":"vitest --coverage --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"dennypradipta","email":"denny@hyperjump.tech"},"repository":{"url":"git+https://github.com/dennypradipta/date-operations-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"MCP for Date Operations","directories":{},"_nodeVersion":"24.9.0","dependencies":{"zod":"^3.25.76","fastmcp":"^3.19.1","date-fns":"^4.1.0","@dennypradipta/date-operations-mcp":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.7.1","@vitest/coverage-v8":"^3.2.4","@vitest/coverage-istanbul":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/date-operations-mcp_1.0.3_1760093790191_0.484804958107512","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@dennypradipta/date-operations-mcp","version":"1.0.4","description":"MCP for Date Operations","keywords":["dennypradipta","date","operations","mcp","fast-mcp"],"homepage":"https://github.com/dennypradipta/date-operations-mcp#readme","bugs":{"url":"https://github.com/dennypradipta/date-operations-mcp/issues"},"repository":{"type":"git","url":"git+https://github.com/dennypradipta/date-operations-mcp.git"},"license":"MIT","author":{"name":"Denny Pradipta"},"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"bin":{"date-operations-mcp":"dist/index.js"},"scripts":{"test":"vitest --run --coverage","test:watch":"vitest --coverage --watch","dev":"tsx src/index.ts","start":"node dist/index.js","build":"tsc","prepublishOnly":"npm run build"},"devDependencies":{"@types/node":"^24.7.1","@vitest/coverage-istanbul":"^3.2.4","@vitest/coverage-v8":"^3.2.4","tsx":"^4.20.6","typescript":"^5.9.3","vitest":"^3.2.4"},"dependencies":{"@dennypradipta/date-operations-mcp":"^1.0.2","date-fns":"^4.1.0","fastmcp":"^3.19.1","zod":"^3.25.76"},"_id":"@dennypradipta/date-operations-mcp@1.0.4","gitHead":"950b89ee878545ab9404f347875df13c34b998ba","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-w4q7mCKawySMIFlCLp5kZvwhVFNdqfvlA3xHmgv6PUJ5xNKq2vwo/uF7JLD+CVaDdozBW+Ta0UnnthVln1wszw==","shasum":"14d80c41c5af58090c2f3f7ffa16829b2652cc4c","tarball":"https://registry.npmjs.org/@dennypradipta/date-operations-mcp/-/date-operations-mcp-1.0.4.tgz","fileCount":15,"unpackedSize":25875,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCHvEfQQRGn1rDcKWozycrgFQoM44FkTGdun05jWmNioAIhAIRLTfKcQ2crMM9Z+CcZ6cz/EncmFREtpmfdyMV1JOzt"}]},"_npmUser":{"name":"dennypradipta","email":"denny@hyperjump.tech"},"directories":{},"maintainers":[{"name":"dennypradipta","email":"denny@hyperjump.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/date-operations-mcp_1.0.4_1760094369098_0.1506794677395782"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-10T06:59:16.376Z","modified":"2025-10-10T11:06:09.469Z","1.0.0":"2025-10-10T06:59:16.979Z","1.0.1":"2025-10-10T07:06:23.591Z","1.0.2":"2025-10-10T07:15:24.155Z","1.0.3":"2025-10-10T10:56:30.385Z","1.0.4":"2025-10-10T11:06:09.289Z"},"bugs":{"url":"https://github.com/dennypradipta/date-operations-mcp/issues"},"author":{"name":"Denny Pradipta"},"license":"MIT","homepage":"https://github.com/dennypradipta/date-operations-mcp#readme","keywords":["dennypradipta","date","operations","mcp","fast-mcp"],"repository":{"type":"git","url":"git+https://github.com/dennypradipta/date-operations-mcp.git"},"description":"MCP for Date Operations","maintainers":[{"name":"dennypradipta","email":"denny@hyperjump.tech"}],"readme":"## Date Operations MCP\n\nLightweight Model Context Protocol (MCP) server exposing common date/time operations powered by `date-fns`. Built on `fastmcp` with an HTTP stream transport.\n\n### Features\n\n- **now**: Current timestamp in ISO 8601\n- **format**: Format a date using Unicode tokens (UTS #35)\n- **add / subtract**: Add or subtract a duration from a date\n- **difference**: Compute difference between two dates in a chosen unit\n- **check**: Compare two dates (after, before, equal)\n\n### Requirements\n\n- Node.js 18+ (or 20+ recommended)\n\n### Install\n\n```bash\nnpm install\n```\n\n### Run (dev)\n\n```bash\nnpm run dev\n# Server listens on http://localhost:3000 (HTTP stream)\n```\n\n### Build & Run (prod)\n\n```bash\nnpm run build\nnpm start\n# Outputs to dist/ and runs Node on dist/index.js\n```\n\n### Client integration (MCP over HTTP stream)\n\nThis server uses `fastmcp` with `transportType: \"httpStream\"` on port `3000`. Point your MCP-capable client at `http://localhost:3000`.\n\n- Claude Desktop / Cursor: Configure an MCP HTTP server pointing to `http://localhost:3000`. Refer to your client's MCP HTTP configuration docs and set the URL accordingly.\n\n> Note: The server exposes an HTTP stream suitable for MCP-aware clients. It is not a conventional REST API.\n\n### Tools\n\n#### now\n\n- **Description**: Get the current date/time.\n- **Parameters**: none\n- **Returns**: ISO 8601 string\n\nExample result:\n\n```json\n\"2025-01-01T12:34:56.789Z\"\n```\n\n#### format\n\n- **Description**: Format a date.\n- **Parameters**:\n  - `date` (string, ISO 8601)\n  - `format` (string, Unicode tokens per date-fns v4)\n- **Returns**: formatted string\n\nExample call payload (conceptual):\n\n```json\n{\n  \"date\": \"2025-01-01T00:00:00.000Z\",\n  \"format\": \"yyyy-MM-dd'T'HH:mm:ssXXX\"\n}\n```\n\n#### add\n\n- **Description**: Add a duration to a date.\n- **Parameters**:\n  - `date` (string, ISO 8601)\n  - `duration` (object) — all numeric fields are required; pass `0` if unused\n    - `years`, `months`, `weeks`, `days`, `hours`, `minutes`, `seconds`\n- **Returns**: ISO 8601 string (result date)\n\nExample:\n\n```json\n{\n  \"date\": \"2025-01-01T00:00:00.000Z\",\n  \"duration\": {\n    \"years\": 0,\n    \"months\": 1,\n    \"weeks\": 0,\n    \"days\": 2,\n    \"hours\": 0,\n    \"minutes\": 30,\n    \"seconds\": 0\n  }\n}\n```\n\n#### subtract\n\n- **Description**: Subtract a duration from a date.\n- **Parameters**: same shape as `add`\n- **Returns**: ISO 8601 string (result date)\n\n#### difference\n\n- **Description**: Difference between two dates in a given unit.\n- **Parameters**:\n  - `dateFrom` (string, ISO 8601)\n  - `dateTo` (string, ISO 8601)\n  - `unit` (enum): `seconds | minutes | hours | days | weeks | months | years`\n- **Returns**: human-readable string with the numeric difference and unit\n\nExample:\n\n```json\n{\n  \"dateFrom\": \"2025-01-01T00:00:00.000Z\",\n  \"dateTo\": \"2025-02-01T00:00:00.000Z\",\n  \"unit\": \"days\"\n}\n```\n\n#### check\n\n- **Description**: Compare two dates.\n- **Parameters**:\n  - `firstDate` (string, ISO 8601)\n  - `secondDate` (string, ISO 8601)\n  - `operator` (enum): `after | before | equal`\n- **Returns**: human-readable string indicating the boolean result\n\nExample:\n\n```json\n{\n  \"firstDate\": \"2025-01-02T00:00:00.000Z\",\n  \"secondDate\": \"2025-01-01T00:00:00.000Z\",\n  \"operator\": \"after\"\n}\n```\n\n### Notes and assumptions\n\n- Dates are expected as ISO 8601 strings (UTC recommended).\n- `format` uses Unicode tokens (UTS #35) as in date-fns v4.\n- For `add`/`subtract`, provide all duration fields; use `0` when not needed.\n\n### Project scripts\n\n- **dev**: `tsx index.ts`\n- **build**: `tsc` → emits `dist/`\n- **start**: `node dist/index.js`\n- **test**: `vitest --coverage`\n\n### License\n\nMIT © Denny Pradipta\n","readmeFilename":"README.md"}