# SiteMinder MCP tools

> Every SiteMinder MCP tool on the Cotlet server: tool names, input schemas, a tools/call example and an example result for each tool.

Source: https://cotlet.dev/docs/mcp/siteminder

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

12 tools for SiteMinder on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own SiteMinder Platform account (Admin or a General user with access to the areas you use)
- Integration page: https://cotlet.dev/integrations/siteminder-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `siteminder_list_room_rates` | read | Room types and their room rates, with derived rates and the channels each one is mapped to. |
| `siteminder_list_channels` | read | Connected booking channels with status and the data each channel rate supports. |
| `siteminder_get_inventory` | read | The inventory grid for a date range: rates, availability and restrictions per room rate and channel. |
| `siteminder_list_reservations` | read | Reservations with channel, status, dates, room and total. Searches the last 548 days. |
| `siteminder_get_reservation` | read | One reservation: stay, rooms, rate plan, channel, status history and payment summary. No guest contact or card numbers. |
| `siteminder_get_booking_performance` | read | Room and total revenue, reservations, room nights, ADR, ALOS, lead time and cancellations, split by channel, market, room or rate. |
| `siteminder_get_pace_report` | read | Reservations, revenue, room nights and ADR for a period, compared with the same period last year. |
| `siteminder_get_rate_parity` | read | Your rates on Agoda, Booking.com, Expedia, HRS and Direct Booking by stay date. Needs SiteMinder Plus. |
| `siteminder_update_rates` | write | Set the rate for room rates or channel rates over a date range. Goes live on mapped channels. |
| `siteminder_update_availability` | write | Set the number of rooms to sell per room type over a date range, for all channels. |
| `siteminder_update_restrictions` | write | Set stop sell, minimum or maximum length of stay, closed to arrival or closed to departure. |
| `siteminder_close_dates` | write | Stop sell the room rates you pick, or a whole channel, for a date range. |

## List room rates

MCP tool: `siteminder_list_room_rates`

Access: read.

Returns every room type with its room rates. A derived rate shows the base rate it follows; SiteMinder does not let you set derived rates by hand. Use the IDs from here in get_inventory and the update tools.

### Parameters

No parameters.

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_list_room_rates",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "room_types": [
      {
        "room_type_id": "rt_1021",
        "name": "Standard Double",
        "room_rates": [
          {
            "room_rate_id": "rr_48210",
            "name": "Standard Double Flexible",
            "type": "base",
            "channels": [
              "Booking.com",
              "Expedia",
              "Direct Booking"
            ]
          }
        ]
      },
      {
        "room_type_id": "rt_1022",
        "name": "Deluxe King",
        "room_rates": [
          {
            "room_rate_id": "rr_48213",
            "name": "Deluxe King Flexible",
            "type": "base",
            "channels": [
              "Booking.com",
              "Expedia",
              "Agoda",
              "Direct Booking"
            ]
          },
          {
            "room_rate_id": "rr_48214",
            "name": "Deluxe King Non-refundable",
            "type": "derived",
            "derived_from": "rr_48213",
            "channels": [
              "Booking.com",
              "Expedia"
            ]
          }
        ]
      }
    ]
  },
  "isError": false
}
```

## List channels

MCP tool: `siteminder_list_channels`

Access: read.

Returns the channels connected to the property, including Direct Booking, with their status. For each channel rate it lists the data SiteMinder can send: rates, availability and the restrictions. Not every channel rate supports every type, so check here before a restriction change.

### Parameters

No parameters.

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_list_channels",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "channels": [
      {
        "channel": "Booking.com",
        "status": "enabled",
        "supports": [
          "rates",
          "availability",
          "stop_sell",
          "min_los",
          "max_los",
          "cta",
          "ctd"
        ]
      },
      {
        "channel": "Agoda",
        "status": "enabled",
        "supports": [
          "rates",
          "availability",
          "stop_sell",
          "min_los"
        ]
      },
      {
        "channel": "Direct Booking",
        "status": "enabled",
        "supports": [
          "rates",
          "availability",
          "stop_sell",
          "min_los",
          "max_los",
          "cta",
          "ctd"
        ]
      }
    ]
  },
  "isError": false
}
```

## Get inventory

MCP tool: `siteminder_get_inventory`

Access: read.

