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.2. 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.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.2

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.2
File Size Uploaded
clockify_python_115-0.1.2.tar.gz 354.5 kB Details

Built distribution (wheel)

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

Total release size: 546.3 kB

Release files / clockify_python_115-0.1.2.tar.gz

Download URL clockify_python_115-0.1.2.tar.gz
Size 354.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2897db738c158a920256156622aac6bed1ef1c381977750286a82cf2ae11b3a7
BLAKE2b-256 checksum
How to use checksums
a37d3c87b7ef5df6257ce7f3df6a248d31b320a0dd2c9c0d882a57352518284d
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.2-py3-none-any.whl

Download URL clockify_python_115-0.1.2-py3-none-any.whl
Size 191.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5c92d2047ec80b8b9ccb41ebd85c4aa8ed175b979f93e711bcdce3c24d71825
BLAKE2b-256 checksum
How to use checksums
0770db10b13b18f87a3a2df9d8e3bf7f869c3ebabde1d674557d551ec374db34
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

This release

0.1.2 This release

2 release files

0.1.1

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