Skip to main content
The Gryzzly app provides read/write access to the Gryzzly time-tracking SaaS through its v1 REST-RPC API. It can be used either as a Builder app (automations call Gryzzly instructions directly) or as a remote MCP server consumed by an AI Knowledge agent — covering customers, projects, tasks, declarations (time entries), leave periods, discounts, purchases, users, groups and tags.

Time Tracking

Declarations, leave periods and exports for payroll and invoicing

Project Structure

Customers, projects, tasks and metrics with budgets and contributors

Admin & Org

Users, roles, groups, groupsets, tags and tagsets

Prerequisites

  • A Gryzzly account with administrator access
  • An API key generated in Dashboard > Administration > API Keys
  • Base URL (default: https://api.gryzzly.io/v1)

Installation

  1. Go to Apps in your workspace
  2. Search for Gryzzly and install it
  3. Open the app instance configuration and fill in the required fields

Configuration

FieldDescription
Gryzzly API Base URLBase URL of the Gryzzly API (default https://api.gryzzly.io/v1)
API KeyGryzzly API key, stored as a workspace secret. Passed as Authorization: Bearer <token>
MCP EndpointAuto-populated on install — URL of the MCP endpoint for this instance
MCP API KeyAuto-populated on install — signed key used in the mcp-api-key header. Do not modify
MCP Endpoint and MCP API Key are generated automatically by the onInstall flow and are only needed to expose this instance as an MCP server (see the next tab).

Available Instructions

Every instruction resolves credentials from the workspace configuration. All IDs are UUIDs returned by Gryzzly. Most list operations accept limit (max 1000) and offset for pagination.

Customers

InstructionArguments
listCustomerscustomer_ids, manager_ids, is_active, limit, offset
getCustomerid
createCustomername*, managers
updateCustomerid, name, is_active, managers
deleteCustomerid*

Projects

InstructionArguments
listProjectsstatus (active/done/archived), limit, offset
getProjectid
createProjectname, start_at*, end_at, code, customer_id, visibility (public/private), is_billable, managers, contributors, groups, tags
updateProjectid, name, start_at*, end_at, code, customer_id, status, visibility, is_billable, managers, contributors, groups, tags
deleteProjectid*
getProjectMetricsproject_id
listProjectsMetricsproject_ids*
exportProjectsfrom, to, project_ids, type (csv/xlsx)

Tasks

InstructionArguments
listTasksproject_ids, task_ids, limit, offset
getTaskid*
createTaskname, project_id, start_at*, end_at, parent_id, is_container, budget_type (none/detailed/global/time), budget_amount, planned_duration, estimated_duration, hourly_rate, hourly_rate_mode (task/group/contributor), groups, tags
updateTaskid*, name, start_at, end_at, completed_at, budget_amount, planned_duration, hourly_rate, hourly_rate_mode, groups, tags
deleteTaskid*

Declarations (Time Entries)

InstructionArguments
listDeclarationstask_ids, user_ids, from, to, limit, offset
createDeclarationdate, duration (seconds), task_id, user_id, description
updateDeclarationid, date, duration, task_id, description
deleteDeclarationid*
exportTimesAndLeavesfrom, to, type (0/1)

Leave Periods

InstructionArguments
listLeavesPeriodsuser_ids, from, to, limit, offset
getLeavesPeriodid*
createLeavesPerioduser_id, start_at, end_at, start_type (full/am/pm), end_type, description, delete_declaration
updateLeavesPeriodid, start_at, end_at, start_type, end_type, description, delete_declaration
deleteLeavesPeriodid

Discounts

InstructionArguments
listDiscountsproject_ids, task_ids, limit, offset
getDiscountid*
createDiscountname*, amount, project_id or task_id
updateDiscountid, name, amount
deleteDiscountid*

Purchases

InstructionArguments
listPurchasesproject_ids, task_ids, limit, offset
getPurchaseid*
createPurchasename, project_id or task_id, billed_at, billed_price, paid_at, paid_price, billing_policy (add/ignore)
updatePurchaseid*, name, billed_at, billed_price, paid_at, paid_price, billing_policy
deletePurchaseid*

Users

InstructionArguments
listUserslimit, offset
getUserid*
inviteUseremail, role (contributor/collaborator/manager/director/admin), group_ids

Groups & Groupsets

InstructionArguments
listGroupsgroup_ids, groupset_ids, limit, offset
getGroupid*
listGroupsetsgroupset_ids, limit, offset
getGroupsetid

Tags & Tagsets

InstructionArguments
listTagstag_ids, tagset_ids, limit, offset
getTagid*
listTagsetstagset_ids, limit, offset
getTagsetid
Arguments flagged with * are required.

DSUL Examples

Log a Time Declaration

- Gryzzly.createDeclaration:
    user_id: '{{user_id}}'
    task_id: '{{task_id}}'
    date: '{{run.date}}'
    duration: 7200
    description: Implementation review
    output: declaration

Create a Project With a Task

- Gryzzly.createProject:
    name: Website Revamp
    start_at: 2026-01-06
    customer_id: '{{customer_id}}'
    visibility: private
    is_billable: true
    managers:
      - '{{manager_user_id}}'
    output: project
- Gryzzly.createTask:
    project_id: '{{project.id}}'
    name: Design System
    start_at: 2026-01-06
    budget_type: time
    planned_duration: 80
    output: task

Export Time and Leaves for Payroll

- Gryzzly.exportTimesAndLeaves:
    from: 2026-03-01
    to: 2026-03-31
    type: 1
    output: export

Invite a Contributor

- Gryzzly.inviteUser:
    email: new.hire@example.com
    role: contributor
    group_ids:
      - '{{group_id}}'
    output: invitation

Error Handling

HTTP StatusErrorSolution
401UnauthorizedVerify the API key and baseUrl
403ForbiddenCheck the Gryzzly role of the API key owner
404Not FoundVerify UUIDs for project, task, user, etc.
422ValidationCheck required fields and enum values (roles, visibility, budget type, etc.)
429Rate LimitedBack off and retry with exponential delay

Common Issues

“Not configured” — The app instance has no API key. Generate one in Gryzzly > Administration > API Keys and paste it in the app configuration. “Invalid API key” (MCP) — The mcp-api-key header does not match the central app secret. Reinstall the app instance to regenerate a signed key. “Credentials lookup failed” — The MCP endpoint could not reach the getConfig webhook of the installed app. Verify that the app instance is still installed in the expected workspace. contributors rejected on public project — Set visibility: private or leave contributors empty.

External Resources

Gryzzly API

Official Gryzzly API documentation

Tool Agents

Plug MCP servers into AI Knowledge agents