Skip to main content

clockify-python-115

clockify-python-115 is an independent community project. It is not affiliated with, endorsed by, or sponsored by CAKE.com or Clockify. The project uses the Clockify name only to identify the service that it supports.

The distribution contains:

  • clockify: a typed async SDK with all 168 known Clockify operations on 29 resources.
  • clockify_mcp: a structurally read-only Model Context Protocol (MCP) server.

Documentation version: 0.1.1. The distribution is available from public PyPI. The default MCP server registers 60 raw reads and five workflows. It registers zero writes.

Install

Install the SDK or the SDK with the optional MCP server:

uv add clockify-python-115
uv add "clockify-python-115[mcp]"

Python 3.11, 3.12, 3.13, and 3.14 are supported and tested.

Read-only SDK quickstart

import asyncio
import os

from clockify import ClockifyClient


async def main() -> None:
    async with ClockifyClient(
        api_key=os.environ["CLOCKIFY_API_KEY"],
        workspace_id=os.environ.get("CLOCKIFY_WORKSPACE_ID"),
    ) as clockify:
        me = await clockify.users.me()
        projects = await clockify.projects.list(archived=False, page_size=25)
        print(me.name, len(projects))


asyncio.run(main())

See docs/quickstart.md and examples/sdk_list_projects.py.

MCP quickstart

clockify-mcp

Configure exactly one of CLOCKIFY_API_KEY or CLOCKIFY_ADDON_TOKEN. You can also configure CLOCKIFY_WORKSPACE_ID.

The MCP contract is exact:

  • 60 raw read tools;
  • five workflows: clockify_status, clockify_workspace_overview, clockify_review_day, clockify_review_week, and clockify_doctor;
  • 65 tools in total;
  • zero registered writes.

The SDK exposes writes to explicit Python callers. MCP does not. See docs/mcp-guide.md and examples/mcp_config.example.json.

SDK behavior

  • Configure exactly one credential. The SDK rejects caller-supplied authority and Clockify credential headers before network access.
  • Ordinary caller headers and X-Request-Id are preserved.
  • Read retries support delay-seconds and HTTP-date Retry-After values.
  • No write is automatically retried. An ambiguous write transport failure raises MutationOutcomeUnknownError. Read state before a manual retry.
  • Pagination names vary by operation. Use iter_pages or iter_all and honor the operation's Last-Page behavior.
  • Reports and audit-log operations use their required service hosts automatically.
  • Some PUT operations replace the complete entity. Resend each field that must remain. See docs/api-deviations.md.
  • API errors expose bounded sanitized detail, status, operation ID, request ID, safe API code, and safe retry timing.

The direct write example is intentionally separate. It mutates only a verified sacrificial workspace and uses a unique name: examples/sdk_create_tag_sacrificial.py.

Develop

uv sync --all-extras --dev
uv run ruff check .
uv run ruff format --check .
uv run pyright
uv run pytest -q -m "not live"
uv build

See CONTRIBUTING.md, SECURITY.md, NOTICE.md, and LICENSE.

Release files for clockify-python-115 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clockify-python-115 0.1.1
File Size Uploaded
clockify_python_115-0.1.1.tar.gz 354.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for clockify-python-115 0.1.1
File Interpreter ABI Platform
clockify_python_115-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 546.0 kB

Release files / clockify_python_115-0.1.1.tar.gz

Download URL clockify_python_115-0.1.1.tar.gz
Size 354.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4af37f881bcd99c7cb416c6814a2efd008012db6cb0fb2207e939730d9f2d9f9
BLAKE2b-256 checksum
How to use checksums
120288a249e3ba3f63140cd2e37ab64547f338b8a76301cdb6b2f16d49915798
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.

Transparency log

Release files / clockify_python_115-0.1.1-py3-none-any.whl

Download URL clockify_python_115-0.1.1-py3-none-any.whl
Size 191.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
42fd73bf956d15b9e26ce1cc8098c911d8ffc9b9014cfb3a5dce0fc36d632f29
BLAKE2b-256 checksum
How to use checksums
a21fe37d5548317b21a863ae75dfbb697498065be2613ada878d5e631d78ebc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page