# Toggl — how to use (mcp.ai)

Connect your Toggl account and use 56 tools for time tracking straight from your AI agent. Connect with your own API key. Toggl is a time tracking application that helps users monitor and manage their work hours efficiently.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_toggl?ms=1787291280000`
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_create_client`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/toggl`
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/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/toggl/create/client` — Tool to create a new client in a workspace. Use when you need to add a client to a workspace after workspace setup.
  - body: { name: string, notes?: string, workspace_id: integer, external_reference?: string }
- `POST https://api.mcp.ai/api/toggl/create/group` — Tool to create a new group in a Toggl organization. Use when organizing users into teams and controlling access to workspaces. Groups help manage user permissions and workspace assignments at the orga
  - body: { name: string, users?: integer[], workspaces: integer[], organization_id: integer }
- `POST https://api.mcp.ai/api/toggl/create/invitation` — Tool to send invitations to join a Toggl organization. Use when you need to invite users by email to an organization and its workspaces. At least one email and one workspace (or project_invite) are re
  - body: { emails: string[], groups?: integer[], skip_email?: boolean, workspaces?: object[], project_invite?: object, organization_id: integer }
- `POST https://api.mcp.ai/api/toggl/create/organization` — Tool to create a new organization with a default workspace in Toggl Track. Use when initializing a new organization and workspace in one step. The authenticated user becomes the organization owner.
  - body: { name: string, workspace_name: string }
- `POST https://api.mcp.ai/api/toggl/create/project` — Creates a new project in a Toggl workspace. Projects are used to organize time entries and track work for specific initiatives. Required parameters: workspace_id (integer) and name (string). Optional 
  - body: { name: string, rate?: number, color?: string, active?: boolean, billable?: boolean, currency?: string, template?: boolean, client_id?: integer, fixed_fee?: number, is_private?: boolean, template_id?: integer, workspace_id: integer, estimated_hours?: integer }
