npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

tsforge-mcp

v0.1.0

Published

Zero-dependency MCP server: 15 timestamp tools LLMs compute unreliably (cron edge cases, Excel 1900 leap-year bug, ISO-8601 duration, multi-dialect SQL, business days, batch convert). One codebase, dual transport (stdio for Claude + Streamable HTTP for Ch

Readme

tsforge-mcp

Zero-dependency MCP server exposing 15 timestamp tools that LLMs compute unreliably — cron edge cases, the Excel 1900 leap-year bug, ISO-8601 duration arithmetic, multi-dialect SQL timestamp generation, business-day counting, and batch conversion.

One codebase, two transports:

  • stdio — Claude Desktop / local agents (MCP native)
  • http — ChatGPT Apps SDK / any remote MCP client (Streamable HTTP)

No npm dependencies. No network calls. Pure Node.js built-ins.

Why this exists

The official mcp-server-time ships only two tools (get_current_time, convert_time) — things an LLM can already do. The moat is everything an LLM gets wrong at the boundaries: leap-day cron (29 Feb), the Excel 1900 leap-year bug (serial 60 → a non-existent date), ISO week rollovers, DST/timezone offsets, multi-dialect SQL, and holiday-aware business days.

sql_timestamp in particular targets a blue ocean: Google's AI Overview still only surfaces syntax docs (MS Learn / W3Schools / StackExchange) — no clean dedicated converter ranks for it yet.

Try it online

If you prefer a web UI, the same engine powers GotTimestamp.com — the dedicated SQL timestamp converter page built for this niche.

Install

npm install -g tsforge-mcp
# or run directly
node server.mjs --transport stdio

Use with Claude Desktop (stdio)

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "tsforge": {
      "command": "node",
      "args": ["/absolute/path/to/tsforge-mcp/server.mjs", "--transport", "stdio"]
    }
  }
}

Use with ChatGPT Apps SDK (remote HTTP)

  1. Deploy the HTTP server (any host that keeps a long-lived Node process, e.g. a container / VM):
    node server.mjs --transport http --port 3000
  2. Expose it at a public HTTPS URL (reverse proxy / tunnel).
  3. Submit the MCP server via the ChatGPT Apps SDK submission portal. Because the Apps SDK is built on MCP, the same server is callable from both ChatGPT and the Claude/MCP ecosystem.

Tools

P0 — moat (LLM boundary errors)

| tool | what it does | |------|--------------| | cron_next | next N fire times of a 5-field cron, including 29 Feb | | cron_describe | human-readable cron description | | excel_serial | Excel serial ↔ date, handles the 1900 leap-year bug | | iso_duration | add PnYnMnDTnHnMnS to a date (variable months/years) | | sql_timestamp | correct SQL for epoch↔datetime across MySQL / Postgres / SQLite / SQL Server | | business_days | weekdays between dates minus an optional holiday list | | batch_convert | convert an array of epochs/dates in one call (enterprise batch) |

P1 — general

convert_timestamp (s/ms/us/ns) · timezone_convert · week_number (ISO) · relative_time · date_difference · add_subtract · age_calculator · timestamp_generate · date_info

Test

node test_lib.mjs     # boundary correctness (Excel bug, cron leap-day, ISO week…)
node test.mjs        # MCP stdio handshake
node test_http.mjs   # MCP Streamable HTTP handshake + tool calls