OfficeRnD MCP Server
Click on "Install 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., "@OfficeRnD MCP Servershow me available meeting rooms for next Monday"
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.
OfficeRnD MCP Server
A production-ready Model Context Protocol (MCP) server that exposes the complete OfficeRnD REST API as AI-friendly tools. Enables AI clients (Claude Desktop, ChatGPT, Cursor, VS Code, and others) to interact with your coworking space management platform using natural language.
Table of Contents
Related MCP server: Finizi B4B MCP Server
Overview
This monorepo provides everything needed to connect any MCP-compatible AI client to OfficeRnD:
Package | Description |
Reusable OfficeRnD REST API SDK — OAuth2, retries, pagination | |
Business logic helpers — available rooms, expiring memberships, etc. | |
MCP server exposing 160+ tools over stdio | |
VS Code extension for credential management and MCP configuration |
Architecture
AI Client
(Claude Desktop / ChatGPT / Cursor / VS Code)
│
│ MCP (stdio)
▼
┌─────────────────────────────────────────┐
│ @officernd/mcp │
│ Tool Registry (160+ CRUD + business) │
├─────────────────────────────────────────┤
│ @officernd/core │
│ Business helpers (rooms, members, …) │
├─────────────────────────────────────────┤
│ @officernd/sdk │
│ OAuth2 · HTTP Client · Pagination │
│ Retries · Rate Limiting · Logging │
└─────────────────────────────────────────┘
│
▼
OfficeRnD REST APIThe SDK has no MCP dependency, making it reusable in non-MCP contexts.
Installation
Prerequisites
Node.js 22 or later
An OfficeRnD account with API access
OAuth2 Client ID and Client Secret (see Authentication)
Install the MCP Server
npm install -g @officernd/mcpThis installs the officernd-mcp command globally.
Verify Installation
officernd-mcp --versionAuthentication
OfficeRnD uses OAuth2 Client Credentials for API access.
Obtain Credentials
Log in to your OfficeRnD dashboard
Go to Settings → Integrations → API
Create a new OAuth2 application
Copy your Client ID and Client Secret
Note your Organization Slug (the subdomain in your OfficeRnD URL, e.g.
my-spacefrommy-space.officernd.com)
Required Scopes
For the Flex API v2 (recommended), grant your OAuth2 application the specific scopes it needs. Examples:
flex.community.members.read
flex.community.members.create
flex.space.bookings.read
flex.space.bookings.create
flex.billing.charges.readYour OfficeRnD OAuth2 application must be configured with the scopes you want the MCP server to use. You must specify at least one scope — OfficeRnD will reject token requests that do not include a scope. Configure the OFFICERND_SCOPES environment variable (space-separated list) for the MCP server, or set officernd.scopes in VS Code settings for the extension.
The token endpoint is rate-limited to 5 requests per minute. The SDK automatically caches tokens and reuses them until 60 seconds before expiry.
Configuration
Configure the server using environment variables:
Variable | Required | Description |
| ✅ | Your OAuth2 Client ID |
| ✅ | Your OAuth2 Client Secret |
| Recommended | Organization slug (subdomain) |
| ✅ | Space-separated OAuth2 scopes (e.g. |
| No | API version: |
| No | Log level: |
Example
export OFFICERND_CLIENT_ID="your_client_id"
export OFFICERND_CLIENT_SECRET="your_client_secret"
export OFFICERND_ORG="my-coworking-space"
export OFFICERND_SCOPES="flex.community.members.read flex.space.bookings.read"
officernd-mcpSecurity note: Never hardcode credentials in configuration files. Use environment variables or a secrets manager. The VS Code extension generates MCP config with
${env:...}placeholders so secrets are never written to disk.
MCP Tools
The server automatically generates tools from the resource registry. Every resource supports a consistent set of operations:
CRUD Tools (per resource)
Tool Pattern | Description |
| List all items with optional filters |
| Get a specific item by ID |
| Count items matching filters |
| Create a new item |
| Update an existing item |
| Delete an item |
Supported Resources
Resource | Tools |
Members |
|
Companies |
|
Teams |
|
Memberships |
|
Bookings |
|
Rooms |
|
Desks |
|
Resource Types |
|
Locations |
|
Floors |
|
Amenities |
|
Assignments |
|
Passes |
|
Coins |
|
Credits |
|
Invoices |
|
Payments |
|
Charges |
|
Payment Details |
|
Tax Rates |
|
Revenue Accounts |
|
Resource Rates |
|
Cancellation Policies |
|
Plans |
|
Visitors |
|
Visits |
|
Events |
|
Tickets |
|
Ticket Options |
|
Ticket Comments |
|
Posts |
|
Benefits |
|
Opportunities |
|
Opportunity Statuses |
|
Contracts |
|
Check-ins |
|
Fees |
|
Reception Flows |
|
Webhooks |
|
Secondary Currencies |
|
… and more resource types |
Business / AI Convenience Tools
Tool | Description |
| Find available meeting rooms for a time range |
| Find memberships expiring within N days |
| Get all visitors for today |
| Get all room bookings for today |
| Get all outstanding invoices |
| Get all members from a company |
| Get all currently active members |
Example AI Interactions
"Show me all members who joined in the last 30 days"
→ list_members with date filters
"Find available meeting rooms tomorrow at 2pm for 8 people"
→ find_available_rooms
"Which memberships are expiring this month?"
→ find_memberships_expiring_soon with daysUntilExpiry: 30
"Show today's visitors"
→ get_todays_visitors
"How many unpaid invoices do we have?"
→ get_unpaid_invoicesClient Setup
VS Code (Copilot)
Option A: Using the VS Code Extension (Recommended)
Install the OfficeRnD MCP extension from the VS Code Marketplace
Run command:
OfficeRnD: Configure ConnectionEnter your Client ID, Client Secret, and Organization Slug
Run command:
OfficeRnD: Generate MCP ConfigurationThe extension writes
.vscode/mcp.jsonwith secure environment variable references
Option B: Manual Configuration
Create or edit .vscode/mcp.json in your workspace:
{
"servers": {
"officernd": {
"command": "officernd-mcp",
"env": {
"OFFICERND_CLIENT_ID": "${env:OFFICERND_CLIENT_ID}",
"OFFICERND_CLIENT_SECRET": "${env:OFFICERND_CLIENT_SECRET}",
"OFFICERND_ORG": "your-org-slug"
}
}
}
}Set environment variables in your shell profile (.bashrc, .zshrc, etc.):
export OFFICERND_CLIENT_ID="your_client_id"
export OFFICERND_CLIENT_SECRET="your_client_secret"Claude Desktop
Edit your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"officernd": {
"command": "officernd-mcp",
"env": {
"OFFICERND_CLIENT_ID": "your_client_id",
"OFFICERND_CLIENT_SECRET": "your_client_secret",
"OFFICERND_ORG": "your-org-slug"
}
}
}
}Restart Claude Desktop. You should see "officernd" in the MCP servers list.
Cursor
Create or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"officernd": {
"command": "officernd-mcp",
"env": {
"OFFICERND_CLIENT_ID": "your_client_id",
"OFFICERND_CLIENT_SECRET": "your_client_secret",
"OFFICERND_ORG": "your-org-slug"
}
}
}
}ChatGPT
ChatGPT supports MCP via the OpenAI desktop app. Configure in the app's MCP settings using the same officernd-mcp command with the required environment variables.
VS Code Extension
The officernd-mcp-vscode extension provides a first-class developer experience:
Commands
Command | Description |
| Guided setup wizard for credentials |
| Verify credentials and API connectivity |
| Display current config (secrets masked) |
| Update stored credentials |
| Remove all stored credentials |
| Write |
| Open the output channel for debug logs |
| Populate |
Status Bar
The status bar shows the current connection state:
$(check) OfficeRnD Connected— credentials configured$(warning) OfficeRnD Disconnected— no credentials
Security
Credentials are stored in VS Code's SecretStorage (OS keychain). Secrets are never written to:
settings.jsonWorkspace settings
mcp.json— env var references (${env:...}) are used instead
Development
Prerequisites
node --version # Must be >= 22
npm --versionClone and Install
git clone https://github.com/EmpathDesign/OfficeRnD_MCP.git
cd OfficeRnD_MCP
npm installBuild
npm run buildTest
npm testLint and Format
npm run lint # ESLint
npm run format:check # Prettier check
npm run format # Prettier fixMonorepo Structure
packages/
├── sdk/ @officernd/sdk — REST API SDK
├── core/ @officernd/core — Business helpers
├── mcp/ @officernd/mcp — MCP server + CLI
└── vscode/ officernd-mcp-vscode — VS Code extensionAdding a New Resource
The resource registry in packages/sdk/src/resources/registry.ts is the single source of truth. Add a new entry:
{
name: 'my_resource',
path: '/my-resources',
description: 'Description of the resource',
operations: ['list', 'get', 'create', 'update', 'delete', 'count'],
}The MCP server automatically generates all tools from this registry. No additional code changes are needed.
Troubleshooting
Server doesn't start
Error: OFFICERND_CLIENT_ID and OFFICERND_CLIENT_SECRET environment variables are required.Ensure both environment variables are set before running officernd-mcp.
Authentication errors
OAuth2 token request failed: 401Verify your Client ID and Client Secret are correct
Ensure the OAuth2 application has the Flex API scopes your workflows need (for example
flex.community.members.read)Check that your organization slug matches your OfficeRnD URL
Rate limiting
The token endpoint is limited to 5 requests/minute. The SDK caches tokens automatically — this should only occur if the server is restarted very frequently.
404 errors on API calls
Verify your
OFFICERND_ORGis set to the correct organization slugCheck that the API version (
OFFICERND_API_VERSION) matches what your account supports
Enabling debug logging
OFFICERND_LOG_LEVEL=debug officernd-mcpLogs are written to stderr to keep MCP's stdout protocol clean.
Deferred Endpoints
The following OfficeRnD API resources are not yet implemented. They are documented here for follow-up:
Resource | Notes |
Access Control | Badge/door access management |
Occupancy tracking | Real-time sensor data |
Checkout flows | Online booking checkout |
Multi-org federation | Cross-organization queries |
Webhooks management | Endpoint delivery status |
Document uploads | Binary file operations |
OpenAPI code generation | Automatic SDK regeneration |
The RESOURCES registry in packages/sdk/src/resources/registry.ts is designed for declarative extension — adding a new resource requires a single entry.
Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/my-featureMake changes and add tests
Verify:
npm run build && npm test && npm run lintSubmit a pull request
All PRs run the CI workflow (lint → format check → build → test) automatically.
License
MIT © EmpathDesign
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EmpathDesign/OfficeRnD_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server