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 ServerList all meeting room bookings for today"
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 read-only Model Context Protocol (MCP) server that connects AI assistants to the OfficeRnD coworking and flex-space management platform. Query members, companies, bookings, billing, and more through natural language.
What it does
This server exposes OfficeRnD data through 5 domain-grouped tools, covering 25+ entity types:
Tool | Entities | Example queries |
community | Members, companies, memberships, check-ins, contracts, visits, visitors, opportunities | "List all active members" / "Show me visits from last week" |
space | Resources, bookings, booking occurrences, floors, assignments, amenities, passes, credits | "What meeting rooms are available?" / "List bookings for today" |
billing | Payments, fees, plans, coin/credit stats | "Show pending payments" / "Get credit balance for March" |
collaboration | Events, tickets, posts | "List open tickets" / "What events are coming up?" |
settings | Locations, resource types, business hours, custom properties | "List all office locations" |
All tools are read-only — no data can be created, modified, or deleted.
Related MCP server: AI Admin API MCP Server
Prerequisites
Node.js 18+
OfficeRnD API credentials — client ID, client secret, and organization slug (from your OfficeRnD admin dashboard under Integrations > API)
Quick start
git clone https://github.com/MrBoor/officernd-mcp.git
cd officernd-mcp
npm install
npm run buildConfiguration
Set three environment variables (via .env file or directly):
OFFICERND_CLIENT_ID=your_client_id
OFFICERND_CLIENT_SECRET=your_client_secret
OFFICERND_ORG_SLUG=your_organization_slugThe org slug is the identifier in your OfficeRnD URL: app.officernd.com/.../{your_org_slug}.
Usage with Claude Desktop
Open Claude Desktop > Settings > Developer > Edit Config.
Add the server to
claude_desktop_config.json:
{
"mcpServers": {
"officernd": {
"command": "node",
"args": ["/absolute/path/to/officernd-mcp/build/index.js"],
"env": {
"OFFICERND_CLIENT_ID": "your_client_id",
"OFFICERND_CLIENT_SECRET": "your_client_secret",
"OFFICERND_ORG_SLUG": "your_organization_slug"
}
}
}
}Restart Claude Desktop. A hammer icon in the chat input confirms the connection.
Usage with ChatGPT Desktop
Open the ChatGPT desktop app and go to Settings (
Cmd+,on macOS /Ctrl+,on Windows).Navigate to Tools (or MCP Servers) and add a new server, or edit the config file directly at
~/.chatgpt/mcp.json:
{
"mcpServers": {
"officernd": {
"command": "node",
"args": ["/absolute/path/to/officernd-mcp/build/index.js"],
"env": {
"OFFICERND_CLIENT_ID": "your_client_id",
"OFFICERND_CLIENT_SECRET": "your_client_secret",
"OFFICERND_ORG_SLUG": "your_organization_slug"
}
}
}
}Restart ChatGPT. The server should appear in your tools list.
Note: MCP support requires the ChatGPT desktop app (macOS or Windows) — it is not available in the web version. Requires a Plus, Team, or Enterprise subscription.
Usage with Claude Code (CLI)
Option A — CLI command (recommended):
claude mcp add officernd \
-e OFFICERND_CLIENT_ID=your_client_id \
-e OFFICERND_CLIENT_SECRET=your_client_secret \
-e OFFICERND_ORG_SLUG=your_org_slug \
-s user \
-- node /absolute/path/to/officernd-mcp/build/index.jsUse -s project instead of -s user to scope to the current project only.
Option B — Project config file:
A .mcp.json is included in the repo. Fill in your credentials:
{
"mcpServers": {
"officernd": {
"type": "stdio",
"command": "node",
"args": ["build/index.js"],
"env": {
"OFFICERND_CLIENT_ID": "your_client_id",
"OFFICERND_CLIENT_SECRET": "your_client_secret",
"OFFICERND_ORG_SLUG": "your_organization_slug"
}
}
}
}Verify: Run /mcp inside Claude Code to check the server status.
Tool reference
Each tool accepts an action (list, get, or a special action), an entity type, and optional filters. All support cursor-based pagination via cursorNext (max 50 results per page).
community
Query community/people data.
Entity | Actions | Filters |
| list, get |
|
| list, get |
|
| list, get |
|
| list, get |
|
| list, get |
|
| list, get |
|
| list | (pagination only) |
| list, get |
|
| list | (pagination only) |
space
Query space/resource data.
Entity | Actions | Filters |
| list, get, status |
|
| list, get |
|
| list |
|
| list, get |
|
| list |
|
| list, get |
|
| list, get |
|
| list, get |
|
Resource types for the type filter: meeting_room, team_room, desk, hotdesk, desk_tr, desk_na.
billing
Query billing/financial data.
Entity | Actions | Filters |
| list, get |
|
| list | (pagination only) |
| list, get |
|
Special action — coin_stats: Get coin/credit balance for a member or company in a given month. Parameters: member, company, month (e.g., 2026-03).
collaboration
Query collaboration data.
Entity | Actions | Filters |
| list, get |
|
| list, get |
|
| list, get | (pagination only) |
settings
Query organization configuration.
Entity | Actions | Filters |
| list, get |
|
| list | (pagination only) |
| list |
|
| list | (pagination only) |
Development
npm run dev # Watch mode — recompiles on changes
npm run inspect # Launch with MCP Inspector for debuggingArchitecture
src/
index.ts # Entry point — env validation, tool registration, stdio transport
auth.ts # OAuth 2.0 client-credentials flow with token caching
client.ts # API client — GET helper, pagination, base URL
tools/
community.ts # Members, companies, memberships, check-ins, contracts, visits
space.ts # Resources, bookings, floors, assignments, amenities
billing.ts # Payments, fees, plans, coin stats
collaboration.ts # Events, tickets, posts
settings.ts # Locations, resource types, business hours, custom propertiesRequest flow: AI assistant → MCP stdio → tool handler → OAuth token (cached) → HTTP GET → OfficeRnD API → formatted response.
API rate limits
OfficeRnD API v2 enforces rate limits per integration per organization:
Operation | Per Minute | Per Day |
Read (GET) | 400 | 20,000 |
Token generation | 5 | — |
This server only performs read operations. OAuth tokens are cached in memory and reused until expiry (with a 60-second buffer), keeping token requests well under the 5/min limit.
If you receive HTTP 429 Too Many Requests, implement exponential backoff and spread requests out rather than bursting. Contact OfficeRnD support for rate limit exceptions if needed.
Security
Read-only — Only GET requests; no data modification possible
OAuth 2.0 client credentials — Tokens cached in memory, auto-refreshed before expiry
No secrets in code — Credentials are passed via environment variables
Scoped access — Only requests the minimum read permissions needed
Notes
Date/time output is converted to Eastern Time (ET)
Name filters (where noted) require exact full name match (e.g., "Jane Smith" not "Jane")
Pagination is capped at 50 items per page (both default and maximum)
The
$infilter operator is capped at 50 values
License
Available Tools
5 toolsbillingBillingA
Query billing/financial data in OfficeRnD.
action=list: List entities with optional filters and pagination (max 50 per page). action=get: Get a single entity by ID (payments, plans). action=coin_stats: Get coin/credit balance for a member or company in a given month.
Entity-specific filters when listing:
payments: status, member, company, documentType (creditNote|invoice|overpayment|paymentCharge), dateFrom, dateTo (ISO dates), sort (e.g. 'createdAt,desc')
fees: (pagination only)
plans: sort
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| entity | No | Entity type (required for list/get, not used for coin_stats) | |
| id | No | Entity ID (required for action=get) | |
| status | No | Filter by payment status | |
| member | No | Filter by member ID (payments, coin_stats) | |
| company | No | Filter by company ID (payments, coin_stats) | |
| documentType | No | Filter by document type (payments only) | |
| dateFrom | No | Payments issued on/after this ISO date | |
| dateTo | No | Payments issued before this ISO date | |
| sort | No | Sort expression, e.g. 'createdAt,desc' (payments, plans) | |
| month | No | Month for coin_stats (e.g. '2026-03') | |
| cursorNext | No | Cursor token for next page of results | |
| limit | No | Results per page (max 50, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully discloses pagination limits (max 50 per page) and date formats (ISO dates), but fails to explicitly declare the read-only/safe nature of the operations implied by 'Query', or mention rate limits and authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear action-based sections and efficient bullet-style listings for entity filters. It is appropriately front-loaded with the primary purpose statement. Minor density in the filter list prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters across 3 actions and multiple entities), the description adequately maps parameters to their applicable actions and entities. While it lacks output schema details, the rules indicate this is not required; however, it could briefly clarify what 'coin_stats' returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 100%, the description adds value by organizing parameters into entity-specific filter groups (payments, fees, plans) that are presented as a flat list in the schema. This contextual grouping helps agents understand which parameters combine logically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb 'Query' and resource 'billing/financial data in OfficeRnD', clearly distinguishing it from siblings like 'space', 'community', and 'settings'. It further clarifies scope by detailing the three distinct actions (list, get, coin_stats) and their specific purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use each internal action (list for filtered enumeration with pagination, get for single entity retrieval by ID, coin_stats for credit balances), effectively guiding selection between modes. However, it does not explicitly contrast with sibling tools or state when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
collaborationCollaborationB
Query collaboration data in OfficeRnD.
action=list: List entities with optional filters and pagination (max 50 per page). action=get: Get a single entity by ID.
Entity-specific filters when listing:
events: location, startAfter, startBefore (ISO dates)
tickets: status, member, location
posts: (pagination only)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| entity | Yes | Entity type to query | |
| id | No | Entity ID (required for action=get) | |
| status | No | Filter by status (tickets only) | |
| member | No | Filter by member ID (tickets only) | |
| location | No | Filter by location ID (events, tickets) | |
| startAfter | No | Events starting on/after this ISO date | |
| startBefore | No | Events starting before this ISO date | |
| cursorNext | No | Cursor token for next page of results | |
| limit | No | Results per page (max 50, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses pagination limits (max 50) and date formats (ISO), plus entity-specific filter constraints. However, it lacks safety disclosures (read-only vs destructive), error behavior, or rate limiting context that would be essential for a tool without annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear logical flow: purpose statement → action definitions → entity-specific filter reference. Information density is high with no redundant sentences. Bullet formatting (implied by hyphens) aids scanability for the complex filter matrix.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers input parameters and action selection for 10-parameter complexity, but lacks output schema description (return format, structure of events/tickets/posts objects). Without output schema or return value documentation, agents cannot predict result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, establishing baseline 3. The description organizes entity-specific filter constraints centrally (events vs tickets vs posts), but individual parameter descriptions in the schema already capture most of this specificity. Adds minimal semantic value beyond schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb ('Query') + resource ('collaboration data in OfficeRnD') and distinguishes scope from siblings via entity types (events, tickets, posts). However, 'collaboration data' is slightly abstract without the entity list, and it doesn't explicitly contrast with sibling tools like 'community' or 'space'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear internal guidance distinguishing when to use 'list' (filtered pagination) vs 'get' (single entity by ID), including entity-specific filter mappings. However, it lacks external guidance on when to select this tool over siblings (billing, community, settings, space).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
communityCommunityA
Query community/people data in OfficeRnD.
action=list: List entities with optional filters and pagination (max 50 per page). action=get: Get a single entity by ID.
Entity-specific filters when listing:
members: status, email, name, company, location
companies: name, status, location
memberships: member, company, status
checkins: member, location, startAfter, startBefore (ISO dates — use these to get today's check-ins)
contracts: member, company, status
visits: location, startAfter, startBefore (ISO dates — use these to get today's visits)
visitors: (pagination only)
opportunities: status, member, company
opportunity_statuses: (pagination only, no get)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| entity | Yes | Entity type to query | |
| id | No | Entity ID (required for action=get) | |
| status | No | Filter by status (members, companies, memberships, contracts, visits, opportunities) | |
| No | Filter by email (members only) | ||
| name | No | Filter by exact full name, e.g. 'Yoan Reimers' not just 'Yoan' (members, companies) | |
| member | No | Filter by member ID (memberships, checkins, contracts, opportunities) | |
| company | No | Filter by company ID (members, memberships, contracts, opportunities) | |
| location | No | Filter by location ID (members, companies, checkins, visits) | |
| startAfter | No | Filter visits/checkins starting on or after this ISO date (e.g. 2026-03-11T00:00:00.000Z) | |
| startBefore | No | Filter visits/checkins starting before this ISO date (e.g. 2026-03-12T00:00:00.000Z) | |
| cursorNext | No | Cursor token for next page of results | |
| limit | No | Results per page (max 50, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description carries burden well: discloses pagination limits (max 50 per page), ISO date format requirements with examples, exact name matching constraints, and entity-specific operation restrictions (visitors only supports pagination). Missing explicit read-only safety declaration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections for actions vs entity-specific filters. Front-loaded with purpose statement. Length is justified by the 9 entity types and their filter matrix, though the bullet list format is slightly verbose. No redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive coverage of 13-parameter input space and entity-action logic compensates for missing output schema. Adequately addresses complexity without attempting to describe all possible return entity structures, which would be impractical. Missing annotations for safety/destructive hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, but description adds critical value: specific examples ('Yoan Reimers' not 'Yoan'), date usage patterns ('use these to get today's check-ins'), and reorganizes filter-entity mappings for readability. Adds semantic constraints beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with specific verb 'Query' and clear resource 'community/people data in OfficeRnD'. Distinct from siblings (billing=financial, space=physical locations, settings=config) through explicit domain focus on people/entities like members, companies, and visits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear internal guidance distinguishing 'list' (filters, pagination) from 'get' (single ID). Documents entity-specific filter availability and notes special cases (visitors/opportunity_statuses lack 'get' action). Lacks explicit cross-tool comparisons but domain separation from siblings is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settingsSettingsA
Query organization settings and configuration in OfficeRnD.
action=list: List configuration entities. action=get: Get a single location by ID (locations only).
Entity-specific filters when listing:
locations: name
resource_types: (pagination only)
business_hours: location
custom_properties: (pagination only)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| entity | Yes | Entity type to query | |
| id | No | Location ID (required for action=get, locations only) | |
| name | No | Filter by exact name (locations) | |
| location | No | Filter by location ID (business_hours) | |
| cursorNext | No | Cursor token for next page of results | |
| limit | No | Results per page (max 50, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. While 'Query' implies read-only behavior, the description doesn't explicitly confirm safety (crucial for a 'settings' tool), disclose pagination behavior beyond parameter existence, or describe return formats/error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear section headers (action descriptions, entity-specific filters). Information is front-loaded with the general purpose statement followed by specific operational details. No redundant sentences, though the formatting with line breaks is slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description should explain return values but doesn't. It adequately covers the 7-parameter complexity through the entity-filter mappings, but misses behavioral context (rate limits, auth requirements) that would complete the picture for a configuration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds value by mapping specific filter parameters to their applicable entities (e.g., 'locations: name', 'business_hours: location'), clarifying constraints that the schema lists separately. It also emphasizes the 'locations only' restriction for the get action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Query organization settings and configuration in OfficeRnD,' specifying the verb (query), resource (settings/configuration), and domain. It distinguishes from siblings (billing, collaboration, etc.) by focusing on configuration entities, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear internal usage context by documenting when to use action=list versus action=get, explicitly noting that get is restricted to locations only, and mapping entity-specific filters. However, it lacks external comparison—no guidance on when to use this tool versus siblings like 'space' or 'community'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spaceSpaceA
Query space/resource data in OfficeRnD.
action=list: List entities with optional filters and pagination (max 50 per page). action=get: Get a single entity by ID. action=status: Check current availability of a resource (requires id).
Entity-specific filters when listing:
resources: type (meeting_room|team_room|desk|hotdesk|desk_tr|desk_na), name, location
bookings: resourceId, member, company, location, startAfter, startBefore (ISO dates)
booking_occurrences: seriesStart (REQUIRED), seriesEnd (REQUIRED), resourceId, member, location
floors: location, name
assignments: resourceId, membershipId (at least one recommended)
amenities: title
passes: member, company
credits: member, company
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform (status only for resources) | |
| entity | Yes | Entity type to query | |
| id | No | Entity ID (required for action=get and action=status) | |
| type | No | Resource type filter (resources only) | |
| resourceId | No | Filter by resource ID (bookings, booking_occurrences, assignments) | |
| membershipId | No | Filter by membership ID (assignments) | |
| member | No | Filter by member ID (bookings, booking_occurrences, passes, credits) | |
| company | No | Filter by company ID (bookings, passes, credits) | |
| location | No | Filter by location ID (resources, bookings, booking_occurrences, floors) | |
| name | No | Filter by exact name (resources, floors) | |
| title | No | Filter by title (amenities) | |
| startAfter | No | Bookings starting on/after this ISO date | |
| startBefore | No | Bookings starting before this ISO date | |
| seriesStart | No | Start of date range for booking occurrences (REQUIRED for booking_occurrences) | |
| seriesEnd | No | End of date range for booking occurrences (REQUIRED for booking_occurrences) | |
| cursorNext | No | Cursor token for next page of results | |
| limit | No | Results per page (max 50, default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses pagination limits (max 50 per page) and required fields for specific entities (seriesStart/End for booking_occurrences), but omits general behavioral traits like read-only safety, rate limits, or output format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for actions and entity-specific filters. The entity filter list is lengthy but necessary given the 8 entity types supported; information is front-loaded with the primary purpose stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (17 parameters, 8 entity types, 3 actions) and lack of output schema or annotations, the description comprehensively covers the input interface, action semantics, and entity-filter mappings. It adequately compensates for the missing output schema by detailing the query capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema has 100% description coverage, the description adds crucial enum values for the 'type' parameter (meeting_room|team_room|desk|etc.) that the schema lists only as a generic string. It also reorganizes parameters by entity type, making the polymorphic filtering logic clearer than the flat schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Query space/resource data in OfficeRnD,' providing a specific verb (Query), resource (space/resource data), and domain (OfficeRnD). It clearly distinguishes from siblings (billing, collaboration, community, settings) by focusing on physical workspace entities like resources, bookings, and floors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly delineates the three actions (list, get, status) and their specific use cases, including constraints like 'status only for resources' and 'requires id.' However, it lacks explicit 'when not to use' guidance relative to sibling tools, though the domain separation is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
billing - First observed
collaboration - First observed
community - First observed
settings - First observed
space
TDQS
While the five tools map to distinct business domains (billing, collaboration, community, settings, space), there is conceptual overlap—e.g., 'credits' appear in both billing and space tools, and member-related data is scattered across community, billing, and space. The broad 'mega-tool' approach requires agents to infer which domain bucket contains specific entities.
All tool names follow a consistent pattern of single lowercase nouns representing functional domains (billing, collaboration, community, settings, space). Although they lack action verbs (e.g., 'get_billing'), the naming convention is uniform and predictable.
Five tools is a reasonable count for the OfficeRnD domain, falling within the ideal 3-15 range. However, each tool is a heavy aggregate covering multiple entities (e.g., community covers 9+ entity types), suggesting the surface could benefit from finer granularity despite the appropriate total count.
The tool set is strictly read-only (limited to list, get, status, and coin_stats actions) for a management platform that fundamentally requires write operations. Critical gaps include inability to create/update bookings, members, or invoices, which will prevent agents from completing core coworking management workflows like checking in visitors or reserving rooms.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Hosted MCP server exposing US hospital procedure cost data to AI assistants
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that enables AI assistants to access Slack workspace data, including channels, messages, threads, and user information.24,3163MIT
- AlicenseAqualityAmaintenanceA read-only MCP server for querying AI provider administration APIs, providing normalized usage, cost, and dashboard data for OpenAI and Anthropic.419MIT

RiseUp MCP Serverofficial
AlicenseAqualityCmaintenanceMCP server for programmatic read-only access to RiseUp cashflow data, allowing AI assistants to retrieve budget information via natural language.215421MIT- AlicenseAqualityCmaintenanceA read-only MCP server that enables AI assistants to query ServiceNow instances—incidents, changes, users, CMDB—with malformed query linting and injection protection.7MIT
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/MrBoor/officernd-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server