Operto MCP by usefulapi

Read properties, reservations, guest access codes, smart locks and thermostats in Operto.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
83%
Naming quality
77%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'operto_list_property_thermostats' name length outside 3-30 rangein operto_list_property_thermostats

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,228Tokens (tool definitions)
~945 BTypical response size
Moderate attention impact (0.96% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "operto": {
      "url": "https://operto.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://operto.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢operto_list_properties

List the properties (units) in your Operto account with their Operto id, partner_id, name and subscription state. Good first call: the ids feed the other tools. Operto API: GET /v2/partners/properties.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢operto_get_property(property_id, keyid)

Get one property by id, including its details and current room status (for example clean-available, guest-checking-in, cleaning-started). Operto API: GET /v2/partners/properties/{property_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "description": "The Operto property id (from operto_list_properties), or the partner_id with keyid=partner."
    },
    "keyid": {
      "description": "Set to \"partner\" when the id you pass is your own partner id (partner_id / partner_reservation_id) instead of the Operto id.",
      "type": "string",
      "enum": [
        "partner"
      ]
    }
  },
  "required": [
    "property_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢operto_list_reservations(property_id, keyid)

List the reservations of one property: status, check-in and check-out time, guest name, phone, email and door codes. Contains personal guest data. Operto API: GET /v2/partners/properties/{property_id}/reservations.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "description": "The Operto property id, or the partner_id with keyid=partner."
    },
    "keyid": {
      "description": "Set to \"partner\" when the id you pass is your own partner id (partner_id / partner_reservation_id) instead of the Operto id.",
      "type": "string",
      "enum": [
        "partner"
      ]
    }
  },
  "required": [
    "property_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢operto_get_reservation(reservation_id, keyid)

Get one reservation by id: status, dates, guest contact data and the guest access and checkout codes. Contains personal guest data. Operto API: GET /v2/partners/reservations/{reservation_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "reservation_id": {
      "type": "string",
      "description": "The Operto reservation id, or the partner_reservation_id with keyid=partner."
    },
    "keyid": {
      "description": "Set to \"partner\" when the id you pass is your own partner id (partner_id / partner_reservation_id) instead of the Operto id.",
      "type": "string",
      "enum": [
        "partner"
      ]
    }
  },
  "required": [
    "reservation_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢operto_list_locks(property_id, keyid)

List the smart locks of one property with name, battery level, locked state and device_id. Read only: this tool does not open or close a lock. Operto API: GET /v2/partners/properties/{property_id}/locks.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "description": "The Operto property id, or the partner_id with keyid=partner."
    },
    "keyid": {
      "description": "Set to \"partner\" when the id you pass is your own partner id (partner_id / partner_reservation_id) instead of the Operto id.",
      "type": "string",
      "enum": [
        "partner"
      ]
    }
  },
  "required": [
    "property_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢operto_list_thermostats

List every smart thermostat in your organization with its property, type (for example EcoBee, Tado) and online status. Operto API: GET /v2/partners/thermostats.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢operto_list_property_thermostats(property_id, keyid)

List the smart thermostats of one property with type and online status. Operto API: GET /v2/partners/properties/{property_id}/thermostats.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "description": "The Operto property id, or the partner_id with keyid=partner."
    },
    "keyid": {
      "description": "Set to \"partner\" when the id you pass is your own partner id (partner_id / partner_reservation_id) instead of the Operto id.",
      "type": "string",
      "enum": [
        "partner"
      ]
    }
  },
  "required": [
    "property_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢operto_get_thermostat(thermostat_id)

Get one thermostat by id: online status, current temperature in Fahrenheit and Celsius, and any active hold. Operto API: GET /v2/partners/thermostats/{thermostat_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "thermostat_id": {
      "type": "string",
      "description": "The thermostat id (from operto_list_thermostats)."
    }
  },
  "required": [
    "thermostat_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools