Skip to main content
Glama

nexudus-mcp

An MCP server that lets Claude Code book and manage rooms in Nexudus coworking spaces using natural language.

"Book me a conference room tomorrow at 2pm for 6 people"

What it does

  • List rooms with capacity and amenities

  • Check availability for a time window

  • Book rooms by name (fuzzy matching)

  • View your upcoming bookings

  • Cancel bookings

  • View a room's schedule for a given day

Related MCP server: DiSH MCP Server

Setup

Prerequisites

  • Claude Code installed

  • A Nexudus member account with login credentials

  • Your portal URL (e.g., yourspace.spaces.nexudus.com)

  • Node.js 18+

Quick setup (let Claude do it)

Tell Claude Code:

Clone github.com/jude-stiel/nexudus-mcp and set it up as an MCP server for Nexudus room booking

Claude will walk you through the rest. Or do it manually:

Manual setup

  1. Clone and build

git clone https://github.com/jude-stiel/nexudus-mcp.git
cd nexudus-mcp
npm install
npm run build
  1. Create .env

cat > .env << 'EOF'
NEXUDUS_EMAIL=your-email@example.com
NEXUDUS_PASSWORD=your-password
NEXUDUS_PORTAL=yourspace.spaces.nexudus.com
NEXUDUS_COWORKER_ID=your-coworker-id
EOF
  • NEXUDUS_EMAIL / NEXUDUS_PASSWORD — your Nexudus login credentials

  • NEXUDUS_PORTAL — your space's portal hostname (check your browser URL bar when logged in)

  • NEXUDUS_COWORKER_ID — (optional) your member ID in Nexudus. If omitted, the server extracts it from your existing bookings. To find it manually: open DevTools on the portal, book a room, and look for CoworkerId in the network request body.

  1. Test your credentials

read -rs 'pass?Password: ' && echo && curl -s -X POST https://spaces.nexudus.com/api/token \
  --data-urlencode 'grant_type=password' \
  --data-urlencode "username=YOUR_EMAIL" \
  --data-urlencode "password=$pass" | python3 -c "import sys,json; d=json.load(sys.stdin); print('Token OK' if 'access_token' in d else f'Auth failed: {d}')"
  1. Register with Claude Code

Add to .mcp.json in your working directory (create the file if it doesn't exist):

{
  "mcpServers": {
    "nexudus-rooms": {
      "command": "/absolute/path/to/nexudus-mcp/start.sh"
    }
  }
}
  1. Restart Claude Code — the server will connect automatically on startup.

Usage

Just talk to Claude naturally:

You say

What happens

"What rooms are available at 2pm tomorrow?"

Searches availability for conference rooms

"Book the main conference room Thursday 10-11am"

Books the room via the checkout flow

"What do I have booked this week?"

Lists your upcoming bookings

"Cancel my 3pm booking"

Looks up the booking ID and cancels it

"What's the schedule for the small meeting room today?"

Shows all bookings for that room

"I need a room for 8 people tomorrow at noon"

Searches, filters by capacity, suggests options

How it works

The server authenticates with Nexudus using your member credentials (OAuth bearer token) and calls the same portal API endpoints that the Nexudus web portal uses. It does not require admin API access.

See WALKTHROUGH.md for a detailed technical explanation of the architecture, API reverse-engineering process, and obstacles overcome.

Limitations

  • Member-level access only — uses the portal API, not the admin REST API. This works for booking and cancelling your own rooms but can't perform admin operations.

  • Availability data — the portal returns bookings for the current month. Availability checks for dates far in the future may be incomplete.

  • No recurring bookings yet — each booking is a one-off. The Nexudus data model supports repeating bookings but the creation flow hasn't been implemented.

  • Token refresh — tokens are cached and refreshed automatically, but if your password changes you'll need to update .env and restart.

License

MIT

Available Tools

6 tools
book_roomC

Book a room for a specific time slot

Inputs: date (required), room (required), end_time (required), start_time (required), +1 more.

cancel_bookingC

Cancel a booking by its ID

Inputs: booking_id (required).

get_room_scheduleB

View all bookings for a specific room on a given date

Inputs: date (required), room (required).

list_roomsB

List all bookable rooms with capacity and amenities. Can filter by type (Conference Room, Lab Equipment, Wellness Room).

Inputs: type.

my_bookingsB

List your upcoming (or recent past) bookings

Inputs: include_past.

search_available_roomsC

Find which rooms are free during a specific time window

Inputs: date (required), end_time (required), start_time (required), type.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct aspect of room booking: inventory (list_rooms), availability search (search_available_rooms), schedule viewing (get_room_schedule), booking action (book_room), personal bookings (my_bookings), and cancellation (cancel_booking). No two tools overlap in purpose, and descriptions clearly delineate their scope.

    Naming Consistency4/5

    Five of six tools follow a consistent verb_noun snake_case pattern (list_rooms, search_available_rooms, get_room_schedule, book_room, cancel_booking). 'my_bookings' deviates as a possessive noun phrase, but the overall convention remains readable and predictable.

    Tool Count5/5

    Six tools provide a well-scoped set for a room booking domain, covering discovery, availability, scheduling, booking, and cancellation without redundancy. The count is typical for a focused MCP server.

    Completeness4/5

    Core lifecycle operations are present: list rooms, check availability, view schedules, book, list personal bookings, and cancel. The only notable gap is a dedicated update/reschedule operation, but this can be worked around by canceling and rebooking.

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to search for available desk space, submit room reservations, and let admins approve or reject booking requests through a scoped MCP API.
      -
    • A
      license
      A
      quality
      B
      maintenance
      Enables booking UNC Davis Library study spaces through LibCal, including availability checks, ranked suggestions, confirmed reservations, and optional Apple Calendar integration from natural-language agent requests.
      5
      1
      MIT