Skip to content

OwnerRez MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi

Manage OwnerRez properties, bookings, guests, quotes and inquiries.

Deletes · 6Changes · 1

25 tools: 6 can delete or cancel things, 1 change things and 18 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http ownerrez https://ownerrez.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn1 info
  • The server marks "ownerrez_request" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "ownerrez_request" says "request": a word for a change.

    What this check looks for
  • Infoget_me

    The description mentions "credentials".

    Matched text

    description: "...henticated OwnerRez user (verifies your credentials). OwnerRez API: GET /v2/users/me."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

25 tools

Deletes or cancels 6Claude Code: deny
  • create_bookingMUTATES OwnerRez data: creates a new booking (reservation).No findings

    Why it is in this group

    • The name "create_booking" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES OwnerRez data: creates a new booking (reservation). OwnerRez API: POST /v2/bookings (JSON). A booking ties a guest to a property for a date range; the exact charge/quote shape is account-specific, so pass extra documented fields via `fields`. Returns the created booking.

    Annotations the server declares

    • title: Create a booking
    • destructiveHint: true
  • create_guestMUTATES OwnerRez data: creates a new guest (contact).No findings

    Why it is in this group

    • The name "create_guest" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES OwnerRez data: creates a new guest (contact). OwnerRez API: POST /v2/guests (JSON). Emails/phones/addresses are arrays of objects — pass them via the `fields` passthrough (e.g. email_addresses:[{address:"a@b.com"}]). Returns the created guest.

    Annotations the server declares

    • title: Create a guest
    • destructiveHint: true
  • create_messageMUTATES OwnerRez data: posts a message into a guest-communication thread.No findings

    Why it is in this group

    • The name "create_message" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES OwnerRez data: posts a message into a guest-communication thread. OwnerRez API: POST /v2/messages (JSON). The exact thread/booking linkage is account-specific — pass extra documented fields (e.g. thread_id, booking_id) via `fields`. Returns the created message.

    Annotations the server declares

    • title: Create a message
    • destructiveHint: true
  • create_quoteMUTATES OwnerRez data: creates a quote for a property + date range (the pre-booking pricing document).No findings

    Why it is in this group

    • The name "create_quote" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES OwnerRez data: creates a quote for a property + date range (the pre-booking pricing document). OwnerRez API: POST /v2/quotes (JSON). The full quote/charge shape is account-specific — pass extra documented fields via `fields`. Returns the created quote.

    Annotations the server declares

    • title: Create a quote
    • destructiveHint: true
  • update_bookingMUTATES OwnerRez data: updates an existing booking.No findings

    Why it is in this group

    • The name "update_booking" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES OwnerRez data: updates an existing booking. OwnerRez API: PATCH /v2/bookings/{id} (JSON — only included fields change). Use the `fields` passthrough for any documented field (dates, guest counts, notes, status).

    Annotations the server declares

    • title: Update a booking
    • destructiveHint: true
  • update_guestMUTATES OwnerRez data: updates an existing guest.No findings

    Why it is in this group

    • The name "update_guest" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    MUTATES OwnerRez data: updates an existing guest. OwnerRez API: PATCH /v2/guests/{id} (JSON — only included fields change). Use the `fields` passthrough for arrays (email_addresses/phones/addresses) and any other documented field.

    Annotations the server declares

    • title: Update a guest
    • destructiveHint: true
Changes things 1Claude Code: ask
  • ownerrez_requestPower-user escape hatch: GET any OwnerRez API path not wrapped by a dedicated tool.1 finding

    Why it is in this group

    • The name "ownerrez_request" says "request": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "ownerrez_request" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "ownerrez_request" says "request": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Power-user escape hatch: GET any OwnerRez API path not wrapped by a dedicated tool. READ-ONLY — only GET is allowed. Pass the FULL API path after the host, starting with a slash, INCLUDING any query string, e.g. "/v2/propertysearch?query=beach" or "/v2/bookings/123". Returns the parsed JSON.

    Annotations the server declares

    • title: Raw read request
    • readOnlyHint: true
