OnlineAfspraken Slots

io.github.RichieB2BPublished by GitHub account RichieB2Bv0.1.0Updated Oct 24, 2026

Read available slots from a public OnlineAfspraken widget URL without an account.

VerifiedSTDIODesktop onlyProductivity & Workflow

Overview

AI-generated overview

Local MCP server that reads available appointment slots from a public OnlineAfspraken widget URL, without an account.

What you can do
  • Look up available appointment slots for a given public OnlineAfspraken widget or booking page URL
  • Filter results by appointment type name and by date, defaulting to today in Europe/Amsterdam
  • Return appointment type names, available start times, date, timezone and the time availability was checked
When to use it
Useful when you want an assistant to check open appointment times on a public OnlineAfspraken booking widget, for example to compare today's or a specific day's availability before booking manually.
Requirements
Runs as a local stdio process; needs Python 3.10 or newer and an MCP client. Install from the PyPI package with uvx or from a local checkout via the provided setup and run scripts. No account, API key or environment variables are declared. The widget URL must be public and HTTPS.
Before you install
Read-only: it cannot make a booking, and slots may change between lookup and booking. It relies on the widget's public, undocumented read endpoint, so provider changes may break it. The booking page URL you supply is sent to that endpoint.

Installation

In SourceWeft

  1. Open OnlineAfspraken Slots in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

OnlineAfspraken slots MCP

Read available slots from a public OnlineAfspraken widget URL without an account. This local MCP server reads availability only; it cannot make a booking.

Get started

You need Python 3.10 or newer and an MCP client. The commands below use a Unix shell (macOS or Linux).

  1. Download or clone this repository.

  2. In its directory, install the package and its dependencies:

    sh
    sh setup.sh
  3. Register the server with your MCP client using one of the examples below. Replace /absolute/path/to/onlineafspraken-slots-mcp with the full path to your downloaded copy.

  4. Start a new chat and provide a public OnlineAfspraken widget URL. For example: “Show today's available times for this widget: [paste the full widget URL here].”

You can also pass the URL of a public booking page that embeds one OnlineAfspraken widget. If the page has several widgets, use the direct URL of the one you want.

Connect your MCP client

Codex

sh
codex mcp add onlineafspraken-slots -- /absolute/path/to/onlineafspraken-slots-mcp/run.shcodex mcp list

Claude Code

sh
claude mcp add --scope user --transport stdio onlineafspraken-slots -- /absolute/path/to/onlineafspraken-slots-mcp/run.shclaude mcp list

The user scope makes the server available in all your Claude Code projects. See the Claude Code MCP documentation for other scopes.

Claude Desktop

Add this entry under mcpServers in your Claude Desktop configuration, then restart Claude Desktop:

json
{  "mcpServers": {    "onlineafspraken-slots": {      "command": "/absolute/path/to/onlineafspraken-slots-mcp/run.sh"    }  }}

If you already have an mcpServers object, add just the onlineafspraken-slots entry to it. The Claude Desktop local server guide explains where to manage local servers and check their connection status.

OpenCode

sh
opencode mcp add onlineafspraken-slots --global -- /absolute/path/to/onlineafspraken-slots-mcp/run.shopencode mcp list

The global option makes the server available in every OpenCode project. See the OpenCode MCP documentation for project-specific configuration.

After the first PyPI release, clients that support a package runner can launch the onlineafspraken-slots-mcp command from that package instead of using a local checkout.

Tool inputs

The server exposes get_available_slots:

InputRequiredMeaning
booking_pageYesFull HTTPS URL of a public OnlineAfspraken widget or a page that embeds it.
date_isoNoDate in YYYY-MM-DD format. Defaults to today in Europe/Amsterdam.
roomNoPart of an appointment type name to filter the results.

Results include the appointment type names, available start times, date, timezone, and the time the availability was checked. The room input is named for the original use case; it works with any appointment type.

Limitations

The server uses the widget's public, undocumented read endpoint. A provider change may require an update. A booking page must expose its widget URL in a script, iframe, or link for automatic discovery. Available slots can change between lookup and booking.

License

MIT

Publishing a release

For maintainers: keep the version in pyproject.toml and server.json in sync. To publish the first release, configure a pending PyPI trusted publisher with these values:

PyPI fieldValue
PyPI project nameonlineafspraken-slots-mcp
OwnerRichieB2B
Repositoryonlineafspraken-slots-mcp
Workflowpublish-pypi.yml
Environmentpypi

Then publish a GitHub release tagged v0.1.0. The release workflow builds and checks the distributions, uploads them to PyPI through trusted publishing, and publishes the matching version to the official MCP Registry through GitHub OIDC.

The official MCP Registry guide explains the publishing process. The registry checks the mcp-name marker above against the README included in the PyPI release.

Source: README.md at commit 4b15b47

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 26, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts