timezest-mcp
TimeZest scheduling MCP server for the WYRE MCP Gateway. Enables AI assistants to schedule appointments and manage availability.
README
TimeZest MCP Server
MCP (Model Context Protocol) server for TimeZest scheduling platform. Enables LLM agents to create and manage technician scheduling requests with PSA integration.
Features
- 🎯 Decision-tree navigation - organized tool discovery
- 📅 Full scheduling lifecycle - create, view, cancel requests
- 🔗 PSA integration - ConnectWise, Autotask, Halo support
- 🌍 IANA timezone handling - explicit timezone management
- 🚀 Dual trigger modes - PSA workflows or booking URLs
- 🛡️ Gateway-ready - stateless per-request design
- 🔍 TQL filtering - TimeZest Query Language support
- ✨ Elicitation support - interactive user prompts
Quick Start
Docker (Recommended)
docker run -it --rm \
-e TIMEZEST_API_TOKEN=your-api-token \
ghcr.io/wyre-technology/timezest-mcp:latest
npm
npm install -g @wyre-technology/timezest-mcp
TIMEZEST_API_TOKEN=your-token timezest-mcp
Configuration
| Environment Variable | Required | Description |
|---|---|---|
TIMEZEST_API_TOKEN |
Yes | TimeZest API token |
MCP_TRANSPORT |
No | Transport mode: stdio (default) or http |
MCP_HTTP_PORT |
No | HTTP port (default: 8080) |
AUTH_MODE |
No | Set to gateway for WYRE gateway integration |
LOG_LEVEL |
No | Log level: debug, info (default), warn, error |
Tool Domains
The server uses decision-tree navigation to organize tools by domain:
Navigation
timezest_navigate- Enter a domain to access its toolstimezest_status- Show available domains and current state
Agents
timezest_agents_list- List individual technicianstimezest_agents_get- Get agent details
Teams
timezest_teams_list- List teams (round-robin scheduling)timezest_teams_get- Get team details
Appointment Types
timezest_appointment_types_list- List available service typestimezest_appointment_types_get- Get appointment type details
Resources
timezest_resources_list- List all resources (agents + teams)
Scheduling (Core Domain)
timezest_scheduling_list- List scheduling requeststimezest_scheduling_get- Get request detailstimezest_scheduling_create_request- Create new request (key tool)timezest_scheduling_cancel- Cancel request
Usage Examples
Basic Navigation
User: "Show me TimeZest domains"
Tools: timezest_status
User: "Go to scheduling"
Tools: timezest_navigate(domain="scheduling")
Create a Scheduling Request
User: "Book a technician for server repair at Customer Corp tomorrow"
Tools: timezest_scheduling_create_request({
"appointmentTypeId": "repair-onsite",
"triggerMode": "pod",
"endUser": {
"name": "John Doe",
"company": "Customer Corp",
"email": "john@customer.com"
},
"timeRange": {
"earliestDate": "2024-02-01",
"earliestTime": "09:00",
"latestDate": "2024-02-01",
"latestTime": "17:00",
"timezone": "America/New_York"
},
"associatedEntities": [
{"type": "connectwise", "id": "12345", "number": "T20240001"}
]
})
PSA Integration
Link scheduling requests to PSA tickets:
{
"associatedEntities": [
{"type": "connectwise", "id": "12345", "number": "T20240001"},
{"type": "autotask", "id": "67890"},
{"type": "halo", "id": "11111"}
]
}
Trigger Modes
pod: Fires the configured PSA workflow (creates calendar entries, updates tickets)generate_url: Returns a shareable booking URL for customers
TQL Filtering
TimeZest Query Language examples:
# Active agents in IT department
filter: "active:true AND department:\"IT Support\""
# Recent scheduling requests
filter: "createdAt:>=2024-01-01 AND status:pending"
# Specific customer requests
filter: "endUser.company:\"Important Customer\""
Timezone Handling
CRITICAL: Always specify IANA timezones explicitly. TimeZest interprets scheduling windows in the specified timezone.
{
"timeRange": {
"earliestDate": "2024-02-01",
"earliestTime": "09:00",
"timezone": "America/New_York" // ✅ Required
}
}
Development
Local Setup
# Clone and install
git clone https://github.com/wyre-technology/timezest-mcp.git
cd timezest-mcp
npm install
# Development with file dependency (replace before publish)
# Edit package.json: "@wyre-technology/node-timezest": "file:../node-timezest"
# Build and test
npm run build
npm test
# Run locally
TIMEZEST_API_TOKEN=your-token npm run dev
Docker Development
# Build image
docker build -t timezest-mcp --build-arg NODE_AUTH_TOKEN=$GITHUB_TOKEN .
# Run container
docker run -it --rm \
-e TIMEZEST_API_TOKEN=your-token \
-e LOG_LEVEL=debug \
timezest-mcp
MCP Integration
Claude Desktop
Add to your MCP settings:
{
"mcpServers": {
"timezest": {
"command": "npx",
"args": ["@wyre-technology/timezest-mcp"],
"env": {
"TIMEZEST_API_TOKEN": "your-api-token"
}
}
}
}
WYRE Gateway
The server is designed for the WYRE MCP Gateway with:
- Per-request server instances (stateless)
- Header-based credential injection
- Structured error responses
- Decision-tree tool organization
API Coverage
| TimeZest API | Coverage | Notes |
|---|---|---|
| Agents | ✅ List, Get | Individual technicians |
| Teams | ✅ List, Get | Round-robin scheduling |
| Appointment Types | ✅ List, Get | Service type definitions |
| Resources | ✅ List | Unified agents + teams |
| Scheduling Requests | ✅ CRUD | Core scheduling functionality |
| TQL Filtering | ✅ All endpoints | TimeZest Query Language |
| PSA Integration | ✅ All systems | ConnectWise, Autotask, Halo |
| Webhooks | ❌ N/A | TimeZest doesn't provide webhooks |
Contributing
See CONTRIBUTING.md for development guidelines.
License
Apache 2.0 - see LICENSE file for details.
Links
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.