tyme-mcp
tyme-mcp
An MCP (Model Context Protocol) server that connects AI assistants to Tyme, the macOS time tracking app. Control timers, manage projects and tasks, search time records, and generate reports — all through natural language.
Features
Timer control — Start, stop, and check running timers
Category, project, task & subtask management — List, create, update, and delete Tyme objects (projects and tasks also support detailed lookup)
Time record search — Query records by date range, project, task, type, and more
Mileage tracking — Configure per-kilometer rates and record traveled distance
Reports — Daily summaries and date-range reports grouped by project
Native macOS integration — Communicates directly with Tyme via AppleScript/JXA. No API keys, no cloud dependency, works offline
29 tools covering the full Tyme workflow
Requirements
macOS
Tyme 3 installed and running
Bun runtime — Bun is required because the package runs TypeScript directly. Use
bunx tyme-mcp;npx tyme-mcpis not supported.
Setup
1. Install Bun (if not installed)
curl -fsSL https://bun.sh/install | bash2. Configure your MCP client
Claude Code
claude mcp add tyme -- bunx tyme-mcpOr add to your .mcp.json:
{
"mcpServers": {
"tyme": {
"command": "bunx",
"args": ["tyme-mcp"]
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"tyme": {
"command": "bunx",
"args": ["tyme-mcp"]
}
}
}3. Launch Tyme
Make sure Tyme is running before using the MCP server. The server communicates with Tyme through macOS scripting, so Tyme must be open.
Tools
Date-only inputs are interpreted in the server's local timezone. For date ranges, endDate is inclusive through the end of the specified day.
Timer Operations
Tool | Description |
| Start a timer for a task |
| Stop a timer for a task |
| List currently running timers |
Data Retrieval
Tool | Description |
| List all categories |
| List projects (optionally filtered by category) |
| Get detailed project information |
| List tasks in a project |
| List subtasks of a task |
| Get detailed task information |
| Get the currently selected item in Tyme UI |
| Search time records by date range and filters |
| Get detailed record information |
CRUD Operations
Tool | Description |
| Create a new category |
| Update a category |
| Delete a category |
| Create a new project |
| Update project properties |
| Delete a project |
| Create a new task |
| Update task properties |
| Delete a task |
| Create a new subtask |
| Update subtask properties |
| Delete a subtask |
| Create a time record |
| Update a time record |
| Delete a time record |
Reports
Tool | Description |
| Work summary for a specific day |
| Work summary over a date range, grouped by project |
Usage Examples
Once configured, you can interact with Tyme using natural language:
"Show me my projects" — lists all Tyme projects
"What timers are running?" — checks active timers
"Start tracking time on task X" — starts a timer
"How much did I work this week?" — generates a summary report
"Create a new task called 'Design review' in project Y" — creates a task
How It Works
AI Assistant → MCP Protocol → tyme-mcp → osascript (AppleScript/JXA) → Tyme.appThe server uses two scripting approaches:
JXA (JavaScript for Automation) for read operations — returns structured JSON
AppleScript for object creation/deletion, JXA for property updates
All user inputs are sanitized before interpolation into scripts to prevent injection.
Development
# Run the server directly
bun run src/index.ts
# Watch mode
bun run dev
# Type-check the TypeScript source (CI gate)
bun run typecheck
# Run unit tests (Tyme is not required)
bun test
# Run the E2E smoke suite (requires Tyme running locally)
# Test data is cleaned up automatically, including after failures.
bun run smokeTech Stack
Bun — TypeScript runtime
@modelcontextprotocol/sdk — MCP server SDK
Zod — Input validation
AppleScript / JXA — macOS automation
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/watarutmnh/tyme-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server