An unofficial MCP server for Timetastic, exposing its absence & leave API to agentic clients.
Project description
Timetastic MCP
An unofficial MCP server for Timetastic, exposing the Timetastic API to agentic clients so they can query and manage absence & leave data.
Setup
You need an admin API token, generated at
https://app.timetastic.co.uk/api. The server reads it from the
TIMETASTIC_API_TOKEN environment variable.
The quickest way to run it is with uv's uvx,
which fetches and runs the published package without a manual install:
export TIMETASTIC_API_TOKEN="your-token-here"
uvx timetastic-mcp
Or install it as a tool so the timetastic-mcp command is on your PATH:
uv tool install timetastic-mcp # or: pipx install timetastic-mcp
[!IMPORTANT] Only admin users can generate API tokens on Timetastic. The above URL is only accessible to admin users.
Client configuration
Add the server to your MCP client (e.g. Claude Desktop / Claude Code):
{
"mcpServers": {
"timetastic": {
"command": "uvx",
"args": ["timetastic-mcp"],
"env": { "TIMETASTIC_API_TOKEN": "your-token-here" }
}
}
}
Pin a version with "args": ["timetastic-mcp@0.1.0"]. If you installed the
command on your PATH instead, use "command": "timetastic-mcp" with
"args": []. In Claude Code you can also add it from the CLI:
claude mcp add timetastic --env TIMETASTIC_API_TOKEN=your-token -- uvx timetastic-mcp
Tools
Tools are grouped by resource and named <verb>_<resource>.
| Group | Tools |
|---|---|
| Absences | list_absences |
| Holidays (leave bookings) | list_holidays, get_holiday, book_holiday, action_holiday |
| Users | list_users, get_user, get_user_contact, add_user, edit_user, archive_user, restore_user, assign_public_holidays_to_user |
| Departments | list_departments, get_department, add_department, edit_department, delete_department |
| Leave types | list_leave_types, get_leave_type, list_leave_type_colors, list_leave_type_icons, create_leave_type, update_leave_type, delete_leave_type |
| Allowances | list_all_allowances, get_user_allowance, update_user_allowance, update_user_carry_forward, add_user_toil, update_user_toil, delete_user_toil |
| Locked dates | list_locked_dates, add_locked_date, delete_locked_date |
| Public holidays | list_public_holidays, get_public_holiday, list_public_holiday_countries |
| Webhooks | list_webhook_events |
Note: Timetastic calls all leave bookings "holidays" for historical reasons — the Holidays tools cover any kind of absence, not just annual leave.
Layout
The package lives under src/timetastic_mcp/:
timetastic.py— async HTTP client (auth, base URL, rate-limit retries, error handling).server.py— the sharedFastMCPinstance andget_client(), the lazily-created API client the tools call.tools/— one module per resource area, each registering its tools on the shared server:absences,holidays,users,departments,leave_types,allowances,locked_dates,public_holidays,webhooks.main.py— entry point (thetimetastic-mcpconsole script); importstoolsto register everything, then runs the server.
Development
Requires Python 3.13+ and uv.
uv sync # create the venv and install the package + dev deps
uv run pytest # run the test suite
uv run timetastic-mcp # run the server from your checkout
Notes
- The API is rate limited to 5 requests/second per token (1/second for
list_absences); the client retries once on a429. - Write and admin operations require appropriate permissions on the token's user account.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file timetastic_mcp-0.1.0.tar.gz.
File metadata
- Download URL: timetastic_mcp-0.1.0.tar.gz
- Upload date:
- Size: 50.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0b6703b3cfb43b458bf8de7141dc0b684436112d4fdff03eaa6fe213c46e20d
|
|
| MD5 |
f195326e92fa8f535e13bf03825bf10c
|
|
| BLAKE2b-256 |
37d9f7c820ec6c840b830bf4a50dc8deb9296c4bf3a0334718cd78e3985d04c6
|
Provenance
The following attestation bundles were made for timetastic_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on mlequime/timetastic-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timetastic_mcp-0.1.0.tar.gz -
Subject digest:
d0b6703b3cfb43b458bf8de7141dc0b684436112d4fdff03eaa6fe213c46e20d - Sigstore transparency entry: 2168991810
- Sigstore integration time:
-
Permalink:
mlequime/timetastic-mcp@453e58e7441e80db21f55d6c363cc95cd67695ed -
Branch / Tag:
refs/heads/release - Owner: https://github.com/mlequime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@453e58e7441e80db21f55d6c363cc95cd67695ed -
Trigger Event:
push
-
Statement type:
File details
Details for the file timetastic_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: timetastic_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88cb9cf83dba8b5afc82f4a79f61b242f08429dd05bc6b45c78d598a4935d0bd
|
|
| MD5 |
83d386066b14ae61c6440ea9b39e4627
|
|
| BLAKE2b-256 |
a96206d04d4933caca20532c3dd0fe923f3e2a8d612afa94c91b769577ef16c3
|
Provenance
The following attestation bundles were made for timetastic_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on mlequime/timetastic-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timetastic_mcp-0.1.0-py3-none-any.whl -
Subject digest:
88cb9cf83dba8b5afc82f4a79f61b242f08429dd05bc6b45c78d598a4935d0bd - Sigstore transparency entry: 2168991814
- Sigstore integration time:
-
Permalink:
mlequime/timetastic-mcp@453e58e7441e80db21f55d6c363cc95cd67695ed -
Branch / Tag:
refs/heads/release - Owner: https://github.com/mlequime
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@453e58e7441e80db21f55d6c363cc95cd67695ed -
Trigger Event:
push
-
Statement type: