MCP Toggl Server
Enables time tracking and reporting through Toggl Track integration with intelligent caching. Supports starting/stopping timers, generating daily/weekly reports, and managing projects with structured JSON output for automation workflows.
README
MCP Toggl Server
A Model Context Protocol (MCP) server for Toggl Track integration, providing time tracking and reporting capabilities with intelligent caching for optimal performance.
Features
- Time Tracking: Start/stop timers, get current and past time entries
- Smart Reporting: Daily/weekly reports with project and workspace breakdowns
- Performance Optimized: Intelligent caching system minimizes API calls
- Data Hydration: Automatically enriches time entries with project/workspace/client names
- Flexible Filtering: Query by date ranges, workspaces, or projects
- Automation Ready: Structured JSON output perfect for Automation Hub workflows
Installation
npm install
npm run build
Configuration
-
Get your Toggl API key from: https://track.toggl.com/profile
-
Create a
.envfile:
TOGGL_API_KEY=your_api_key_here
# Optional configuration
TOGGL_DEFAULT_WORKSPACE_ID=123456 # Your default workspace
TOGGL_CACHE_TTL=3600000 # Cache TTL in ms (default: 1 hour)
TOGGL_CACHE_SIZE=1000 # Max cached entities (default: 1000)
- Add to your MCP configuration:
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-toggl": {
"command": "node",
"args": ["/path/to/mcp-toggl/dist/index.js"],
"env": {
"TOGGL_API_KEY": "your_api_key_here"
}
}
}
}
Cursor
Edit .mcp.json in your project:
{
"mcpServers": {
"mcp-toggl": {
"command": "node",
"args": ["./mcp-servers/mcp-toggl/dist/index.js"],
"env": {
"TOGGL_API_KEY": "your_api_key_here"
}
}
}
}
Available Tools
Time Tracking
toggl_get_time_entries
Get time entries with optional filters.
{
"period": "today", // or: yesterday, week, lastWeek, month, lastMonth
"workspace_id": 123456,
"project_id": 789012
}
toggl_get_current_entry
Get the currently running timer.
toggl_start_timer
Start a new time entry.
{
"description": "Working on MCP server",
"project_id": 123456,
"tags": ["development", "mcp"]
}
toggl_stop_timer
Stop the currently running timer.
Reporting
toggl_daily_report
Generate a daily report with project/workspace breakdowns.
{
"date": "2024-09-01",
"format": "json" // or "text" for formatted output
}
toggl_weekly_report
Generate a weekly report with daily breakdowns.
{
"week_offset": 0, // 0 = this week, -1 = last week
"format": "json"
}
toggl_project_summary
Get total hours per project for a date range.
{
"period": "month",
"workspace_id": 123456
}
toggl_workspace_summary
Get total hours per workspace.
Management
toggl_list_workspaces
List all available workspaces.
toggl_list_projects
List projects in a workspace.
{
"workspace_id": 123456
}
toggl_list_clients
List clients in a workspace.
Cache Management
toggl_warm_cache
Pre-fetch workspace/project/client data for better performance.
toggl_cache_stats
View cache performance metrics.
toggl_clear_cache
Clear all cached data.
Performance Optimization
The server uses an intelligent caching system to minimize API calls:
- First Run: Warms cache by fetching workspaces, projects, and clients
- Subsequent Calls: Uses cached names for hydration (95%+ cache hit rate)
- Smart Invalidation: TTL-based expiry with configurable duration
- Memory Efficient: LRU eviction keeps memory usage under 10MB
Typical Performance
- First report: 2-3 API calls (warm cache + get entries)
- Subsequent reports: 1 API call (just time entries)
- Cache hit rate: >95% for typical usage
Usage Examples
Daily Standup Report
// Get today's time entries with full details
toggl_daily_report({ "format": "text" })
Weekly Summary for Automation Hub
// Get last week's data as JSON
toggl_weekly_report({ "week_offset": -1 })
Project Hours Tracking
// Get this month's hours by project
toggl_project_summary({ "period": "month" })
Integration with Automation Hub
The server returns structured JSON perfect for Automation Hub workflows:
// Example daily report output
{
"date": "2024-09-01",
"total_hours": 8.5,
"by_project": [
{
"project_name": "MCP Development",
"client_name": "Internal",
"total_hours": 4.5,
"billable_hours": 0
}
],
"by_workspace": [
{
"workspace_name": "Very Good Plugins",
"total_hours": 8.5,
"project_count": 3
}
]
}
Troubleshooting
API Key Issues
- Ensure your API key is correct (get from https://track.toggl.com/profile)
- API key goes in the username field, "api_token" as password for basic auth
Rate Limiting
- The server implements automatic retry with exponential backoff
- Respects Toggl's rate limits (max 1 request per second)
Cache Issues
- Run
toggl_clear_cacheif data seems stale - Adjust
TOGGL_CACHE_TTLfor your needs (default: 1 hour)
Development
# Run in development mode
npm run dev
# Build for production
npm run build
# Test the server
npm test
License
GPL-3.0
Support
For issues or questions, please open an issue on GitHub.
Built with 🧡 for the open source community by Very Good Plugins
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
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.