# Jibble

```json
{
  "name": "Jibble",
  "slug": "jibble",
  "url": "https://composio.dev/toolkits/jibble",
  "markdown_url": "https://composio.dev/toolkits/jibble.md",
  "logo_url": "https://logos.composio.dev/api/jibble",
  "categories": [
    "productivity & project management"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-28T05:31:58.057Z"
}
```

![Jibble logo](https://logos.composio.dev/api/jibble)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Jibble MCP or direct API to manage people, track attendance, review time off, and generate workforce reports through natural language.

## Summary

Jibble is a workforce management platform for time tracking, attendance, schedules, and time off.
It helps teams manage people, projects, and work hours in one place.

## Categories

- productivity & project management

## Toolkit Details

- Tools: 68

## Images

- Logo: https://logos.composio.dev/api/jibble

## Authentication

- **S2s Oauth2**
  - Type: `custom`
  - Description: S2s Oauth2 authentication for Jibble.
  - Setup:
    - Configure S2s Oauth2 credentials for Jibble.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Review Jibble attendance for missing clock-ins
- Approve pending Jibble time-off requests
- List Jibble people by team and status

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `JIBBLE_ARCHIVE_MEMBER` | Archive Member | Dangerously deactivate a member by setting their status to Removed while retaining their data. The member will lose access to Jibble. |
| `JIBBLE_ARCHIVE_SCREENSHOT` | Archive Screenshot | Archive one time-tracking screenshot so it is no longer active. The screenshot ID must come from Jibble's screenshot records. |
| `JIBBLE_ARCHIVE_TIME_ENTRY` | Archive Time Entry | Archive one time entry by setting its status to Archived so it is no longer active in time-tracking records. |
| `JIBBLE_ASSIGN_MEMBER_POSITION` | Assign Member Position | Assign one existing position to a member. |
| `JIBBLE_ASSIGN_MEMBER_TO_PROJECT` | Assign Member To Project | Assign one existing member to an existing project. |
| `JIBBLE_CHANGE_MEMBER_ROLE` | Change Member Role | Dangerously replace a member's authorization role. This administrative change can grant privileged organization access or remove existing access; confirm both the member and replacement role before calling. |
| `JIBBLE_CHANGE_PAY_PERIOD_STATUS` | Change Pay Period Status | Dangerously change a pay period to Approved, Reopened, or Rejected. This approval decision locks or unlocks its time records as Jibble defines; confirm the pay period and intended status before calling. |
| `JIBBLE_CHANGE_TIME_OFF_REQUEST_STATUS` | Change Time Off Request Status | Change a time-off request to Approved, Cancelled, Rejected, or Pending. This approves, cancels, rejects, or returns the request to pending review; confirm the request and intended status before calling. |
| `JIBBLE_CLEAR_PROJECT_CLIENT` | Clear Project Client | Remove the client assignment from one project. This action can only clear the assignment; it cannot assign or replace a client. |
| `JIBBLE_CLOCK_IN` | Clock In | Clock a Jibble member in with required device context and optional activity, project, location, coordinates, and automatic clock-out context. |
| `JIBBLE_CLOCK_OUT` | Clock Out | Clock a Jibble member out by creating an Out time entry with required client device context. |
| `JIBBLE_CREATE_ACTIVITY` | Create Activity | Create a time-tracking activity. |
| `JIBBLE_CREATE_CLIENT` | Create Client | Create an organization client. Jibble may require an upgraded plan. |
| `JIBBLE_CREATE_GROUP` | Create Group | Create an organization group with a caller-supplied ID and name. |
| `JIBBLE_CREATE_HOLIDAY` | Create Holiday | Add a named holiday date to an organization calendar. |
| `JIBBLE_CREATE_KIOSK` | Create Kiosk | Create an attendance kiosk for a location and selected members using a sensitive master PIN. The PIN is sent to Jibble but never returned. |
| `JIBBLE_CREATE_LOCATION` | Create Location | Create a work location with an address, geofence, and coordinates. |
| `JIBBLE_CREATE_MEMBER` | Create Member | Create a member and optionally send an invitation email to that member. |
| `JIBBLE_CREATE_POSITION` | Create Position | Create an organization position with a name. |
| `JIBBLE_CREATE_PROJECT` | Create Project | Create a project with optional client and location assignments. |
| `JIBBLE_CREATE_SCHEDULE` | Create Schedule | Create a fixed or flexible work schedule with per-day working times and optional paid or unpaid breaks. |
| `JIBBLE_CREATE_TIME_OFF_REQUEST` | Create Time Off Request | Create either a full-day or hourly time-off request for a Jibble member under a specific time-off policy. |
| `JIBBLE_DELETE_ASYNC_EXPORT` | Delete Async Export | Delete a generic asynchronous OData export from the Jibble service where it was started, freeing an active export slot. This does not delete XLSX attendance reports. |
| `JIBBLE_DELETE_HOLIDAY` | Delete Holiday | Permanently delete one holiday from an organization calendar. This cannot be undone. |
| `JIBBLE_DELETE_LOCATION` | Delete Location | Permanently delete an organization location. This destructive action cannot be undone; archive the location instead when permanent deletion is not required. |
| `JIBBLE_DELETE_MEMBER_PERMANENTLY` | Delete Member Permanently | Permanently and irreversibly delete a member and all of their retained data. This cannot be undone; use Archive Member instead when permanent deletion is not required. |
| `JIBBLE_GET_ASYNC_EXPORT` | Get Async Export | Poll a generic asynchronous OData export on the Jibble service where it was started. Returns either job-state metadata or the completed exported payload without changing provider field casing. This does not download XLSX attendance reports. |
| `JIBBLE_GET_CURRENT_ATTENDANCE_TOTALS` | Get Current Attendance Totals | Get real-time counts of members clocked in, clocked out, or on a break for a documented attendance scope and optional member filters. |
| `JIBBLE_GET_KIOSK` | Get Kiosk | Get one attendance kiosk by ID with optional location expansion. |
| `JIBBLE_GET_LATEST_TIME_ENTRY` | Get Latest Time Entry | Get a member's latest time entry, returning no entry when the member has not recorded one. |
| `JIBBLE_GET_ORGANIZATIONS` | Get Organizations | Return organizations available to the connected Jibble API credentials, including IDs and settings. |
| `JIBBLE_GET_PAY_PERIOD_APPROVAL` | Get Pay Period Approval | Get one pay-period approval with daily breakdowns and totals. |
| `JIBBLE_GET_RECENT_ACTIVITIES` | Get Recent Activities | Get a bounded number of activities recently used by one Jibble member. |
| `JIBBLE_GET_RECENT_PROJECTS` | Get Recent Projects | Get a bounded number of projects recently used by one member. |
| `JIBBLE_GET_TIMESHEET_DAILY_SUMMARY` | Get Timesheet Daily Summary | Get per-member daily attendance summaries and total tracked duration for a date range, optionally limited to selected member IDs. |
| `JIBBLE_GET_TRACKED_TIME_REPORT` | Get Tracked Time Report | Get tracked-time report data grouped by a primary and optional secondary dimension, with filters for people and organization entities. |
| `JIBBLE_LIST_ACTIVITIES` | List Activities | List organization activities with optional OData filtering and field selection. |
| `JIBBLE_LIST_APPROVAL_CONFIGURATIONS` | List Approval Configurations | List pay-period definitions used to configure timesheet approvals. |
| `JIBBLE_LIST_ASYNC_EXPORTS` | List Async Exports | List generic OData asynchronous exports from a selected Jibble service. This does not list or download XLSX attendance reports started by Start Attendance Report Export. |
| `JIBBLE_LIST_CALENDARS` | List Calendars | List holiday calendars available in the organization. |
| `JIBBLE_LIST_CLIENTS` | List Clients | List clients configured in the organization. |
| `JIBBLE_LIST_GROUPS` | List Groups | List groups visible to the connected organization credentials. |
| `JIBBLE_LIST_HOLIDAYS` | List Holidays | List calendar holidays with OData filtering, field selection, total counts, and opaque cursor pagination. |
| `JIBBLE_LIST_HOUR_ENTRIES` | List Hour Entries | List raw hour entries with OData filtering, expansion, field selection, ordering, and cursor pagination. |
| `JIBBLE_LIST_LEAVE_BALANCES` | List Leave Balances | List member leave balances for a requested date, with optional OData person or policy filtering and ordering. |
| `JIBBLE_LIST_LOCATIONS` | List Locations | List organization locations with optional OData filtering and field selection. |
| `JIBBLE_LIST_MEMBERS` | List Members | List organization members with optional OData filtering, field selection, relationship expansion, ordering, and group IDs. |
| `JIBBLE_LIST_MEMBER_TIME_STATUS` | List Member Time Status | List members' current active state and recent time-entry activity or project fields using Jibble's documented time-tracking projections. |
| `JIBBLE_LIST_PAY_PERIOD_APPROVALS` | List Pay Period Approvals | List member pay-period approval summaries with OData filtering, total counts, and opaque cursor pagination. |
| `JIBBLE_LIST_POSITIONS` | List Positions | List positions configured in the organization. |
| `JIBBLE_LIST_PROJECTS` | List Projects | List organization projects and optionally expand client and location details. |
| `JIBBLE_LIST_ROLES` | List Roles | List authorization roles that can be assigned to Jibble members. |
| `JIBBLE_LIST_SCHEDULES` | List Schedules | List organization work schedules with optional people and group expansion. |
| `JIBBLE_LIST_SCREENSHOTS` | List Screenshots | List time-tracking screenshots with optional OData filtering, ordering, field selection, and person expansion. |
| `JIBBLE_LIST_TIME_ENTRIES` | List Time Entries | List raw time entries with OData filtering, expansion, field selection, stable ordering, total counts, and opaque cursor pagination. |
| `JIBBLE_LIST_TIME_OFF_POLICIES` | List Time Off Policies | List organization time-off policies with an optional OData status filter. |
| `JIBBLE_LIST_TIME_OFF_REQUESTS` | List Time Off Requests | List time-off requests with OData date or status filtering, person or policy expansion, ordering, total counts, and opaque cursor pagination. |
| `JIBBLE_LIST_TIMESHEETS` | List Timesheets | List member timesheets for a date and Day, Week, or Month period, with member search, OData filtering and expansion, and cursor pagination. |
| `JIBBLE_START_ATTENDANCE_REPORT_EXPORT` | Start Attendance Report Export | Start an asynchronous XLSX attendance-report export for a date range and selected report sections. Returns the ID from Jibble's export metadata; Jibble documents this ID as the identifier used to download the generated file, but this toolkit does not expose that download operation. |
| `JIBBLE_UPDATE_ACTIVITY` | Update Activity | Rename an existing time-tracking activity. |
| `JIBBLE_UPDATE_GROUP` | Update Group | Rename an existing organization group. |
| `JIBBLE_UPDATE_LOCATION` | Update Location | Update a location's name, address, status, geofence, or coordinates. |
| `JIBBLE_UPDATE_MEMBER` | Update Member | Update a member's profile, group, or schedule without archiving the member. Jibble does not support direct member-location assignment on People; configure locations through schedule or project location assignments instead. |
| `JIBBLE_UPDATE_ORGANIZATION_SETTINGS` | Update Organization Settings | Dangerously change organization-wide country or time-tracking settings for one organization. These changes affect the entire organization. |
| `JIBBLE_UPDATE_POSITION` | Update Position | Rename an existing organization position. |
| `JIBBLE_UPDATE_SCHEDULE` | Update Schedule | Rename a schedule or replace its break type and break assignments. |
| `JIBBLE_UPDATE_TIME_ENTRY` | Update Time Entry | Update a time entry's activity or note without archiving it. |
| `JIBBLE_UPDATE_TIME_OFF_REQUEST` | Update Time Off Request | Update the dates or note of an existing time-off request without changing its approval status. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Jibble
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["jibble"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["jibble"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Jibble tools with your agent

Send a request, execute the Jibble tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List all people in my Jibble organization"}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List all people in my Jibble organization" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Jibble and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["jibble"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["jibble"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Jibble request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Jibble tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List all people in my Jibble organization")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List all people in my Jibble organization",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Jibble Integration

- Supports both Jibble MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Jibble data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Jibble access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Jibble
- Scoped, least privilege access to Jibble resources
- Full audit trail of agent actions to support review and compliance

## Use Jibble with any AI Agent Framework

Choose a framework you want to connect Jibble with:

- [ChatGPT](https://composio.dev/toolkits/jibble/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/jibble/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/jibble/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/jibble/framework/atomic-agent)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [Aha!](https://composio.dev/toolkits/aha) - Aha! is a product management platform for setting strategy, prioritizing ideas, and planning roadmaps. It helps product teams align goals with development work and make better decisions.
- [AirOps MCP](https://composio.dev/toolkits/airops_mcp) - AirOps MCP is AirOps' managed content platform exposing brand context, knowledge bases, and workflows. Use it to give agents brand-aware content, automate content workflows, and track Brand Kit edits.
- [Amazing Marvin](https://composio.dev/toolkits/amazing_marvin) - Amazing Marvin is a personal productivity app for tasks, projects, habits, planning, time tracking, and rewards. It helps you build a flexible workflow that matches how you actually work.
- [Ambiguous MCP](https://composio.dev/toolkits/ambiguous_mcp) - Ambiguous MCP is a provider-hosted workspace service for documents, spreadsheets, tasks, CRM, calendar, mail, chat, and administration. It provides one workspace-scoped connection for managing these resources through natural language.
- [AnyDB](https://composio.dev/toolkits/any_db) - AnyDB is a flexible collaborative database platform for organizing records, files, and automated workflows. It helps teams centralize data, collaborate on records, and automate routine tasks.
- [ApptiveGrid](https://composio.dev/toolkits/apptivegrid) - ApptiveGrid is a collaborative no-code database and app platform for spaces, grids, forms, and structured records. It helps teams organize operational data, collect inputs, and build lightweight business apps without custom backend work.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Atlassian MCP](https://composio.dev/toolkits/atlassian_mcp) - Atlassian Rovo MCP connects agents to Jira, Jira Service Management, Confluence, Bitbucket, Compass, and Teamwork Graph workflows. It lets teams surface and act on Atlassian data while respecting existing user permissions.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Beeminder](https://composio.dev/toolkits/beeminder) - Beeminder is an online goal-tracking platform that uses monetary pledges to keep you motivated. Stay accountable and hit your targets with real financial incentives.

## Frequently Asked Questions

### Do I need my own developer credentials to use Jibble with Composio?

Yes, Jibble requires you to configure your own S2S OAuth2 credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
