Skip to main content
Glama
RichieB2B

SuperSaaS slots MCP server

by RichieB2B

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.

Related MCP server: Naver Booking MCP

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.

Available Tools

1 tool
find_available_slotsFind Available SlotsA
Read-only

List available slots in a public, single-resource SuperSaaS schedule.

Supports explicit numeric start times, fixed duration, weekly opening hours, exceptions, booked appointments, and booking-window limits. Unsupported schedule rules are reported as errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_dateYesFirst date, YYYY-MM-DD
max_resultsNoMaximum number of slots returned
schedule_urlYesPublic HTTPS SuperSaaS /schedule/ URL
through_dateYesLast date, inclusive, YYYY-MM-DD
respect_booking_windowNoApply minimum and maximum advance-booking limits

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds real behavioral context beyond that: the schedule features it honors, and crucially that unsupported schedule rules surface as errors rather than silently degrading, which tells the agent how to react to failures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose in the first sentence, followed by supported capabilities and error behavior. Four short lines with little waste, though the feature list is somewhat dense and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained. Combined with annotations, the description covers scope, supported rules, and failure behavior; only pagination/result-volume nuance is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 and the schema already documents all five parameters. The description's references to 'explicit numeric start times' and 'booking-window limits' loosely map to the booking-window parameter but add no format or boundary detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (available slots) along with the scope constraint (public, single-resource SuperSaaS schedule). An agent immediately knows this is an availability-read tool and the kind of schedule it targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There are no sibling tools to disambiguate against, and the description implies its use case (find bookable slots in a public schedule) rather than stating when to reach for it or when not to. The mention of booking-window limits hints at a precondition but is not framed as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.1
    • First observedfind_available_slots

TDQS

A4/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of confusion or misselection between tools. Its purpose to find available slots is unambiguous.

Naming Consistency5/5

The single tool name find_available_slots follows a clear snake_case verb_noun convention. With only one tool, there are no inconsistent naming patterns to compare against.

Tool Count3/5

A single tool is thin for an MCP server, even a narrowly focused one. It earns its place for read-only slot lookup, but the count is borderline given the typical 3-15 tool range.

Completeness4/5

The tool comprehensively supports listing available slots, including durations, opening hours, exceptions, booked appointments, and booking-window limits. It lacks write or booking operations, which may be acceptable if the server is strictly read-only for slots.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables users to query real-time reservation availability for Naver Booking places in Korea, including beauty salons, restaurants, and other categories.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Calendar API purpose-built for AI agents. Exposes tools to manage agents, calendars, and events, find meeting times, run scheduling proposals, set availability rules, manage webhooks, and subscribe to iCal feeds.
    54
    65 npm
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides MCP tools to list valid appointment slots, schedule, reschedule, and cancel appointments under a clinic's business policy (hours, buffers, minimum notice, practitioner availability).
    1
    MIT