← Back to Skills Marketplace
chrischall

Tmp.MhR5lJGw3L

by chrischall · GitHub ↗ · v2.1.3 · MIT-0
cross-platform ⚠ suspicious
50
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install ioffice-mcp
Description
Access iOffice workspace and facility data via MCP. Use when the user asks about iOffice buildings, floors, spaces, reservations, visitors, maintenance reque...
README (SKILL.md)

ioffice-mcp

MCP server for iOffice — natural-language workspace and facility management via the iOffice API.

Setup

Option A — npx (recommended)

Add to .mcp.json in your project or ~/.claude/mcp.json:

{
  "mcpServers": {
    "ioffice": {
      "command": "npx",
      "args": ["-y", "ioffice-mcp"],
      "env": {
        "IOFFICE_HOST": "your-tenant.ioffice.com",
        "IOFFICE_TOKEN": "your-token-here"
      }
    }
  }
}

Option B — from source

git clone https://github.com/chrischall/ioffice-mcp
cd ioffice-mcp
npm install && npm run build

Then add to .mcp.json:

{
  "mcpServers": {
    "ioffice": {
      "command": "node",
      "args": ["/path/to/ioffice-mcp/dist/index.js"],
      "env": {
        "IOFFICE_HOST": "your-tenant.ioffice.com",
        "IOFFICE_TOKEN": "your-token-here"
      }
    }
  }
}

Or use a .env file in the project directory with IOFFICE_HOST and IOFFICE_TOKEN.

Authentication

Token auth (preferred) — set IOFFICE_TOKEN. Alternatively, set IOFFICE_USERNAME + IOFFICE_PASSWORD. If both are present, the token takes precedence.

Tools

Buildings

Tool Description
io_list_buildings List buildings with optional search, pagination, and sorting
io_get_building(id) Get a single building by ID
io_create_building(name, address1?, city?, ...) Create a new building
io_update_building(id, ...) Update a building — only provide fields to change
io_delete_building(id) Delete a building

Floors

Tool Description
io_list_floors(buildingId?) List floors, optionally filtered by building
io_get_floor(id) Get a single floor by ID
io_create_floor(name, buildingId, ...) Create a floor within a building
io_update_floor(id, ...) Update a floor
io_delete_floor(id) Delete a floor

Spaces

Tool Description
io_list_spaces(floorId?) List spaces/rooms, optionally filtered by floor
io_get_space(id) Get a single space by ID
io_create_space(name, floorId, capacity?, ...) Create a space on a floor
io_update_space(id, ...) Update a space
io_delete_space(id) Delete a space

Users

Tool Description
io_list_users(search?) List users with optional search
io_get_user(id) Get a single user by ID
io_create_user(firstName, lastName, email, ...) Create a new user
io_update_user(id, ...) Update a user
io_delete_user(id) Delete a user

Reservations

Tool Description
io_list_reservations(spaceId?, userId?, startDate?, endDate?) List reservations with optional filters
io_get_reservation(id) Get a single reservation by ID
io_create_reservation(title, spaceId, startDate, endDate, ...) Reserve a space
io_update_reservation(id, ...) Update a reservation
io_delete_reservation(id) Cancel/delete a reservation
io_checkin_reservation(id) Check in to a reservation, confirming room usage
io_checkout_reservation(id) Check out early, releasing the room

Visitors

Tool Description
io_list_visitors(buildingId?, startDate?, endDate?) List visitors with optional filters
io_get_visitor(id) Get a single visitor record by ID
io_create_visitor(firstName, lastName, hostId?, expectedArrival?, ...) Pre-register a visitor
io_update_visitor(id, ...) Update a visitor record
io_checkin_visitor(id) Check in a visitor upon arrival
io_checkout_visitor(id) Check out a visitor upon departure

Maintenance Requests

Tool Description
io_list_maintenance_requests(status?, spaceId?, buildingId?) List maintenance requests
io_get_maintenance_request(id) Get a single maintenance request
io_create_maintenance_request(title, spaceId?, buildingId?, ...) File a new maintenance request
io_update_maintenance_request(id, ...) Update a maintenance request
io_accept_maintenance_request(id) Accept a pending request (pending → accepted)
io_start_maintenance_request(id) Start work (accepted → in-progress)
io_complete_maintenance_request(id, resolution?) Mark as complete
io_archive_maintenance_request(id) Archive a completed request

Moves

Tool Description
io_list_moves(status?, buildingId?) List move requests
io_get_move(id) Get a single move request
io_create_move(name, fromSpaceId?, toSpaceId?, scheduledDate?, ...) Create a move request
io_update_move(id, ...) Update a move request
io_approve_move(id, notes?) Approve a move request
io_cancel_move(id, reason?) Cancel a move request

Mail

Tool Description
io_list_mail(status?, recipientId?, buildingId?) List mail items (packages and letters)
io_get_mail(id) Get a single mail item
io_create_mail(recipientId, buildingId, carrier?, trackingNumber?, ...) Log a received mail item
io_deliver_mail(id, deliveredDate?, signature?) Mark a mail item as delivered
io_return_mail(id, reason?) Mark a mail item as returned to sender

Workflows

Book a meeting room:

io_list_buildings → find building ID
io_list_floors(buildingId) → find floor ID
io_list_spaces(floorId) → pick a room
io_create_reservation(title, spaceId, startDate, endDate)

Pre-register a visitor:

io_list_users(search: "host name") → find hostId
io_create_visitor(firstName, lastName, hostId, buildingId, expectedArrival)
io_checkin_visitor(id) → when they arrive
io_checkout_visitor(id) → when they leave