Returns what the inventory grid shows, one row per date: rate, availability and restrictions for each room rate. Pass channel to see the values sent to one channel instead. SiteMinder shows only today and future dates here. A dash in the grid, returned as null, means the channel rate does not support that data.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `from` | date | yes | First date of the range. Today or later. |
| `to` | date | yes | Last date of the range. |
| `room_type_ids` | string[] | no | Only these room types. Default: all. |
| `channel` | string | no | Show channel rates for one channel. Default: room rates. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_get_inventory",
    "arguments": {
      "from": "2026-10-01",
      "to": "2026-10-01"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "room_rate_id": "rr_48213",
    "channel": null,
    "dates": [
      {
        "date": "2026-12-04",
        "rate": "159.00",
        "availability": 4,
        "stop_sell": false,
        "min_los": 1,
        "cta": false,
        "ctd": false
      },
      {
        "date": "2026-12-05",
        "rate": "159.00",
        "availability": 2,
        "stop_sell": false,
        "min_los": 2,
        "cta": false,
        "ctd": false
      }
    ]
  },
  "isError": false
}
```

## List reservations

MCP tool: `siteminder_list_reservations`

Access: read.

Returns reservations that match your filters, with booking reference, channel, status, stay dates, room and total. SiteMinder searches only reservations created or checked out within the last 548 days. Guest email, phone and card details are not returned. Pass booking_reference to get_reservation for the full record.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `date_type` | enum | no | booked_on, check_in, check_out or cancelled_on. Default: booked_on. |
| `from` | date | no | Start of the date range. |
| `to` | date | no | End of the date range. |
| `status` | enum | no | booked, modified or cancelled. Default: all. |
| `channel` | string | no | Only reservations from this channel. |
| `guest_last_name` | string | no | Guest last name. |
| `pms_delivery_status` | enum | no | pending, delivered or failed. Default: all. |
| `limit` | integer | no | Page size. Default: 50. |
| `cursor` | string | no | Next page cursor from the previous call. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_list_reservations",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "reservations": [
      {
        "booking_reference": "4830217655",
        "channel": "Booking.com",
        "status": "booked",
        "check_in": "2026-10-12",
        "check_out": "2026-10-14",
        "nights": 2,
        "room_type": "Standard Double",
        "guests": 2,
        "total": {
          "amount": "318.00",
          "currency": "EUR"
        },
        "guest_last_name": "Rossi",
        "pms_delivery": "delivered"
      },
      {
        "booking_reference": "BBN-BB0000412907",
        "channel": "Direct Booking",
        "status": "booked",
        "check_in": "2026-10-12",
        "check_out": "2026-10-13",
        "nights": 1,
        "room_type": "Deluxe King",
        "guests": 1,
        "total": {
          "amount": "172.00",
          "currency": "EUR"
        },
        "guest_last_name": "Lindqvist",
        "pms_delivery": "pending"
      }
    ],
    "next_cursor": null
  },
  "isError": false
}
```

## Get reservation

MCP tool: `siteminder_get_reservation`

Access: read.

Returns one reservation by booking reference: status and the time it last changed, stay dates and length, estimated arrival time, room and number of guests, rate plan, total rate and the channel, with the secondary source such as Hotels.com via Expedia where SiteMinder shows one. SiteMinder shows guest email, phone and card details only on a trusted device, so they are not returned.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `booking_reference` | string | yes | Booking reference from list_reservations. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_get_reservation",
    "arguments": {
      "booking_reference": "booking reference"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "booking_reference": "4830217655",
    "channel": "Booking.com",
    "status": "booked",
    "status_changed_at": "2026-10-02T14:20:00Z",
    "check_in": "2026-10-12",
    "check_out": "2026-10-14",
    "nights": 2,
    "estimated_arrival": "15:00",
    "rooms": [
      {
        "room_type": "Standard Double",
        "room_rate": "Standard Double Flexible",
        "guests": 2
      }
    ],
    "total": {
      "amount": "318.00",
      "currency": "EUR"
    },
    "pms_delivery": "delivered"
  },
  "isError": false
}
```

## Get booking performance

MCP tool: `siteminder_get_booking_performance`

Access: read.

Returns the Insights > Booking performance numbers for a period: room revenue, total revenue, reservations after cancellations, room nights, average lead time, ADR, average length of stay and cancelled reservations, plus the breakdown you ask for. Revenue in other currencies is converted to your default currency at xe.com rates. With date_basis stay_date, total revenue is not returned and room nights count only the chosen period.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `from` | date | yes | First date of the range. Today or later. |
| `to` | date | yes | Last date of the range. |
| `date_basis` | enum | no | booked_on or stay_date. Default: booked_on. |
| `breakdown` | enum | no | channel_mix, source_market, room_types or rate_plans. Default: channel_mix. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_get_booking_performance",
    "arguments": {
      "from": "2026-10-05",
      "to": "2026-10-11",
      "date_basis": "booked_on",
      "breakdown": "channel_mix"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "from": "2026-09-01",
    "to": "2026-09-30",
    "date_basis": "booked_on",
    "currency": "EUR",
    "room_revenue": "42500.00",
    "total_revenue": "45000.00",
    "reservations": 212,
    "cancelled_reservations": 18,
    "room_nights": 500,
    "avg_lead_time_days": 21.4,
    "adr": "90.00",
    "alos": 2.36,
    "channel_mix": [
      {
        "channel": "Booking.com",
        "reservations": 95,
        "room_nights": 225,
        "room_revenue": "19500.00"
      },
      {
        "channel": "Expedia",
        "reservations": 55,
        "room_nights": 135,
        "room_revenue": "11500.00"
      },
      {
        "channel": "Direct Booking",
        "reservations": 45,
        "room_nights": 105,
        "room_revenue": "9000.00"
      },
      {
        "channel": "Agoda",
        "reservations": 17,
        "room_nights": 35,
        "room_revenue": "2500.00"
      }
    ]
  },
  "isError": false
}
```

