roamer-x-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@roamer-x-mcp Book me a meeting room at the LIC tomorrow from 14:00 to 16:00."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
roamer-x-mcp
Early version: sign-in, search, booking and cancellation are verified on the ULB/VUB tenant.
Let your AI assistant book rooms for you through Roamer X, the app ULB and VUB use for the LIC building. Ask things like:
Book me a meeting room at the LIC tomorrow from 14:00 to 16:00. What have I booked this week? Cancel my Thursday booking.
roamer-x-mcp is an MCP server: a small program that AI apps (Claude Code,
Claude Desktop, Codex, Cursor…) launch in the background to get extra tools. It talks to the ICONICS IBSS API
behind Roamer X with your own session, and can only do what you can do in the app.
Made for the ULB/VUB tenant (uob, the default), but it should work with any IBSS tenant
(roamer-x-mcp login --tenant <name>).
Install
1. Install uv if you do not have it:
curl -LsSf https://astral.sh/uv/install.sh | sh (macOS / Linux), then open a new terminal.
2. Install roamer-x-mcp and sign in
uv tool install git+https://github.com/Nicolas-Prn/roamer-x-mcp
roamer-x-mcp loginlogin opens a browser window on the IBSS Hub where you sign in with your university account (Microsoft),
then offers to register the server in every AI app it finds: Claude Code, Claude Desktop, Codex, Cursor,
Gemini CLI, Windsurf and OpenClaw. Restart open desktop apps afterwards.
The session is kept in a dedicated browser profile under
~/.config/roamer-x-mcp/. The API token lasts about an hour; the server renews it in the background by reopening the Hub headless, and signs in again silently with Microsoft's "stay signed in" cookie when the Hub session has expired. Your password is never seen or stored. Runloginagain if Microsoft asks for your password or MFA.Browser: your installed Google Chrome, else a system Chromium (
/usr/bin/chromium, e.g. on a Raspberry Pi), else Playwright's (uvx playwright install chromium).Headless machine (server, Raspberry Pi):
loginneeds a window once. Run it over SSH with X forwarding (ssh -X host, with XQuartz on macOS) or from the machine's desktop session.
Other commands: roamer-x-mcp install [client…] / uninstall [client…] to (un)register the server,
roamer-x-mcp status to check the connection and see detected apps.
Related MCP server: DiSH MCP Server
Tools
Tool | What it does |
| Buildings, floors and searchable space types |
| Spaces free for a whole slot (type, floor, capacity), with their booking rules |
| Details and booking rules of one space |
| Your bookings over a period |
| Books a space in your name (checks the rules first) |
| Cancels one of your bookings |
| Checks the connection |
Development
uv sync
uv run pytest
uv run roamer-x-mcp statusHow the IBSS API works and which endpoints are used: see docs/api.md.
License
MIT
Available Tools
7 toolsbook_spaceA
Book a space for the user. date=YYYY-MM-DD, start/end=HH:MM (building local time).
name: booking title shown in Roamer X; defaults to the user's name.
Checks the space's booking policy first (duration, how far ahead). Confirm with the user before calling.
Inputs: end (required), date (required), start (required), space_id (required), +3 more.
cancel_bookingADestructiveIdempotent
Cancel one of the user's bookings (booking_id from list_my_bookings). Confirm with the user first.
Inputs: booking_id (required), building_id.
connection_statusARead-only
Check that the Roamer X connection works (signed in, token accepted by the API).
Inputs: no named parameters.
get_spaceARead-only
Details and booking rules of one space (by its space id, e.g. "LIC.4.17").
Inputs: space_id (required), building_id.
list_locationsARead-only
List buildings and their floors (ids, names, time zone) and the space types you can search for.
Inputs: no named parameters.
list_my_bookingsBRead-only
List the user's bookings from from_date (YYYY-MM-DD, default today) over days days.
Inputs: days, from_date, building_id.
search_spacesARead-only
Find spaces free for the whole slot. date=YYYY-MM-DD, start/end=HH:MM (building local time).
space_type: "Desk" (study seats), "MeetingRoom", "Boardroom", "LectureTheatre"... (see list_locations).
floor: floor number ("-1", "4"), name or id. Returns space ids to pass to book_space, with booking rules.
Inputs: end (required), date (required), start (required), floor, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a clearly distinct role: list_locations provides building/floor metadata, get_space retrieves one space's details, search_spaces finds available spaces, and the booking tools handle create/list/cancel. connection_status is also clearly separate. There is no meaningful overlap that would cause misselection.
Most tools follow a consistent snake_case verb_noun pattern (list_locations, get_space, search_spaces, list_my_bookings, book_space, cancel_booking). The only minor deviation is connection_status, which is noun-first rather than verb-first, but the overall convention remains predictable.
Seven tools are well-scoped for a space-booking server, covering discovery, availability search, booking management, and connection validation without bloat. Each tool earns its place in the workflow.
The core booking lifecycle is covered: discover locations, inspect spaces, search availability, book, list bookings, and cancel. A notable minor gap is updating or rescheduling an existing booking, though agents can work around this by cancelling and rebooking.
Maintenance
Related MCP Connectors
Find free rooms and book, change or cancel them. Sign in from Claude, ChatGPT or Grok Bot.
Spaceti workplace analytics: occupancy, environment, bookings, sensors. Read-only, OAuth 2.1 login.
Enables AI assistants to retrieve event data and execute event management operations in Nunify.
Skedda MCP server for ChatGPT, Claude and any AI agent: list bookings, create booking, cancel booking, approve booking request and block out a space in your own Skedda account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Skedda yourself; Cotlet does not store your password and you need no Skedda API key. About the official Skedda API: Skedda has a read-only API in beta and no official MCP server (checked 31 Oct 2026). It lists spaces and booking occurrences and sends webhooks for booking events, on Skedda Premier and AllBooked Advanced. Setup and FAQ: https://cotlet.dev/integrations/skedda-api-mcp-server
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Claude to search for available meeting rooms, check reservation status, and create room bookings through an integrated SSO-authenticated meeting room system. Supports natural language queries for room availability by date, time, floor, and duration requirements.-
- FlicenseAqualityDmaintenanceEnables interaction with the DiSH room booking platform to search availability, create bookings, and manage reservations. It allows AI assistants to handle meeting room logistics directly through natural language commands.3-
- FlicenseBqualityDmaintenanceEnables natural language booking and management of rooms in Nexudus coworking spaces, including listing rooms, checking availability, booking, viewing/cancelling bookings, and schedules.6-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to browse, search, and book meeting rooms across multiple buildings with realistic seed data and conflict detection.-