# Toggl — MCP server on 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. By: mcp.ai · official Page: https://mcp.ai/toggl ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_toggl?ms=1787291340000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/toggl/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/toggl/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/toggl/skill.md Postman collection (v2.1): https://mcp.ai/toggl/postman.json ## Tools - toggl_create_client(name: string, notes?: string, workspace_id: integer, external_reference?: string) — Tool to create a new client in a workspace. Use when you need to add a client to a workspace after workspace setup. - toggl_create_group(name: string, users?: integer[], workspaces: integer[], organization_id: integer) — 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 - toggl_create_invitation(emails: string[], groups?: integer[], skip_email?: boolean, workspaces?: object[], project_invite?: object, organization_id: integer) — 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 - toggl_create_organization(name: string, workspace_name: string) — 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. - toggl_create_project(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) — 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 - toggl_create_tag(name: string, client_id?: integer, workspace_id: integer) — 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. - toggl_create_time_entry(stop?: string, tags?: string[], start: string, task_id?: integer, billable?: boolean, duration?: integer, project_id?: integer, description?: string, created_with: string, workspace_id: integer) — Tool to create a new time entry in the specified workspace. Use when you have workspace ID, start time, and client name ready. - toggl_create_workspaces_project_users(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) — 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. - toggl_delete_client(client_id: string, workspace_id: string) — Tool to delete a client in Toggl. Use when you have confirmed the workspace and client IDs and want to remove a client permanently. - toggl_delete_group(group_id: integer, organization_id: integer) — 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. - toggl_delete_project_group(workspace_id: integer, project_group_id: integer) — 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. - toggl_delete_subscription(workspace_id: integer, subscription_id: integer) — Tool to delete a webhook subscription in Toggl. Use when you want to remove an existing subscription for a specific workspace. - toggl_delete_tag(tag_id: integer, workspace_id: integer) — 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. - toggl_disable_weekly_report(weekly_report_code: string) — Tool to disable weekly report email notifications. Use when you want to unsubscribe from weekly reports using the code provided in report emails. - toggl_edit_time_entries(meta?: boolean, patch_input: object[], workspace_id: integer, time_entry_ids: string) — 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 - 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. - toggl_get_client_details(client_id: integer, workspace_id: integer) — 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 - 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 - toggl_get_country_subdivisions(country_id: integer) — 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 - 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. - 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. - 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 - 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. - toggl_get_list_clients(name?: string, status?: string, workspace_id: integer) — 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 - 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 - 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. - toggl_get_organization_details(organization_id: integer) — 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 - toggl_get_organization_groups(organization_id: integer) — 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 - toggl_get_organization_users(page?: integer, filter?: string, groups?: string, per_page?: integer, sort_dir?: string, workspaces?: string, only_admins?: boolean, active_status?: string, organization_id: integer) — 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 - toggl_get_project_details(project_id: integer, workspace_id: integer) — Tool to retrieve details of a specific project. Use after confirming the workspace ID and project ID. - toggl_get_projects(page?: integer, since?: integer, until?: integer, clients?: boolean, user_id?: integer, page_size?: integer, project_ids?: string, workspace_id: integer) — 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. - 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. - 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. - toggl_get_tags(workspace_id: integer) — 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 - toggl_get_tasks(page?: integer, active?: boolean, billable?: boolean, page_size?: integer, project_id?: integer, workspace_id: integer) — Tool to list tasks in a workspace or within a specific project. - toggl_get_time_entries(meta?: boolean, since?: integer, before?: string, end_date?: string, start_date?: string, include_sharing?: boolean) — 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 - toggl_get_time_entry(time_entry_id: integer) — Tool to retrieve a specific time entry by its ID. Use when you have the entry ID and need its full details. - 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. - 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. - 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 - 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 - toggl_get_user_projects(since?: integer, per_page?: integer, workspace_id?: integer, include_archived?: boolean, start_project_id?: integer) — Tool to retrieve all projects for the authenticated user. Use after authenticating to list available projects. - toggl_get_user_tags(since?: integer) — 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 - 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 - 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 - toggl_get_workspace_details(workspace_id: integer) — 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 - toggl_get_workspace_logo(workspace_id: integer) — Tool to get workspace logo. Use when you need to retrieve the logo associated with a specific workspace. - toggl_get_workspace_preferences(workspace_id: integer) — 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. - toggl_get_workspace_users(workspace_id: integer) — 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, - toggl_patch_stop_time_entry(workspace_id: integer, time_entry_id: integer) — Tool to stop a running time entry in a workspace. Use when a time entry needs to be ended. - toggl_post_me_disable_product_emails(disable_code: string) — 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. - toggl_put_update_tag(name: string, tag_id: integer, workspace_id: integer) — 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'. - toggl_send_demo_email(Email: string, Phone: string, Source: string, Purpose: string, LastName: string, TeamSize: string, FirstName: string) — Tool to send a demo request email through Toggl's system. Use when someone wants to request a product demo. - toggl_send_email_contact(name: string, email: string, message: string) — 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. - toggl_send_smail_meet(email: string, location: string) — Tool to send an email for meet. Use when you need to send a meet invitation email to a specific recipient with a location. - toggl_update_client(wid?: integer, name?: string, notes?: string, client_id: integer, workspace_id: integer) — 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. ## Example prompts - "What can I do in Toggl?" - "Show me a summary of my Toggl account" ## Links Docs: https://mcp.ai/docs/mcps/toggl Website: https://mcp.ai/mcps/toggl