## Get pace report

MCP tool: `siteminder_get_pace_report`

Access: read.

Returns the Insights > Pace numbers: reservations, reservation revenue (nightly room rates, without extras and card surcharges), room nights and ADR for the period and for last year, with the change in percent. The default period is the next 30 days; SiteMinder shows one year of forward-looking pace data. Source markets are included.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `from` | date | no | Start of the period. Default: today. |
| `to` | date | no | End of the period. Default: 30 days from today. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_get_pace_report",
    "arguments": {}
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "from": "2026-10-12",
    "to": "2026-11-10",
    "currency": "EUR",
    "this_year": {
      "reservations": 148,
      "revenue": "28400.00",
      "room_nights": 341,
      "adr": "83.28"
    },
    "last_year": {
      "reservations": 131,
      "revenue": "25100.00",
      "room_nights": 302,
      "adr": "83.11"
    },
    "change_percent": {
      "reservations": 13,
      "revenue": 13.1,
      "room_nights": 12.9,
      "adr": 0.2
    },
    "source_markets": [
      {
        "country": "DE",
        "room_nights": 96
      },
      {
        "country": "GB",
        "room_nights": 74
      }
    ]
  },
  "isError": false
}
```

## Get rate parity

MCP tool: `siteminder_get_rate_parity`

Access: read.

Returns the Insights > Rate parity grid: your rate on each of the five channels for each stay date, with a flag for channels below your Direct Booking rate. A cell can hold MLOS (a minimum stay applies), SOLD (no availability) or N/A instead of a rate. Dates reach 30 days ahead, or 90 with Dynamic Revenue Plus. A refresh times out after about two minutes; call again for dates that did not load. Without SiteMinder Plus the call fails with a plan error.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `from` | date | yes | First date of the range. Today or later. |
| `to` | date | yes | Last date of the range. |
| `nights` | integer | no | 1 to 7. Default: 1. |
| `guests` | integer | no | 1 or 2. Default: 2. |
| `include_taxes` | boolean | no | Fully inclusive rates instead of base rates. Default: false. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_get_rate_parity",
    "arguments": {
      "from": "2026-10-01",
      "to": "2026-10-01"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "nights": 1,
    "guests": 2,
    "include_taxes": false,
    "currency": "EUR",
    "dates": [
      {
        "date": "2026-10-17",
        "rates": {
          "Agoda": "142.00",
          "Booking.com": "142.00",
          "Expedia": "138.00",
          "HRS": "142.00",
          "Direct Booking": "142.00"
        },
        "below_direct": [
          "Expedia"
        ]
      },
      {
        "date": "2026-10-18",
        "rates": {
          "Agoda": "149.00",
          "Booking.com": "149.00",
          "Expedia": "MLOS",
          "HRS": "149.00",
          "Direct Booking": "149.00"
        },
        "below_direct": []
      }
    ]
  },
  "isError": false
}
```

## Update rates

MCP tool: `siteminder_update_rates`

Access: write. Confirm: waits for the user's OK before it runs.

