Skip to main content

SuperSaaS slots MCP server

A read-only FastMCP server for public resource schedules with one resource and explicit numeric start times. It downloads the public schedule page, extracts rp_id, token, bit_prefs, open_times, appointment duration, buffer, and start-time constraints, then calls /ajax/resource/<rp_id> in 28-day windows. Each call explicitly requests the exception list with efrom, eto, and ed=r. No account or API key is needed for the tested public page.

Licensed under the MIT License.

Install

After publication, use Python 3.10+:

pip install supersaas-slots-mcp

For local development from the project directory:

python3 -m venv .venv
.venv/bin/python -m pip install -e .

Dependencies are declared in pyproject.toml; FastMCP is pinned to version 4.0.10. Both supersaas-slots and supersaas-slots-mcp start the server.

Connect

Configure a stdio MCP server in your MCP client:

{
  "mcpServers": {
    "supersaas-slots": {
      "command": "/absolute/path/to/supersaas-mcp/.venv/bin/supersaas-slots"
    }
  }
}

Replace the command path with the absolute path to your project directory. The client must allow this local process to make HTTPS requests to www.supersaas.nl (or www.supersaas.com). FastMCP handles the stdio protocol; the availability calculation remains in supersaas_mcp.py.

Tool

find_available_slots accepts:

{
  "schedule_url": "https://www.supersaas.nl/schedule/downthehatch/SLEEP",
  "from_date": "2026-10-19",
  "through_date": "2026-10-25"
}

through_date is inclusive. Optional max_results defaults to 500; the response includes the full count and truncated flag. Optional respect_booking_window defaults to true and applies the page's minimum and maximum advance-booking limits. Set it to false when examining historical schedule data.

Times are returned as schedule wall-clock strings (YYYY-MM-DD HH:MM). The schedule's numeric appointment and exception epochs are interpreted as UTC, matching the tested page. The server refreshes the page and AJAX data on each call, so results can change as bookings are made.

For the saved October fixture, the week of October 19 has one free slot: October 22, 09:30–12:30. Monday is closed by the low seven bits of bit_prefs (0b1111001, Sunday first). The October 13 Tuesday exception opens 09:30–12:30.

SuperSaaS selects exception rows by their start date. To catch a blocked range that began before the requested window, the AJAX query sets efrom=1970-01-01 while keeping eto at the window's end. Exception type 0 blocks all overlapping dates; type 1 adds the listed opening interval. For example, the live response contains a type 0 block from February 19 through February 28, 2027, so the week of February 22 has no available slots.

Scope

This server handles the tested resource-schedule shape: one resource, fixed duration, up to two daily opening periods, explicit numeric start times, weekday enable bits, additive opening exceptions, blocked ranges, booked appointments, and buffer time. It rejects schedules advertising clustering, synchronization, or complex linked rules. Other SuperSaaS schedule types, recurring rule patterns, per-user limits, and payment-dependent availability are not modeled. An available slot is a calculated candidate, not a booking guarantee; the booking page remains authoritative at reservation time.

Test

.venv/bin/python -m unittest -v test_supersaas_mcp.py

The tests use the included copies of your example files. A live read-only call against the example schedule also returned the expected October 22 slot on 2026-09-27.

Release

Releases use PyPI Trusted Publishing and MCP Registry GitHub OIDC. Before the first release:

  1. Create a pypi environment in this GitHub repository and allow deployment from version tags. In PyPI, register a pending trusted publisher for owner RichieB2B, repository supersaas-slots-mcp, workflow release.yml, and environment pypi. The PyPI project does not need to exist yet.
  2. Create an mcp-registry GitHub environment and allow deployment from version tags. The Registry uses GitHub OIDC, so it needs no registry token.
  3. Keep the version in pyproject.toml, server.json (both version fields), and the FastMCP server constructor in sync. Commit the release before tagging it.
  4. Push a matching tag, for example git tag v0.1.0 && git push origin v0.1.0.

The release workflow tests and builds the distribution, publishes it to PyPI, then submits server.json to the MCP Registry. The CI workflow runs tests and package checks on pushes and pull requests. A pushed release tag publishes externally; review its commit and environment settings first.

Release files for supersaas-slots-mcp 0.1.0

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

Source distribution (sdist)

Source distribution for supersaas-slots-mcp 0.1.0
File Size Uploaded
supersaas_slots_mcp-0.1.0.tar.gz 8.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for supersaas-slots-mcp 0.1.0
File Interpreter ABI Platform
supersaas_slots_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.4 kB

Release files / supersaas_slots_mcp-0.1.0.tar.gz

Download URL supersaas_slots_mcp-0.1.0.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
722efee49f129b0e63b88b01aba3cc5e0e28377c2ecf1bf504ee080885cd0800
BLAKE2b-256 checksum
How to use checksums
1c8f5ebe1d72a0f2f55dc397ba15f88c0443274f57ceffbd6cce6865a0f08c6f
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 Sep 27, 2026.

Transparency log

Release files / supersaas_slots_mcp-0.1.0-py3-none-any.whl

Download URL supersaas_slots_mcp-0.1.0-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bab54a707940466192f28ea46b74195e1b82a424ea1a5e454713bf1532fe0199
BLAKE2b-256 checksum
How to use checksums
df615960607881517a286bbc9aeed7154707cdd9dcc24e3c26dccc732c233644
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 Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

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