# Hipcamp MCP tools

> Every Hipcamp 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/hipcamp

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)

15 tools for Hipcamp on the Cotlet MCP server. Your agent picks them from tools/list.

- MCP server: `https://cotlet.dev/mcp/v1`
- Connects with: Your own Hipcamp host account
- Integration page: https://cotlet.dev/integrations/hipcamp-api-mcp-server

## Endpoints

| Endpoint | Access | Description |
|---|---|---|
| `hipcamp_list_listings` | read | Your listings with their sites, status and base nightly price. |
| `hipcamp_list_bookings` | read | Confirmed bookings in a date range with camper, site, dates, guests and total. |
| `hipcamp_list_booking_requests` | read | Pending booking requests waiting for your answer, with dates, site and time left to respond. |
| `hipcamp_get_booking` | read | One booking or request: camper, group size, message and price. |
| `hipcamp_get_calendar` | read | Availability and nightly price per site and day, including blocked dates. |
| `hipcamp_list_messages` | read | Inbox conversations with campers, with the last message and its state. |
| `hipcamp_list_reviews` | read | Camper reviews of your listings with rating, text, date and your response. |
| `hipcamp_list_payouts` | read | Payouts with amount, status, date and the bookings they cover. |
| `hipcamp_block_dates` | write | Make a site or a whole listing unavailable for a date range. |
| `hipcamp_unblock_dates` | write | Open blocked dates again for booking. |
| `hipcamp_update_pricing` | write | Set a special nightly price for chosen nights. |
| `hipcamp_accept_booking_request` | write | Accept a pending booking request. The camper is notified and charged. |
| `hipcamp_decline_booking_request` | write | Decline a pending booking request. The camper is notified and not charged. |
| `hipcamp_send_message` | write | Send a message to a camper in an existing conversation. |
| `hipcamp_respond_to_review` | write | Respond to a camper review, publicly or as a private message. |

## List listings

MCP tool: `hipcamp_list_listings`

Access: read.

Returns every listing in your host account with its sites. Use listing_id and site_id from each item in the other endpoints. Base price is the price on the site, before any special price you set on single nights.

### Parameters

No parameters.

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listings": [
      {
        "listing_id": "lst_48211",
        "name": "Willow Creek Farm",
        "status": "live",
        "sites": [
          {
            "site_id": "site_meadow",
            "name": "Meadow",
            "base_price": 45,
            "currency": "USD"
          },
          {
            "site_id": "site_creek",
            "name": "Creekside",
            "base_price": 52,
            "currency": "USD"
          }
        ]
      }
    ]
  },
  "isError": false
}
```

## List bookings

MCP tool: `hipcamp_list_bookings`

Access: read.

Lists confirmed bookings whose arrival falls in the range, soonest arrival first. Booking requests still waiting for your answer are not included; list_booking_requests returns those. Total is what the camper paid for the stay.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `from` | date | no | First arrival date. Default: today. |
| `to` | date | no | Last arrival date. Default: 30 days from today. |
| `listing_id` | string | no | Only this listing. |
| `status` | enum | no | upcoming, current, past or cancelled. Default: upcoming. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "bookings": [
      {
        "booking_id": "bk_90105",
        "listing_id": "lst_48211",
        "site": "Meadow",
        "camper": "Maya R.",
        "arrival": "2026-10-16",
        "departure": "2026-10-18",
        "guests": 3,
        "total": 90,
        "currency": "USD",
        "status": "upcoming"
      }
    ]
  },
  "isError": false
}
```

## List booking requests

MCP tool: `hipcamp_list_booking_requests`

Access: read.

Lists requests to book that you have not accepted or declined, soonest expiry first. A request expires 24 hours after it arrives if you do not respond, and expires_at shows when. Pass booking_id to get_booking, accept_booking_request or decline_booking_request.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | no | Only this listing. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "requests": [
      {
        "booking_id": "bk_90217",
        "listing_id": "lst_48211",
        "site": "Meadow",
        "camper": "Jon P.",
        "arrival": "2026-10-23",
        "departure": "2026-10-25",
        "guests": 2,
        "expires_at": "2026-10-12T09:14:00Z"
      }
    ]
  },
  "isError": false
}
```

## Get booking

MCP tool: `hipcamp_get_booking`

Access: read.

Returns one booking or booking request with the camper's first name, number of guests, the message they sent with the request and the price for the stay. Use it before accepting so your agent reads the camper's note.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `booking_id` | string | yes | Booking ID from list_bookings or list_booking_requests. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "booking_id": "bk_90217",
    "status": "pending_request",
    "site": "Meadow",
    "camper": "Jon P.",
    "arrival": "2026-10-23",
    "departure": "2026-10-25",
    "guests": 2,
    "camper_message": "Two adults and a dog, arriving after 5 pm.",
    "nights": 2,
    "nightly_price": 45,
    "total": 90,
    "currency": "USD"
  },
  "isError": false
}
```