- `POST https://api.mcp.ai/api/toggl/create/tag` — Tool to create a new tag in a workspace. Use when you need to add a tag after confirming workspace ID and desired tag name.
  - body: { name: string, client_id?: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/create/time/entry` — Tool to create a new time entry in the specified workspace. Use when you have workspace ID, start time, and client name ready.
  - body: { stop?: string, tags?: string[], start: string, task_id?: integer, billable?: boolean, duration?: integer, project_id?: integer, description?: string, created_with: string, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/create/workspaces/project/users` — Tool to add a user to workspace project users. Use when you need to assign a user to a project within a workspace with optional manager privileges and custom rates.
  - body: { rate?: number, manager?: boolean, user_id: integer, labor_cost?: number, project_id: integer, workspace_id: integer, rate_change_mode?: string, labor_cost_change_mode?: string }
- `POST https://api.mcp.ai/api/toggl/delete/client` — Tool to delete a client in Toggl. Use when you have confirmed the workspace and client IDs and want to remove a client permanently.
  - body: { client_id: string, workspace_id: string }
- `POST https://api.mcp.ai/api/toggl/delete/group` — Tool to delete a group from a Toggl organization. Use when you need to permanently remove a group and its associated permissions. Requires organization and group IDs.
  - body: { group_id: integer, organization_id: integer }
- `POST https://api.mcp.ai/api/toggl/delete/project/group` — Tool to delete a project group from a Toggl workspace. Use when you need to remove a project group permanently. Requires workspace and project group IDs.
  - body: { workspace_id: integer, project_group_id: integer }
- `POST https://api.mcp.ai/api/toggl/delete/subscription` — Tool to delete a webhook subscription in Toggl. Use when you want to remove an existing subscription for a specific workspace.
  - body: { workspace_id: integer, subscription_id: integer }
- `POST https://api.mcp.ai/api/toggl/delete/tag` — Deletes a tag from a Toggl workspace. Requires workspace and tag IDs. Only workspace or organization administrators can delete tags. Returns success status upon deletion.
  - body: { tag_id: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/disable/weekly/report` — Tool to disable weekly report email notifications. Use when you want to unsubscribe from weekly reports using the code provided in report emails.
  - body: { weekly_report_code: string }
- `POST https://api.mcp.ai/api/toggl/edit/time/entries` — Tool to bulk edit multiple time entries in a workspace using JSON Patch operations. Use when you need to update the same field(s) across multiple time entries at once (e.g., changing descriptions, bil
  - body: { meta?: boolean, patch_input: object[], workspace_id: integer, time_entry_ids: string }
- `POST https://api.mcp.ai/api/toggl/get/all/plans` — Tool to retrieve all available Toggl subscription plans and their features. Use when you need to display plan options, compare plans, or check available features for different subscription tiers.
- `POST https://api.mcp.ai/api/toggl/get/client/details` — Retrieves detailed information about a specific client in Toggl Track by its client ID and workspace ID. Use this tool when you need to: - Get complete client details including name, notes, and metada
  - body: { client_id: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/countries` — Tool to retrieve all countries supported by Toggl. Returns country details including tax information, default currencies, and postal code requirements. Use when you need to validate country data or re
- `POST https://api.mcp.ai/api/toggl/get/country/subdivisions` — Tool to retrieve all subdivisions (states, provinces, regions) for a specific country in Toggl Track. Use when you need to get geographical subdivision data for a country, such as US states or Canadia
  - body: { country_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/currencies` — Tool to retrieve the list of all currencies supported by Toggl Track. Use when you need currency codes and symbols for financial operations or display.
- `POST https://api.mcp.ai/api/toggl/get/current/time/entry` — Retrieves the currently running time entry for the authenticated user. Returns null if no timer is active. Use this to check timer status or get details about the active time entry.
- `POST https://api.mcp.ai/api/toggl/get/event/filters` — Retrieve the list of supported event filters for Toggl webhooks. Use this when you need to know which event types are available for webhook subscriptions (e.g., client created, project updated, time e
- `POST https://api.mcp.ai/api/toggl/get/keys` — Retrieves the current JWKS (JSON Web Key Set) keyset used to sign JWT tokens. Use this to obtain public keys for verifying JWT token signatures issued by Toggl.
- `POST https://api.mcp.ai/api/toggl/get/list/clients` — Retrieve a list of clients from a Toggl Track workspace with optional filtering by status and name. Use this tool to: - List all clients in a workspace - Filter clients by active/archived status - Sea
  - body: { name?: string, status?: string, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/my/location` — Retrieves the authenticated user's last known location information including city, state, country, and coordinates. Use this to determine user's geographic location for timezone or region-specific fea
- `POST https://api.mcp.ai/api/toggl/get/my/quota` — Tool to retrieve API rate limit quota for the authenticated user. Use when you need to check remaining API calls before making further requests or to monitor rate limit status.
- `POST https://api.mcp.ai/api/toggl/get/organization/details` — Retrieves detailed information about a specific Toggl organization including subscription plan, trial status, user count, and workspace settings. Requires a valid organization ID that the authenticate
  - body: { organization_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/organization/groups` — Retrieves all groups within a Toggl organization, including group members and workspace assignments. Groups are used to organize users and control access to workspaces. Returns an empty list if no gro
  - body: { organization_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/organization/users` — Retrieves a list of users belonging to a Toggl organization. Returns detailed information about each user including their email, name, role, workspace memberships, and group memberships. Supports filt
  - body: { page?: integer, filter?: string, groups?: string, per_page?: integer, sort_dir?: string, workspaces?: string, only_admins?: boolean, active_status?: string, organization_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/project/details` — Tool to retrieve details of a specific project. Use after confirming the workspace ID and project ID.
  - body: { project_id: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/projects` — Tool to retrieve a list of projects from a Toggl workspace. Use after confirming workspace ID. Returns filtered and paginated projects with optional client details.
  - body: { page?: integer, since?: integer, until?: integer, clients?: boolean, user_id?: integer, page_size?: integer, project_ids?: string, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/public/subscription/plans` — Tool to retrieve all publicly available subscription plans from Toggl. Use when you need to display available pricing tiers or plan options to users.
- `POST https://api.mcp.ai/api/toggl/get/status` — Tool to retrieve the Toggl Webhooks server status. Use when you need to check if the webhooks service is operational before registering or managing webhook subscriptions.
- `POST https://api.mcp.ai/api/toggl/get/tags` — Retrieve all tags in a Toggl workspace. Returns a list of tags with their IDs, names, and metadata. Use this when you need to list available tags for categorizing time entries or when searching for a 
  - body: { workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/tasks` — Tool to list tasks in a workspace or within a specific project.
  - body: { page?: integer, active?: boolean, billable?: boolean, page_size?: integer, project_id?: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/time/entries` — Retrieve time entries for the authenticated user with flexible filtering options. Use this tool to: - List all recent time entries (no parameters needed) - Filter entries by date range (start_date + e
  - body: { meta?: boolean, since?: integer, before?: string, end_date?: string, start_date?: string, include_sharing?: boolean }
- `POST https://api.mcp.ai/api/toggl/get/time/entry` — Tool to retrieve a specific time entry by its ID. Use when you have the entry ID and need its full details.
  - body: { time_entry_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/timezone/offsets` — Tool to retrieve all available timezone offsets from Toggl. Use when you need to display timezone information or validate timezone selection for time entry operations.
- `POST https://api.mcp.ai/api/toggl/get/timezones` — Tool to retrieve all available timezones supported by Toggl Track. Use when you need to validate timezone values or display available timezone options to users.
- `POST https://api.mcp.ai/api/toggl/get/user/clients` — Retrieves all clients accessible to the authenticated user across all their workspaces. Returns a complete list of client details including workspace associations, archive status, notes, and integrati
- `POST https://api.mcp.ai/api/toggl/get/user/preferences` — Retrieves the authenticated user's preferences including timezone, date/time formats, notification settings, and enabled alpha/experimental features. Useful for understanding user display preferences 
- `POST https://api.mcp.ai/api/toggl/get/user/projects` — Tool to retrieve all projects for the authenticated user. Use after authenticating to list available projects.
  - body: { since?: integer, per_page?: integer, workspace_id?: integer, include_archived?: boolean, start_project_id?: integer }
- `POST https://api.mcp.ai/api/toggl/get/user/tags` — Tool to retrieve tags associated with the current user. Use when you need to list all tags visible to your account across all workspaces, or to get tags that have been created/modified/deleted since a
  - body: { since?: integer }
- `POST https://api.mcp.ai/api/toggl/get/user/tasks` — Retrieve all tasks across all workspaces accessible to the authenticated user. Returns tasks from projects the user can access, including task details like name, active status, estimated time, and tra
- `POST https://api.mcp.ai/api/toggl/get/user/workspaces` — Tool to retrieve all workspaces the authenticated user belongs to. Use when you need to list accessible workspaces before performing workspace-specific operations. Verify the correct workspace ID from
- `POST https://api.mcp.ai/api/toggl/get/workspace/details` — Retrieves comprehensive details and settings for a specific Toggl workspace by ID. Returns workspace configuration including premium/business status, admin permissions, default settings for projects/b
  - body: { workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/workspace/logo` — Tool to get workspace logo. Use when you need to retrieve the logo associated with a specific workspace.
  - body: { workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/workspace/preferences` — Retrieves workspace preferences including the initial pricing plan and whether start/end times are hidden. Use this after obtaining a workspace ID to check workspace-level preference settings.
  - body: { workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/get/workspace/users` — Retrieves all users who belong to a specific Toggl workspace. Returns user details including their name, email, admin status, and activity status. Use this to list workspace members, check user roles,
  - body: { workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/patch/stop/time/entry` — Tool to stop a running time entry in a workspace. Use when a time entry needs to be ended.
  - body: { workspace_id: integer, time_entry_id: integer }
- `POST https://api.mcp.ai/api/toggl/post/me/disable/product/emails` — Tool to disable product emails for the authenticated user using a disable code. Use when the user wants to unsubscribe from Toggl product emails using a code from an unsubscribe link.
  - body: { disable_code: string }
- `POST https://api.mcp.ai/api/toggl/put/update/tag` — Tool to update an existing tag in a specified workspace. Use after confirming the workspace_id and tag_id when renaming a tag. Example: rename tag 'urgent' to 'high_priority'.
  - body: { name: string, tag_id: integer, workspace_id: integer }
- `POST https://api.mcp.ai/api/toggl/send/demo/email` — Tool to send a demo request email through Toggl's system. Use when someone wants to request a product demo.
  - body: { Email: string, Phone: string, Source: string, Purpose: string, LastName: string, TeamSize: string, FirstName: string }
- `POST https://api.mcp.ai/api/toggl/send/email/contact` — Tool to send an email to a contact via Toggl's smail service. Use when you need to send a message to a specific contact by providing their email, name, and message content.
  - body: { name: string, email: string, message: string }
- `POST https://api.mcp.ai/api/toggl/send/smail/meet` — Tool to send an email for meet. Use when you need to send a meet invitation email to a specific recipient with a location.
  - body: { email: string, location: string }
- `POST https://api.mcp.ai/api/toggl/update/client` — Updates an existing client in a Toggl workspace. Use this to modify a client's name or notes. Note: The Toggl API requires the 'name' field when updating any client property.
  - body: { wid?: integer, name?: string, notes?: string, client_id: integer, workspace_id: integer }

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

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