Sets one nightly rate for the room rates you list, on all mapped channels or only the channels you name. Derived rates cannot be set; they follow their base rate by their own rules. Channels receive updates only inside their maximum update period. If a two-way PMS, RMS or CRS sends rates to SiteMinder, it overwrites this change. Large updates can take a few minutes. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `room_rate_ids` | string[] | yes | Room rate IDs from list_room_rates. |
| `from` | date | yes | First date of the range. Today or later. |
| `to` | date | yes | Last date of the range. |
| `rate` | string | yes | New nightly rate, as a decimal in the property currency. |
| `channels` | string[] | no | Only these channels. Default: the room rate for all mapped channels. |
| `days_of_week` | string[] | no | Only these weekdays (mon, tue, wed, thu, fri, sat, sun). Default: all days. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_update_rates",
    "arguments": {
      "room_rate_ids": [
        "rr_48213"
      ],
      "from": "2026-12-05",
      "to": "2026-12-07",
      "rate": "236.00",
      "days_of_week": [
        "fri"
      ]
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "status": "updated",
    "room_rates": 1,
    "dates": 8,
    "channels": [
      "Booking.com",
      "Expedia",
      "Agoda",
      "Direct Booking"
    ],
    "derived_rates_updated": 1,
    "skipped": []
  },
  "isError": false
}
```

## Update availability

MCP tool: `siteminder_update_availability`

Access: write. Confirm: waits for the user's OK before it runs.

Sets rooms available per night for a room type. SiteMinder manages availability at room type level, so it applies to every channel; to limit one channel, use close_dates or update_restrictions. Availability 0 closes the whole room type and all its rates. If a two-way PMS, RMS or CRS sends availability to SiteMinder, it overwrites this change. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `room_type_ids` | string[] | yes | Room type IDs from list_room_rates. |
| `from` | date | yes | First date of the range. Today or later. |
| `to` | date | yes | Last date of the range. |
| `rooms` | integer | yes | Rooms available per night. |
| `days_of_week` | string[] | no | Only these weekdays (mon, tue, wed, thu, fri, sat, sun). Default: all days. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_update_availability",
    "arguments": {
      "room_type_ids": [
        "room type ids"
      ],
      "from": "2026-10-01",
      "to": "2026-10-01",
      "rooms": 1
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "status": "updated",
    "room_types": 1,
    "dates": 14,
    "rooms": 6,
    "channels": "all"
  },
  "isError": false
}
```

## Update restrictions

MCP tool: `siteminder_update_restrictions`

Access: write. Confirm: waits for the user's OK before it runs.

Sets the restrictions you pass for the room rates and dates you give, on all mapped channels or only the channels you name. Set stop_sell, cta or ctd to false to remove them. Not every channel rate supports every restriction; unsupported ones are listed under skipped. A connected two-way PMS, RMS or CRS overwrites restrictions set in SiteMinder. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `room_rate_ids` | string[] | yes | Room rate IDs from list_room_rates. |
| `from` | date | yes | First date of the range. Today or later. |
| `to` | date | yes | Last date of the range. |
| `restrictions` | object | yes | Any of stop_sell, cta, ctd (boolean), min_los, max_los (integer). |
| `channels` | string[] | no | Only these channels. Default: all mapped channels. |
| `days_of_week` | string[] | no | Only these weekdays (mon, tue, wed, thu, fri, sat, sun). Default: all days. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_update_restrictions",
    "arguments": {
      "room_rate_ids": [
        "rr_48213",
        "rr_48214"
      ],
      "from": "2026-12-24",
      "to": "2026-12-26",
      "restrictions": {
        "cta": true,
        "min_los": 3
      }
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "status": "updated",
    "room_rates": 2,
    "dates": 3,
    "channels": [
      "Booking.com",
      "Expedia",
      "Direct Booking"
    ],
    "skipped": [
      {
        "channel": "Agoda",
        "reason": "CTA not supported by this channel rate"
      }
    ]
  },
  "isError": false
}
```

## Close dates

MCP tool: `siteminder_close_dates`

Access: write. Confirm: waits for the user's OK before it runs.

Applies a stop sell for the dates you give: to every room rate, to the room rates you pick (all their channel rates close), or to one channel. Other rates and channels stay open. To reopen, call update_restrictions with stop_sell set to false. A connected two-way PMS, RMS or CRS overwrites stop sells set in SiteMinder. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `from` | date | yes | First date of the range. Today or later. |
| `to` | date | yes | Last date of the range. |
| `room_rate_ids` | string[] | no | Only these room rates. Default: all. |
| `channels` | string[] | no | Close only these channels. Default: all mapped channels. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "siteminder_close_dates",
    "arguments": {
      "from": "2026-10-01",
      "to": "2026-10-01"
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "status": "closed",
    "room_rates": 2,
    "dates": 8,
    "channels": [
      "Booking.com",
      "Expedia",
      "Direct Booking"
    ]
  },
  "isError": false
}
```
