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

timezest-mcp

v1.1.2

Published

MCP Server for TimeZest scheduling API — brings appointments, pending requests, and ticket-linked schedules to Claude.

Downloads

1,220

Readme

⏰ TimeZest MCP Server

npm version MCP Registry CI License: MIT

Bring your TimeZest scheduling data directly into Claude through the Model Context Protocol (MCP). Perform real-time appointment lookups, engineer briefings, and ticket-linked schedule management — all with natural language.

Registry ID: io.github.sagarkalra-tech/timezest-mcp


🌟 Why TimeZest MCP?

If you manage a team that uses TimeZest with ConnectWise, you know the pain: toggling between tabs, manually checking who's booked, chasing unbooked scheduling requests, and cross-referencing ticket numbers.

This MCP server turns Claude into a scheduling assistant that can:

  • 🗓️ Give you a morning briefing of today's confirmed appointments grouped by engineer
  • 🔍 Find appointments by ticket number — just say "find appointments for ticket #964400"
  • ⏳ Surface aging unbooked requests that need follow-up
  • 📊 Generate aggregate scheduling stats across your team
  • 🕐 Handle timezone-accurate reporting across global MSP teams

🚀 Get Started in 30 Seconds

Prerequisites

  • Node.js 20+Download here
  • TimeZest API Key — Found in TimeZest → Settings → API

Option 1: Claude Desktop (Recommended)

Add this to your Claude Desktop configuration file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "timezest": {
      "command": "npx",
      "args": ["-y", "timezest-mcp@latest"],
      "env": {
        "TIMEZEST_API_KEY": "your-timezest-api-key-here"
      }
    }
  }
}

Restart Claude Desktop. You're done.

Option 2: Claude Code CLI

claude mcp add-json timezest-mcp '{
  "command": "npx",
  "args": ["-y", "timezest-mcp@latest"],
  "env": {
    "TIMEZEST_API_KEY": "your-timezest-api-key-here"
  }
}'

Option 3: VS Code (Copilot)

Add to your .vscode/settings.json or User Settings:

{
  "mcp": {
    "servers": {
      "timezest": {
        "command": "npx",
        "args": ["-y", "timezest-mcp@latest"],
        "env": {
          "TIMEZEST_API_KEY": "your-timezest-api-key-here"
        }
      }
    }
  }
}

🛠️ Available Tools

The server exposes 8 specialized tools that Claude can call:

| Tool | Description | Key Parameters | |------|-------------|----------------| | get_todays_appointments | Morning briefing — today's confirmed appointments grouped by engineer, plus pending unbooked requests | timezone | | list_appointments | Flexible query across any date range with optional filters | start_date, end_date, engineer_name, status | | get_engineer_schedule | All upcoming appointments for a specific engineer, sorted by time | engineer_name, days_ahead, include_pending | | list_pending_requests | Unbooked invitations (sent/new) with age tracking in hours/days | days_back, engineer_name, older_than_hours | | find_appointment_by_ticket | Find appointments linked to a ConnectWise ticket number | ticket_number (e.g., 964400 or #964400) | | get_appointment_types | List all appointment type definitions configured in TimeZest | — | | get_appointment_stats | Aggregate summary: counts by status, by engineer, today's load, oldest pending | days_back, days_forward | | list_cancelled_appointments | Cancelled requests with scheduling URLs for rebooking | days_back, engineer_name |


💬 Example Prompts

Once connected, just talk to Claude naturally:

"Who are my top engineers today and what are they booked for?"

"Find any TimeZest requests for ticket #964400."

"Give me a morning briefing of today's confirmed vs. unbooked requests."

"Show me all pending scheduling requests older than 48 hours."

"What's the scheduling volume breakdown for the last two weeks?"

"Pull up Sarah's schedule for the next 5 days."

"List all cancelled appointments from last week — any we should rebook?"

⚙️ Configuration