File and resolve a maintenance request:

io_list_spaces(search: "room name") → find spaceId
io_create_maintenance_request(title, spaceId, buildingId)
io_accept_maintenance_request(id)
io_start_maintenance_request(id)
io_complete_maintenance_request(id, resolution: "Fixed the issue")

Log and deliver a package:

io_list_users(search: "recipient name") → find recipientId
io_create_mail(recipientId, buildingId, carrier: "FedEx", trackingNumber: "...")
io_deliver_mail(id) → when delivered to recipient

Schedule and approve a move:

io_list_spaces → find fromSpaceId and toSpaceId
io_create_move(name, fromSpaceId, toSpaceId, scheduledDate)
io_approve_move(id, notes: "Approved")

Notes

  • All dates use ISO 8601 format (e.g. 2026-03-21T09:00:00)
  • All list tools support search, limit (default 50, max 100), startAt, orderBy, and orderByType
  • io_list_floors(buildingId) and io_list_spaces(floorId) use nested API paths when an ID is provided
  • Building → Floor → Space is the physical location hierarchy

Acknowledgement of Terms

By using this MCP server, you acknowledge and agree to the following:

1. This server accesses your own iOffice / Eptura Workplace tenant. Auth happens via your own credentials, scoped to the tenant your employer has provisioned for you. It does not — and cannot — access anyone else's organization's data.

2. Eptura's Acceptable Use Policy governs your use of this server, just as it governs your direct use of iOffice. (iOffice rebranded to Eptura Workplace in 2023.) The clauses most relevant here:

Customers may not use any robot, spider, site search/retrieval application or other manual or automatic device to retrieve, index, "scrape," "data mine" or otherwise gather Service content.

And: customers must "identify and authenticate all Users," may not resell or sublicense, must "promptly deactivate access to terminated personnel."

You are agreeing to those terms — read by the maintainer 2026-05-23 — every time you invoke a tool in this server.

3. Eptura's contract is with your employer, not you. iOffice / Eptura Workplace is typically licensed by an organization, not by individual employees. Your use of this server is also subject to your employer's separate IT/security/acceptable-use policies, which may restrict automation in ways the Eptura AUP doesn't. Check with your employer's IT before using this server. Using it without authorization may violate your employment agreement even if Eptura itself doesn't notice.

4. Personal, single-employee use only. This project is not affiliated with, endorsed by, sponsored by, or in partnership with Eptura, Inc. It is a personal automation tool for an individual authenticated user to drive their own workplace bookings (reservations, visitors, work orders). Do not use it to bulk-extract floor plans, employee directories, or other workspace data, and do not build a competing workplace product on top of it.

5. You accept full responsibility for any consequences of using this server in connection with your iOffice account — rate limiting, session revocation, tenant suspension, your employer's IT calling you, or any other enforcement action. If Eptura or your employer objects to your use, stop using this server.

This section is the maintainer's good-faith summary of the terms — it is not legal advice and does not modify or supersede Eptura's actual AUP, Master Subscription Agreement, or your employer's policies.

Usage Guidance
Install only if you are authorized by your employer to automate iOffice/Eptura. Use the least-privileged account or token available, avoid username/password when a scoped token is possible, and require the agent to summarize the exact record and intended change before any create, update, delete, cancel, approve, check-in/out, archive, deliver, or return action.
Capability Assessment
Purpose & Capability
The documented tools match the stated purpose of managing iOffice/Eptura workplace data, including buildings, floors, spaces, users, reservations, visitors, maintenance, moves, and mail.
Instruction Scope
The skill lists many create, update, delete, approve, cancel, check-in/out, archive, and delivery actions, but does not instruct the agent to get explicit user confirmation before high-impact changes.
Install Mechanism
Setup uses npx or a source checkout and requires iOffice host and credentials; this is disclosed, but it depends on a separate MCP package not included in the skill artifact.
Credentials
Using an enterprise tenant token or username/password is proportionate to the purpose, but the authority can affect real workplace records, visitors, users, rooms, and operational workflows.
Persistence & Privilege
The skill itself is a Markdown instruction file with no executable code or persistence, but it configures an MCP server with tenant credentials that may retain ongoing access until removed or revoked.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ioffice-mcp
  3. After installation, invoke the skill by name or use /ioffice-mcp
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v2.1.3
- Expanded SKILL.md with detailed usage instructions, setup options, and authentication methods. - Comprehensive documentation of all available tools for managing buildings, floors, spaces, users, reservations, visitors, maintenance requests, moves, and mail. - Added typical workflow examples for common iOffice workplace management tasks. - Clarified environment variable setup and supported authentication options. - Provided important usage notes and terms of service acknowledgment.
Metadata
Slug ioffice-mcp
Version 2.1.3
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Tmp.MhR5lJGw3L?

Access iOffice workspace and facility data via MCP. Use when the user asks about iOffice buildings, floors, spaces, reservations, visitors, maintenance reque... It is an AI Agent Skill for Claude Code / OpenClaw, with 50 downloads so far.

How do I install Tmp.MhR5lJGw3L?

Run "/install ioffice-mcp" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Tmp.MhR5lJGw3L free?

Yes, Tmp.MhR5lJGw3L is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Tmp.MhR5lJGw3L support?

Tmp.MhR5lJGw3L is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Tmp.MhR5lJGw3L?

It is built and maintained by chrischall (@chrischall); the current version is v2.1.3.

💬 Comments