Only reads 18Claude Code: allow
  • get_bookingFetch a single booking by id.No findings

    Why it is in this group

    • The name "get_booking" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single booking by id. OwnerRez API: GET /v2/bookings/{id}. Opt into embedded charges/guest/tags.

    Annotations the server declares

    • title: Get a booking
    • readOnlyHint: true
  • get_guestFetch a single guest (contact) by id.No findings

    Why it is in this group

    • The name "get_guest" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single guest (contact) by id. OwnerRez API: GET /v2/guests/{id}.

    Annotations the server declares

    • title: Get a guest
    • readOnlyHint: true
  • get_listingFetch a single channel listing by id.No findings

    Why it is in this group

    • The name "get_listing" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single channel listing by id. OwnerRez API: GET /v2/listings/{id}.

    Annotations the server declares

    • title: Get a listing
    • readOnlyHint: true
  • get_meReturn the authenticated OwnerRez user (verifies your credentials).1 finding

    Why it is in this group

    • The name "get_me" says "get": a word for reading.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...henticated OwnerRez user (verifies your credentials). OwnerRez API: GET /v2/users/me."

      What this check looks for
    Description, as the server wrote it
    Return the authenticated OwnerRez user (verifies your credentials). OwnerRez API: GET /v2/users/me.

    Annotations the server declares

    • title: Get current user
    • readOnlyHint: true
  • get_paymentFetch a single payment by id.No findings

    Why it is in this group

    • The name "get_payment" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single payment by id. OwnerRez API: GET /v2/payments/{id}.

    Annotations the server declares

    • title: Get a payment
    • readOnlyHint: true
  • get_propertyFetch a single property by id (includes time_zone).No findings

    Why it is in this group

    • The name "get_property" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single property by id (includes time_zone). OwnerRez API: GET /v2/properties/{id}.

    Annotations the server declares

    • title: Get a property
    • readOnlyHint: true
  • get_quoteFetch a single quote by id.No findings

    Why it is in this group

    • The name "get_quote" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a single quote by id. OwnerRez API: GET /v2/quotes/{id}.

    Annotations the server declares

    • title: Get a quote
    • readOnlyHint: true
  • list_bookingsList bookings (reservations).No findings

    Why it is in this group

    • The name "list_bookings" says "list": a word for reading.
    Description, as the server wrote it
    List bookings (reservations). OwnerRez API: GET /v2/bookings. Filter by property, date range, changed-since, and status; opt into embedded charges/guest/tags. Returns { items, count, limit, offset, next_page_url }.

    Annotations the server declares

    • title: List bookings
    • readOnlyHint: true
  • list_field_definitionsList custom-field definitions available in the account (the schema for custom fields on properties/bookings/guests).No findings

    Why it is in this group

    • The name "list_field_definitions" says "list": a word for reading.
    Description, as the server wrote it
    List custom-field definitions available in the account (the schema for custom fields on properties/bookings/guests). OwnerRez API: GET /v2/fielddefinitions.

    Annotations the server declares

    • title: List custom-field definitions
    • readOnlyHint: true
  • list_guestsList guests (contacts).No findings

    Why it is in this group

    • The name "list_guests" says "list": a word for reading.
    Description, as the server wrote it
    List guests (contacts). OwnerRez API: GET /v2/guests. NOTE: OwnerRez REQUIRES either `q` (search) or `created_since_utc` on this endpoint. Returns { items, count, limit, offset, next_page_url }.

    Annotations the server declares

    • title: List guests
    • readOnlyHint: true
  • list_inquiriesList guest inquiries (pre-booking leads).No findings

    Why it is in this group

    • The name "list_inquiries" says "list": a word for reading.
    Description, as the server wrote it
    List guest inquiries (pre-booking leads). OwnerRez API: GET /v2/inquiries. Use `params` for documented filters.

    Annotations the server declares

    • title: List inquiries
    • readOnlyHint: true
  • list_listing_sitesList the listing sites (channels, e.g.No findings

    Why it is in this group

    • The name "list_listing_sites" says "list": a word for reading.
    Description, as the server wrote it
    List the listing sites (channels, e.g. Airbnb, Vrbo) known to OwnerRez. OwnerRez API: GET /v2/listingsites.

    Annotations the server declares

    • title: List listing sites
    • readOnlyHint: true
  • list_listingsList channel listings (a property's presence on a listing site such as Airbnb/Vrbo).No findings

    Why it is in this group

    • The name "list_listings" says "list": a word for reading.
    Description, as the server wrote it
    List channel listings (a property's presence on a listing site such as Airbnb/Vrbo). OwnerRez API: GET /v2/listings. Returns { items, count, limit, offset, next_page_url }.

    Annotations the server declares

    • title: List listings
    • readOnlyHint: true
  • list_messagesList messages from guest-communication threads.No findings

    Why it is in this group

    • The name "list_messages" says "list": a word for reading.
    Description, as the server wrote it
    List messages from guest-communication threads. OwnerRez API: GET /v2/messages. Use `params` for documented filters (e.g. booking_id).

    Annotations the server declares

    • title: List messages
    • readOnlyHint: true
  • list_ownersList property owners.No findings

    Why it is in this group

    • The name "list_owners" says "list": a word for reading.
    Description, as the server wrote it
    List property owners. OwnerRez API: GET /v2/owners. Returns { items, count, limit, offset, next_page_url }.

    Annotations the server declares

    • title: List owners
    • readOnlyHint: true
  • list_paymentsList payments.No findings

    Why it is in this group

    • The name "list_payments" says "list": a word for reading.
    Description, as the server wrote it
    List payments. OwnerRez API: GET /v2/payments. Use `params` for documented filters (e.g. booking_id, since_utc).

    Annotations the server declares

    • title: List payments
    • readOnlyHint: true
  • list_propertiesList rental properties.No findings

    Why it is in this group

    • The name "list_properties" says "list": a word for reading.
    Description, as the server wrote it
    List rental properties. OwnerRez API: GET /v2/properties. Returns the pageable envelope { items, count, limit, offset, next_page_url }.

    Annotations the server declares

    • title: List properties
    • readOnlyHint: true
  • list_quotesList quotes.No findings

    Why it is in this group

    • The name "list_quotes" says "list": a word for reading.
    Description, as the server wrote it
    List quotes. OwnerRez API: GET /v2/quotes. Returns { items, count, limit, offset, next_page_url }. Use the `params` passthrough for documented filters (e.g. property_id, guest_id).

    Annotations the server declares

    • title: List quotes
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.16.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http ownerrez https://ownerrez.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__ownerrez__get_me",
      "mcp__ownerrez__list_properties",
      "mcp__ownerrez__get_property",
      "mcp__ownerrez__list_bookings",
      "mcp__ownerrez__get_booking",
      "mcp__ownerrez__list_guests",
      "mcp__ownerrez__get_guest",
      "mcp__ownerrez__list_quotes",
      "mcp__ownerrez__get_quote",
      "mcp__ownerrez__list_listings",
      "mcp__ownerrez__get_listing",
      "mcp__ownerrez__list_listing_sites",
      "mcp__ownerrez__list_owners",
      "mcp__ownerrez__list_inquiries",
      "mcp__ownerrez__list_messages",
      "mcp__ownerrez__list_payments",
      "mcp__ownerrez__get_payment",
      "mcp__ownerrez__list_field_definitions"
    ],
    "ask": [
      "mcp__ownerrez__ownerrez_request"
    ],
    "deny": [
      "mcp__ownerrez__create_guest",
      "mcp__ownerrez__update_guest",
      "mcp__ownerrez__create_booking",
      "mcp__ownerrez__update_booking",
      "mcp__ownerrez__create_quote",
      "mcp__ownerrez__create_message"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as ownerrez. Review it before you use it.