Timezest Mcp

io.github.sagarkalra-tech由 GitHub 帳號 sagarkalra-tech 發布v1.1.0更新於 Oct 24, 2026

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

已驗證STDIO僅桌面效率與工作流商業與電商

概覽

AI 產生的概覽

一個唯讀的 MCP 伺服器,把 TimeZest 排程資料帶進助理:預約、待處理請求、工程師行程和關聯工單的預約。

可以做什麼
依日期範圍、工程師、狀態或 ConnectWise 工單編號查詢預約,並取得依工程師分組的當日已確認預約晨間簡報,同時列出待處理的未預約請求。檢視待處理和已取消的排程請求,包括已等待多久以及取消請求的重新預約連結。查看某位工程師接下來的行程,並列出 TimeZest 中設定的預約類型。產生彙總排程統計,例如依狀態和工程師的計數、當日負載和最久未處理的請求,並附上時區準確的顯示文字。
適用情境
適合同時使用 TimeZest 和 ConnectWise 的團隊,想用自然語言查詢預約、追蹤未預約請求並檢視團隊排程負載,而不必在多个分頁之間切換。
執行需求
透過 npm 套件 timezest-mcp 以 stdio 在本機執行,需要 Node.js 20 或更新版本。必須在 TIMEZEST_API_KEY 環境變數中提供 TimeZest API 金鑰;選用變數可設定預設 IANA 時區以及往前、往後的查詢範圍。需要連線至 TimeZest API 的網路存取。
安裝前請注意
TimeZest API 金鑰是放在用戶端設定中的 bearer token,請妥善保管該設定檔。此伺服器聲明為唯讀,不會變更排程資料,但預約和工程師資訊會傳送到 TimeZest API 並呈現給助理。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Timezest Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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
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

bash
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:

json
{  "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:

ToolDescriptionKey Parameters
get_todays_appointmentsMorning briefing — today's confirmed appointments grouped by engineer, plus pending unbooked requeststimezone
list_appointmentsFlexible query across any date range with optional filtersstart_date, end_date, engineer_name, status
get_engineer_scheduleAll upcoming appointments for a specific engineer, sorted by timeengineer_name, days_ahead, include_pending
list_pending_requestsUnbooked invitations (sent/new) with age tracking in hours/daysdays_back, engineer_name, older_than_hours
find_appointment_by_ticketFind appointments linked to a ConnectWise ticket numberticket_number (e.g., 964400 or #964400)
get_appointment_typesList all appointment type definitions configured in TimeZest—
get_appointment_statsAggregate summary: counts by status, by engineer, today's load, oldest pendingdays_back, days_forward
list_cancelled_appointmentsCancelled requests with scheduling URLs for rebookingdays_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 VariableRequiredDefaultPurpose
TIMEZEST_API_KEYYes—Your TimeZest Bearer token (Settings → API)
TIMEZEST_DEFAULT_TZNoAmerica/ChicagoDefault IANA timezone for localized display strings
TIMEZEST_WINDOW_DAYS_BACKNo14How many days back to fetch scheduling requests
TIMEZEST_WINDOW_DAYS_FORWARDNo30How 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 FileTestsCoverage
transform.test.ts8Engineer resolution, ticket extraction, timezone conversion, graceful handling of missing fields
filter.test.ts6Case-insensitive partial matching, team name matching, date-range filtering
client.test.ts8Appointment type caching, pagination, retry on 429/5xx, no-retry on 4xx

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

bash
npm test            # Single runnpm 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


🤝 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.md,提交 766cd8b

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。