# Toggl Track — how to use (mcp.ai)

Connect your Toggl Track account and use 21 tools for time tracking straight from your AI agent. Connect with your own API key. Toggl Track is a time tracking platform for recording work, managing projects and workspaces, producing reports, and configuring webhooks.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_toggl_track?ms=1787291340000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `toggl_track_bulk_update_time_entries`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/toggl_track`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/toggl_track/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/toggl_track/bulk/update/time/entries` — Apply the same description and/or billable state to 1 to 100 Toggl Track time entries in one provider-native request. Updates are non-atomic: Toggl Track performs no transaction or rollback, so some I
  - body: { billable?: boolean, description?: string, workspace_id: integer, time_entry_ids: integer[] }
- `POST https://api.mcp.ai/api/toggl_track/create/client` — Create a client in a workspace for grouping projects.
  - body: { name: string, notes?: string, workspace_id: integer, external_reference?: string }
- `POST https://api.mcp.ai/api/toggl_track/create/project` — Create a project in a workspace for organizing time entries and tasks.
  - body: { name: string, color?: string, active?: boolean, end_date?: string, client_id?: integer, is_private?: boolean, start_date?: string, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/create/task` — Create a task under an active project for more specific time-entry assignment.
  - body: { name: string, user_id?: integer, project_id: integer, workspace_id: integer, estimated_seconds?: integer, external_reference?: string }
- `POST https://api.mcp.ai/api/toggl_track/create/time/entry` — Create a running or completed time entry in a workspace; omit duration and stop to start a running timer. Supplying tag names may also create tags that do not yet exist.
  - body: { stop?: string, tags?: string[], start: string, tag_ids?: integer[], task_id?: integer, billable?: boolean, duration?: integer, project_id?: integer, description?: string, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/delete/client` — Permanently delete one client from a Toggl Track workspace.
  - body: { client_id: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/delete/project` — Delete one project while preserving its time entries by unassigning them from the project.
  - body: { project_id: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/delete/task` — Permanently delete one task from its parent project.
  - body: { task_id: integer, project_id: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/delete/time/entry` — Permanently delete one time entry from a workspace.
  - body: { workspace_id: integer, time_entry_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/get/current/time/entry` — Return the currently running time entry for the connected user, or indicate that no timer is running.
- `POST https://api.mcp.ai/api/toggl_track/get/current/user` — Return the connected Toggl Track user's identity and defaults, including the default workspace ID, without exposing credentials.
- `POST https://api.mcp.ai/api/toggl_track/get/time/entry` — Get one time entry by ID, with optional related-entity and sharing metadata.
  - body: { time_entry_id: integer, include_sharing?: boolean, include_metadata?: boolean }
- `POST https://api.mcp.ai/api/toggl_track/list/time/entries` — List the connected user's time entries in an explicit date range, optionally including related project, task, user, and sharing metadata.
  - body: { end_date: string, start_date: string, include_sharing?: boolean, include_metadata?: boolean }
- `POST https://api.mcp.ai/api/toggl_track/list/workspace/resources` — Find projects, clients, tags, or tasks in a workspace and return their IDs for time-entry and resource-management tools.
  - body: { search?: string, status?: string, page_size?: integer, project_id?: integer, next_cursor?: string, workspace_id: integer, resource_type: string }
- `POST https://api.mcp.ai/api/toggl_track/list/workspaces` — List workspaces accessible to the connected user and return the IDs needed by workspace-scoped tools, without exposing private tokens or calendar URLs.
- `POST https://api.mcp.ai/api/toggl_track/run/detailed/time/report` — Return one page of detailed, grouped time-entry report rows for a workspace and date range, with an opaque cursor for the next page.
  - body: { tag_ids?: integer[], end_date?: string, order_by?: string, task_ids?: integer[], user_ids?: integer[], page_size?: integer, client_ids?: integer[], start_date?: string, description?: string, next_cursor?: string, project_ids?: integer[], workspace_id?: integer, time_entry_ids?: integer[], order_direction?: string }
- `POST https://api.mcp.ai/api/toggl_track/stop/time/entry` — Stop a currently running time entry and return its finalized timing data.
  - body: { workspace_id: integer, time_entry_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/update/client` — Update a client's name, notes, or external reference. Toggl Track requires the client's name on every update, even when it is unchanged.
  - body: { name: string, notes?: string, client_id: integer, workspace_id: integer, external_reference?: string }
- `POST https://api.mcp.ai/api/toggl_track/update/project` — Update a project's name, client, active state, privacy, color, or date range.
  - body: { name?: string, color?: string, active?: boolean, end_date?: string, client_id?: integer, is_private?: boolean, project_id: integer, start_date?: string, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl_track/update/task` — Update a task's name, completion state, estimate, assignee, or external reference.
  - body: { name?: string, active?: boolean, task_id: integer, user_id?: integer, project_id: integer, workspace_id: integer, estimated_seconds?: integer, external_reference?: string }
- `POST https://api.mcp.ai/api/toggl_track/update/time/entry` — Update the timing, description, assignment, billable state, or tags of an existing time entry. Provide at least one change; changing tags requires tag_action together with tags or tag_ids. Tag effects
  - body: { stop?: string, tags?: string[], start?: string, tag_ids?: integer[], task_id?: integer, billable?: boolean, duration?: integer, project_id?: integer, tag_action?: string, description?: string, workspace_id: integer, time_entry_id: integer }

## Example prompts
- "What can I do in Toggl Track?"
- "Show me a summary of my Toggl Track account"

## More
- Page: https://mcp.ai/toggl_track
- Agent spec (llms.txt): https://mcp.ai/toggl_track/llms.txt
- Postman collection: https://mcp.ai/toggl_track/postman.json