| Environment Variable | Required | Default | Purpose | |---------------------|----------|---------|---------| | TIMEZEST_API_KEY | Yes | — | Your TimeZest Bearer token (Settings → API) | | TIMEZEST_DEFAULT_TZ | No | America/Chicago | Default IANA timezone for localized display strings | | TIMEZEST_WINDOW_DAYS_BACK | No | 14 | How many days back to fetch scheduling requests | | TIMEZEST_WINDOW_DAYS_FORWARD | No | 30 | How many days forward to fetch scheduling requests |


🏗️ Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        MCP CLIENT (Claude)                      │
│        Desktop App  •  Claude Code CLI  •  IDE Plugin           │
└──────────────────────────┬──────────────────────────────────────┘
                           │ Stdio (JSON-RPC)
┌──────────────────────────▼──────────────────────────────────────┐
│                     TIMEZEST MCP SERVER                         │
│                                                                 │
│  ┌──────────────┐  ┌──────────────┐                             │
│  │ Tool Handler │  │  MCP SDK     │  (index.ts)                 │
│  │ (8 Tools)    │  │  Registry    │                             │
│  └──────┬───────┘  └──────────────┘                             │
│         │                                                       │
│  ┌──────▼────────────────────────────────────────────────────┐  │
│  │                 TIMEZEST API CLIENT                        │  │
│  │  Pagination • Retry Logic • Rate Limit Management         │  │
│  └──────────────────────┬────────────────────────────────────┘  │
│                         │ (client.ts)                            │
│  ┌──────────────────────▼────────────────────────────────────┐  │
│  │               DATA TRANSFORMATION LAYER                    │  │
│  │  Timezone Math • Engineer Mapping • Ticket Linking         │  │
│  └────────────────────────────────────────────────────────────┘  │
│                         │ (utils/)                               │
└─────────────────────────┼────────────────────────────────────────┘
                          │ HTTPS / REST
┌─────────────────────────▼──────────────────────────────────────┐
│                      TIMEZEST API (v1)                          │
│       Scheduling Requests • Appointment Types • Resources       │
└─────────────────────────────────────────────────────────────────┘

Key Design Decisions

  • Read-Only: Intentionally kept read-only — no mutations to your scheduling data
  • Resilient Client: Exponential backoff with automatic Retry-After header support for 429/5xx errors
  • Deep Pagination: Recursively crawls all pages (50-item chunks) to build complete datasets
  • Timezone Precision: Converts Unix timestamps to strict ISO with localized display strings using IANA timezone identifiers
  • Engineer Resolution: Uses a "highest-confidence" search — checks scheduled_agents first, then falls back to resources
  • Warm Cache: Appointment types are cached after first fetch to reduce API overhead

🧪 Testing

The server ships with a comprehensive Vitest test suite — 22 tests across 3 files:

| Test File | Tests | Coverage | |-----------|-------|----------| | transform.test.ts | 8 | Engineer resolution, ticket extraction, timezone conversion, graceful handling of missing fields | | filter.test.ts | 6 | Case-insensitive partial matching, team name matching, date-range filtering | | client.test.ts | 8 | Appointment type caching, pagination, retry on 429/5xx, no-retry on 4xx |

All tests use mocked API responses — no live API calls, no secrets needed.

npm test            # Single run
npm run test:watch  # Re-runs on file save

🔒 Security & Trust

  • NPM Provenance: Every release is cryptographically signed via GitHub Actions OIDC
  • CI/CD Pipeline: Automated build → test → publish on tagged releases (no manual npm publish)
  • No Secrets in CI: Tests require no API keys — fully deterministic with mocked responses
  • Node.js Matrix: Tested on Node 20 (LTS) and 22 (Current)

📦 Distribution

| Channel | Link | |---------|------| | NPM | timezest-mcp | | MCP Registry | io.github.sagarkalra-tech/timezest-mcp | | GitHub | sagarkalra-tech/TimeZest-MCP |


🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/my-feature)
  3. Make your changes and ensure tests pass (npm test)
  4. Submit a pull request

See ARCHITECTURE.md for a deep dive into the data flow, component design, and transformation logic.


📄 License

MIT © 2026 Sagar Kalra