## Get calendar

MCP tool: `hipcamp_get_calendar`

Access: read.

Returns one row per site and night with its price and state: available, booked or blocked. Special prices are shown as set; days without one show the base price. Use it before update_pricing to see what a change would touch.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID from list_listings. |
| `site_id` | string | no | One site of the listing. Default: all sites. |
| `from` | date | yes | First day. |
| `to` | date | yes | Last day. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "site_id": "site_meadow",
    "days": [
      {
        "date": "2027-07-02",
        "state": "available",
        "nightly_price": 45,
        "special_price": false
      },
      {
        "date": "2027-07-03",
        "state": "booked",
        "nightly_price": 45,
        "special_price": false
      },
      {
        "date": "2027-07-04",
        "state": "blocked",
        "nightly_price": 45,
        "special_price": false
      }
    ]
  },
  "isError": false
}
```

## List messages

MCP tool: `hipcamp_list_messages`

Access: read.

Lists Inbox conversations, most recent first, with the same filters as the Inbox. Pending conversations include booking requests waiting for your answer. Use conversation_id in send_message.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `filter` | enum | no | unread, pending, future, past or questions. Default: unread. |
| `booking_id` | string | no | Only the conversation of this booking. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "conversations": [
      {
        "conversation_id": "cv_33170",
        "camper": "Maya R.",
        "booking_id": "bk_90105",
        "last_message": "Which gate is the Meadow site? We arrive Friday.",
        "last_message_at": "2026-10-11T08:02:00Z",
        "unread": true
      }
    ]
  },
  "isError": false
}
```

## List reviews

MCP tool: `hipcamp_list_reviews`

Access: read.

Lists reviews newest first, each with your public response if you wrote one. Leave responded empty to get all of them, or set it to false to find reviews you have not answered.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | no | Only this listing. |
| `since` | date | no | Only reviews on or after this date. |
| `responded` | boolean | no | false: only reviews without your response. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "reviews": [
      {
        "review_id": "rv_5521",
        "listing_id": "lst_48211",
        "camper": "Maya R.",
        "recommended": true,
        "text": "Quiet site, great creek, easy host.",
        "created_at": "2026-10-08T14:30:00Z",
        "response": null
      }
    ]
  },
  "isError": false
}
```

## List payouts

MCP tool: `hipcamp_list_payouts`

Access: read.

Lists payouts as the Payouts tab shows them, newest first, each with the bookings it covers. A booking is paid after the camper checks out, so recent stays can still be missing.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `since` | date | no | Only payouts on or after this date. Default: 90 days ago. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "payouts": [
      {
        "payout_id": "po_7731",
        "date": "2026-10-06",
        "amount": 170,
        "currency": "USD",
        "status": "paid",
        "bookings": [
          "bk_89990",
          "bk_90012"
        ]
      }
    ]
  },
  "isError": false
}
```

## Block dates

MCP tool: `hipcamp_block_dates`

Access: write.

Turns off availability for the nights in the range, the same as Bulk Edit in the Calendar. Blocking keeps the property in Hipcamp search. It reaches no one and unblock_dates undoes it, so it runs without asking.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID from list_listings. |
| `site_id` | string | no | One site of the listing. Default: all sites. |
| `from` | date | yes | First blocked night. |
| `to` | date | yes | Last blocked night. |
| `reason` | string | no | Closure reason, as offered in Bulk Edit. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "lst_48211",
    "site_id": "site_meadow",
    "from": "2027-08-14",
    "to": "2027-08-18",
    "reason": "Maintenance",
    "nights_blocked": 5
  },
  "isError": false
}
```

## Unblock dates

MCP tool: `hipcamp_unblock_dates`

Access: write.

Turns availability back on for the nights in the range. It reaches no one and block_dates undoes it, so it runs without asking.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID from list_listings. |
| `site_id` | string | no | One site of the listing. Default: all sites. |
| `from` | date | yes | First night to open. |
| `to` | date | yes | Last night to open. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "lst_48211",
    "site_id": "site_meadow",
    "from": "2027-08-14",
    "to": "2027-08-18",
    "nights_opened": 5
  },
  "isError": false
}
```

