Skip to main content
Glama

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 build

Configuration

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_slug

The org slug is the identifier in your OfficeRnD URL: app.officernd.com/.../{your_org_slug}.

Usage with Claude Desktop

  1. Open Claude Desktop > Settings > Developer > Edit Config.

  2. 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"
      }
    }
  }
}
  1. Restart Claude Desktop. A hammer icon in the chat input confirms the connection.

Usage with ChatGPT Desktop

  1. Open the ChatGPT desktop app and go to Settings (Cmd+, on macOS / Ctrl+, on Windows).

  2. 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"
      }
    }
  }
}
  1. 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.js

Use -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

members

list, get

status, email, name, company, location

companies

list, get

name, status, location

memberships

list, get

member, company, status

checkins

list, get

member, location, startAfter, startBefore

contracts

list, get

member, company, status

visits

list, get

location, startAfter, startBefore

visitors

list

(pagination only)

opportunities

list, get

status, member, company

opportunity_statuses

list

(pagination only)

space

Query space/resource data.

Entity

Actions

Filters

resources

list, get, status

type, name, location

bookings

list, get

resourceId, member, company, location, startAfter, startBefore

booking_occurrences

list

seriesStart (required), seriesEnd (required), resourceId, member, location

floors

list, get

location, name

assignments

list

resourceId, membershipId

amenities

list, get

title

passes

list, get

member, company

credits

list, get

member, company

Resource types for the type filter: meeting_room, team_room, desk, hotdesk, desk_tr, desk_na.

billing

Query billing/financial data.

Entity

Actions

Filters

payments

list, get

status, member, company, documentType, dateFrom, dateTo, sort

fees

list

(pagination only)

plans

list, get

sort

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

events

list, get

location, startAfter, startBefore

tickets

list, get

status, member, location

posts

list, get

(pagination only)

settings

Query organization configuration.

Entity

Actions

Filters

locations

list, get

name

resource_types

list

(pagination only)

business_hours

list

location

custom_properties

list

(pagination only)

Development

npm run dev         # Watch mode — recompiles on changes
npm run inspect     # Launch with MCP Inspector for debugging

Architecture

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 properties

Request 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 $in filter operator is capped at 50 values

License

MIT

Available Tools

5 tools
billingBillingA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
entityNoEntity type (required for list/get, not used for coin_stats)
idNoEntity ID (required for action=get)
statusNoFilter by payment status
memberNoFilter by member ID (payments, coin_stats)
companyNoFilter by company ID (payments, coin_stats)
documentTypeNoFilter by document type (payments only)
dateFromNoPayments issued on/after this ISO date
dateToNoPayments issued before this ISO date
sortNoSort expression, e.g. 'createdAt,desc' (payments, plans)
monthNoMonth for coin_stats (e.g. '2026-03')
cursorNextNoCursor token for next page of results
limitNoResults per page (max 50, default 50)

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
entityYesEntity type to query
idNoEntity ID (required for action=get)
statusNoFilter by status (tickets only)
memberNoFilter by member ID (tickets only)
locationNoFilter by location ID (events, tickets)
startAfterNoEvents starting on/after this ISO date
startBeforeNoEvents starting before this ISO date
cursorNextNoCursor token for next page of results
limitNoResults per page (max 50, default 50)

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
entityYesEntity type to query
idNoEntity ID (required for action=get)
statusNoFilter by status (members, companies, memberships, contracts, visits, opportunities)
emailNoFilter by email (members only)
nameNoFilter by exact full name, e.g. 'Yoan Reimers' not just 'Yoan' (members, companies)
memberNoFilter by member ID (memberships, checkins, contracts, opportunities)
companyNoFilter by company ID (members, memberships, contracts, opportunities)
locationNoFilter by location ID (members, companies, checkins, visits)
startAfterNoFilter visits/checkins starting on or after this ISO date (e.g. 2026-03-11T00:00:00.000Z)
startBeforeNoFilter visits/checkins starting before this ISO date (e.g. 2026-03-12T00:00:00.000Z)
cursorNextNoCursor token for next page of results
limitNoResults per page (max 50, default 50)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
entityYesEntity type to query
idNoLocation ID (required for action=get, locations only)
nameNoFilter by exact name (locations)
locationNoFilter by location ID (business_hours)
cursorNextNoCursor token for next page of results
limitNoResults per page (max 50, default 50)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform (status only for resources)
entityYesEntity type to query
idNoEntity ID (required for action=get and action=status)
typeNoResource type filter (resources only)
resourceIdNoFilter by resource ID (bookings, booking_occurrences, assignments)
membershipIdNoFilter by membership ID (assignments)
memberNoFilter by member ID (bookings, booking_occurrences, passes, credits)
companyNoFilter by company ID (bookings, passes, credits)
locationNoFilter by location ID (resources, bookings, booking_occurrences, floors)
nameNoFilter by exact name (resources, floors)
titleNoFilter by title (amenities)
startAfterNoBookings starting on/after this ISO date
startBeforeNoBookings starting before this ISO date
seriesStartNoStart of date range for booking occurrences (REQUIRED for booking_occurrences)
seriesEndNoEnd of date range for booking occurrences (REQUIRED for booking_occurrences)
cursorNextNoCursor token for next page of results
limitNoResults per page (max 50, default 50)

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 5 tool updatesv1.0.0
    • First observedbilling
    • First observedcollaboration
    • First observedcommunity
    • First observedsettings
    • First observedspace

TDQS

A3.6/5.0
Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A read-only MCP server that enables AI assistants to access Slack workspace data, including channels, messages, threads, and user information.
    24,316
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for programmatic read-only access to RiseUp cashflow data, allowing AI assistants to retrieve budget information via natural language.
    2
    154
    21
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A read-only MCP server that enables AI assistants to query ServiceNow instances—incidents, changes, users, CMDB—with malformed query linting and injection protection.
    7
    MIT

Latest Blog Posts

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