mcpField
O
OnlineAfspraken Slots

OnlineAfspraken Slots

Local
github.com/RichieB2BProductivity0Updated 5w ago

About OnlineAfspraken Slots

OnlineAfspraken Slots is a local MCP server for checking availability on public OnlineAfspraken widgets without an account. It reads slots only and cannot make bookings.

Key features

  1. 01Reads availability from public booking widgets
  2. 02Discovers widgets on booking pages
  3. 03Filters by date and appointment type
  4. 04Returns timezone and lookup time

Use cases

  1. 01Check public appointment availability for a date
  2. 02Filter available times by appointment type

MCP support

The server exposes a `get_available_slots` tool to MCP clients. It accepts a public widget URL or an embedding booking page, with optional date and appointment-type filters.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"richieb2b-onlineafspraken-slots": {
"command": "uvx",
"args": [
"onlineafspraken-slots-mcp"
]
}
}
}
Run commanduvx onlineafspraken-slots-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypionlineafspraken-slots-mcp0.1.0

Tools

1

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
roomanyNo
date_isoanyNo
booking_pagestringYes

Details

From the project 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 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
codex mcp add onlineafspraken-slots -- /absolute/path/to/onlineafspraken-slots-mcp/run.sh
codex mcp list
Claude Code
claude mcp add --scope user --transport stdio onlineafspraken-slots -- /absolute/path/to/onlineafspraken-slots-mcp/run.sh
claude 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:

{
  "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
opencode mcp add onlineafspraken-slots --global -- /absolute/path/to/onlineafspraken-slots-mcp/run.sh
opencode 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.