## Update pricing

MCP tool: `hipcamp_update_pricing`

Access: write.

Sets a special price for the nights in the range, the same as Bulk Edit in the Calendar. A special price takes precedence over the base price and applies to bookings made after the change; confirmed bookings keep their price. It reaches no one directly and one call undoes it, so it runs without asking.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `listing_id` | string | yes | Listing ID from list_listings. |
| `site_id` | string | no | One site of the listing. Default: all sites. |
| `from` | date | yes | First night. |
| `to` | date | yes | Last night. |
| `nightly_price` | integer | yes | Price per night in the listing currency, whole units. |
| `weekdays` | string[] | no | Only these days: mon, tue, wed, thu, fri, sat, sun. Default: every day. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "hipcamp_update_pricing",
    "arguments": {
      "listing_id": "lst_48211",
      "site_id": "site_meadow",
      "from": "2027-07-01",
      "to": "2027-07-31",
      "nightly_price": 55,
      "weekdays": [
        "fri",
        "sat"
      ]
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "listing_id": "lst_48211",
    "site_id": "site_meadow",
    "nights_updated": 10,
    "nightly_price": 55,
    "currency": "USD"
  },
  "isError": false
}
```

## Accept booking request

MCP tool: `hipcamp_accept_booking_request`

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

Accepts the request; Hipcamp then captures the charge it held when the request came in, and the camper is notified. Only requests that have not expired can be accepted. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `booking_id` | string | yes | Booking ID from list_bookings or list_booking_requests. |
| `message` | string | no | Optional note to the camper. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "hipcamp_accept_booking_request",
    "arguments": {
      "booking_id": "bk_90217",
      "message": "Welcome, Jon! Late arrival is fine; the gate code comes the day before."
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "booking_id": "bk_90217",
    "status": "confirmed",
    "site": "Meadow",
    "arrival": "2026-10-23",
    "departure": "2026-10-25",
    "total": 90,
    "currency": "USD"
  },
  "isError": false
}
```

## Decline booking request

MCP tool: `hipcamp_decline_booking_request`

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

Declines the request and notifies the camper. The camper is not charged. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `booking_id` | string | yes | Booking ID from list_bookings or list_booking_requests. |
| `message` | string | no | Optional note to the camper explaining why. |

### tools/call

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

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "booking_id": "bk_90218",
    "status": "declined",
    "camper_charged": false
  },
  "isError": false
}
```

## Send message

MCP tool: `hipcamp_send_message`

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

Posts a message in an Inbox conversation under your host name and returns its ID. Start from a conversation_id returned by list_messages. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `conversation_id` | string | yes | Conversation ID from list_messages. |
| `body` | string | yes | Message text. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "hipcamp_send_message",
    "arguments": {
      "conversation_id": "cv_33170",
      "body": "Hi Maya, take the second gate after the red barn; Meadow is the flat spot by the creek. Firewood is $8 a bundle at the shed."
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "conversation_id": "cv_33170",
    "message_id": "msg_88410",
    "sent_at": "2026-10-11T09:05:00Z"
  },
  "isError": false
}
```

## Respond to review

MCP tool: `hipcamp_respond_to_review`

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

Posts your response under the review, or sends it to the camper as a private message. A public response appears under your name for future campers. By default you confirm each call; you can switch that off for this tool.

### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `review_id` | string | yes | Review ID from list_reviews. |
| `body` | string | yes | Response text. |
| `visibility` | enum | no | public or private. Default: public. |

### tools/call

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "hipcamp_respond_to_review",
    "arguments": {
      "review_id": "rv_5521",
      "visibility": "private",
      "body": "Thank you, Maya! So glad the creek was running for you. Come back in spring."
    }
  }
}
```

### Example response

```json
{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "review_id": "rv_5521",
    "visibility": "public",
    "posted_at": "2026-10-11T09:12:00Z"
  },
  "isError": false
}
```
