1. Conduid
  2. Automation
  3. io.github.sagarkalra-tech/timezest-mcp
MCP server · Automation

io.github.sagarkalra-tech/timezest-mcp

MCP Server for TimeZest: manage appointments, pending requests, and ticket schedules in Claude.

Unclaimed automation
37Low

Scored 6 months ago · breakdown

About io.github.sagarkalra-tech/timezest-mcp

io.github.sagarkalra-tech/timezest-mcp is an MCP server in the Automation category: mCP Server for TimeZest: manage appointments, pending requests, and ticket schedules in Claude.

Install

Claude Code
claude mcp add io-github-sagarkalra-tech-timezest-mcp -- npx -y timezest-mcp
npx
npx -y timezest-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (8)

find_appointment_by_ticketFind appointments linked to a ConnectWise ticket number

Parameters not published.

get_appointment_statsAggregate summary: counts by status, by engineer, today's load, oldest pending

Parameters not published.

get_appointment_typesList all appointment type definitions configured in TimeZest

Parameters not published.

get_engineer_scheduleAll upcoming appointments for a specific engineer, sorted by time

Parameters not published.

get_todays_appointmentsMorning briefing — today's confirmed appointments grouped by engineer, plus pending unbooked requests

Parameters not published.

list_appointmentsFlexible query across any date range with optional filters

Parameters not published.

list_cancelled_appointmentsCancelled requests with scheduling URLs for rebooking

Parameters not published.

list_pending_requestsUnbooked invitations (sent/new) with age tracking in hours/days

Parameters not published.

Ask AI

✦

Ask AI about io.github.sagarkalra-tech/timezest-mcp

Powered by Claude · Grounded in docs

I know everything about io.github.sagarkalra-tech/timezest-mcp. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

⏰ TimeZest MCP Server

npm version MCP Registry CI

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

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About io.github.sagarkalra-tech/timezest-mcp

How do I install io.github.sagarkalra-tech/timezest-mcp?

Run claude mcp add io-github-sagarkalra-tech-timezest-mcp -- npx -y timezest-mcp, then add the server to your MCP client's configuration.

Is io.github.sagarkalra-tech/timezest-mcp safe to use with an AI agent?

Its trust score is 37 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is io.github.sagarkalra-tech/timezest-mcp still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.