P ProhostAI · Developer portal
Developer portal · MCP setup

Connect your AI assistant to your properties.

Welcome AI agents — connect ProhostAI to Claude Desktop, Claude Code, OpenAI Codex, or any MCP-compatible client over OAuth 2.1 or API key.

💡 New to ProhostAI? Sign up and connect your listings first — MCP setup assumes you have an account with listings imported.

Recommended — OAuth (one command, sign in through your browser, no API key to manage):

shell claude mcp add --transport http prohostai https://connect.prohost.ai/mcp

Claude Code discovers OAuth via our .well-known/oauth-protected-resource metadata, registers itself dynamically (RFC 7591), and walks you through sign-in.

Alternative — API key (for scripts, CI, or long-lived pinned keys). Add to .mcp.json in your project root:

json { "mcpServers": { "prohostai": { "command": "npx", "args": ["-y", "@prohostai/mcp-server"], "env": { "PROHOST_API_KEY": "ph_live_YOUR_KEY" } } } }
⚡ Try asking: "What reservations check in today?" or "Create a task to fix the AC at Beachfront Villa."

Available Tools 200 tools

add_cleaning_checklist_item
Add a new item to a cleaning checklist.
add_cleaning_comment
Add a comment on a cleaning.
add_place_tag
Attach a listing tag to a place (idempotent).
add_pricing_override
Upsert a single date-specific price override on PriceLabs.
assign_cleaning
Assign or unassign the primary cleaner on a cleaning.
block_dates
Block (mark unavailable) a list of dates on a listing's calendar.
bulk_assign_listing_tags
Assign every tag in ``tag_ids`` to every listing in ``listing_ids``.
bulk_delete_expenses
Delete multiple expenses by ID.
bulk_remove_listing_tags
Remove every tag in ``tag_ids`` from every listing in ``listing_ids``.
bulk_update_conversations
Apply the same patch (e.g.
bulk_update_expenses
Update a common set of fields across multiple expenses in one call.
cancel_scheduled_message
Cancel a scheduled message that has not yet been sent.
check_missing_custom_fields
For a set of field keys, return which listings (under a tag or an explicit ID list) don't have a value for…
create_cleaning
Schedule a new cleaning job for a listing.
create_cleaning_checklist
Create a new checklist on a cleaning.
create_contact
Create a new contact record on the account.
create_expense_category
Create a new custom expense category for the account.
create_guest
Create a new guest record on the account.
create_guidebook
Create a new guidebook attached to a listing.
create_guidebook_section
Create a guidebook-scoped section.
create_listing
Create a new manual property listing.
create_listing_tag
Create a new listing tag on the account.
create_memory
Create a new memory in the property knowledge base.
create_message_template
Create a message template.
create_owner
Create a new property owner on the account.
create_owner_statement
Create a new owner statement covering ``[from_date, to_date]``.
create_place
Create a new place on the account.
create_saved_reply
Create a saved reply (canned message).
create_tag_section
Create a tag-scoped section.
create_task
Create a new task.
create_task_checklist
Create a checklist on a task.
create_task_checklist_from_template
Instantiate a task checklist from a template.
create_upgrade_option
Create a paid upgrade option attached to a guidebook.
create_webhook_subscription
Create a webhook subscription.
delete_cleaning_attachment
Delete an attachment on a cleaning.
delete_cleaning_checklist
Delete a checklist on a cleaning.
delete_cleaning_checklist_item
Delete a cleaning checklist item.
delete_cleaning_comment
Delete a cleaning comment (author only).
delete_contact
Delete a contact.
delete_contact_custom_fields
Remove the named keys from ``custom_fields`` on every contact in ``contact_ids``.
delete_expense_category
Delete a custom expense category.
delete_guest_custom_fields
Remove the named keys from ``custom_fields`` on every guest in ``guest_ids``.
delete_guidebook_section
Delete a guidebook-scoped section.
delete_listing_custom_fields
Batch-delete custom-field keys from listings, a tag, or the account.
delete_listing_tag
Delete a listing tag and all of its assignments.
delete_memory
Permanently delete a memory by ID.
delete_message_template
Soft-delete a message template by ID.
delete_owner_statement
Delete an owner statement.
delete_pin
Delete a pin.
delete_place
Delete a place; cascades to pins and tag associations.
delete_pricing_override
Delete one or more date-specific price overrides from PriceLabs.
delete_reservation_custom_fields
Remove the named keys from ``custom_fields`` on every reservation in ``reservation_ids``.
delete_saved_reply
Soft-delete a saved reply by ID.
delete_tag_section
Delete a tag-scoped section.
delete_task_checklist
Delete a checklist on a task.
delete_upgrade_option
Delete an upgrade option.
docs_append_section
Append a new heading-titled section to a doc.
docs_read
Read a Drive document by path or id.
docs_read_section
Read a single section of a doc by heading text.
docs_write
Replace a Drive document body.
docs_write_section
Replace a section's body.
draft_reply
Generate a non-persisting AI reply draft for a conversation.
drive_create
Create a Drive item (folder/doc/sheet).
drive_delete
Soft-delete a Drive item by path or id.
drive_get
Fetch a single Drive item by path or id.
drive_list
List children of a Drive folder by path.
drive_move
Move a Drive item to a new parent (by path).
drive_search
Search Drive items by name (case-insensitive substring).
edit_cleaning_comment
Edit a previously-posted cleaning comment (author only).
edit_message
Edit the body of a previously-sent message.
get_availability
Get calendar availability for a listing over a date range.
get_bank_accounts
List bank/credit-card accounts connected via Plaid for the current account.
get_contact_custom_fields
Return the resolved custom-field values for a contact, with provenance.
get_conversation_messages
Get messages for a conversation.
get_dashboard_summary
Get a composite dashboard summary: today's check-ins/outs, pending tasks, unread conversations.
get_earnings_summary
Get earnings summary for a date range.
get_guest_custom_fields
Return the resolved custom-field values for a guest, with provenance.
get_guidebook
Get guidebook content for a listing.
get_listing
Get a single listing by id, including title, address, capacity, and timezone.
get_listing_channel_urls
Return deterministic OTA URLs for a listing.
get_listing_custom_fields
Resolve the merged custom-field dict for a listing using the ``account → tag → source → listing`` precedence.
get_listing_group
Get the parent/child relationships for a listing group.
get_listing_pricing
Return the current min/base/max for a listing on PriceLabs.
get_owner
Get full details for a single owner by ID.
get_owner_statement
Get a single owner statement by ID.
get_owner_statement_expenses
Return expense totals for the statement window, broken down per listing.
get_owner_statement_rental_activity
Return rental-activity totals for the statement window: per-reservation and per-listing breakdowns plus agg…
get_place
Get a single place by ID.
get_pricelabs_listings_mapping
Return the PriceLabs ↔ ProhostAI listing mapping.
get_pricing_neighborhood
Return PriceLabs neighborhood pricing data for a listing.
get_pricing_rate_plans
Return rate plans configured on PriceLabs for the listing.
get_pricing_recommendations
Return PriceLabs recommended prices for a listing.
get_property_knowledge
Get all memories (property knowledge) for a listing, grouped by scope.
get_reservation
Get full details for a single reservation by ID.
get_reservation_custom_fields
Return the resolved custom-field values for a reservation, with provenance.
google_places_autocomplete
Server-side proxy to Google Places Autocomplete (v1).
google_places_details
Server-side proxy to Google Places Details (v1).
link_transaction_to_expense
Link a bank transaction to an existing expense for reconciliation.
list_cleaning_attachments
List uploaded attachments on a cleaning.
list_cleaning_checklists
List all checklists on a cleaning, with their items.
list_conversation_message_variables
List valid placeholders for conversation scheduled messages and message templates.
list_expense_categories
List expense categories for the account.
list_guidebook_pins
List pins for a guidebook plus tag-scoped pins inherited via the guidebook's listing tags.
list_guidebook_sections
List the guidebook-scoped sections of a guidebook.
list_listing_photos
List the photos attached to a listing, ordered by the ``order`` field.
list_listing_tags
List all listing tags on the account, optionally filtered by tag_type.
list_listings
List all listings (properties) for the account.
list_message_templates
List all message templates on the account.
list_owner_statements
List owner statements for the account, optionally filtered by status, owner, or title search.
list_place_tags
List the listing tags attached to a place.
list_places
List the account's places with optional filters (tag, category, text search).
list_pricing_overrides
List date-specific price overrides currently set on PriceLabs for the listing.
list_saved_replies
List all saved replies on the account.
list_scheduled_messages
List scheduled messages on a conversation, optionally filtered by status.
list_suggestions
List AI suggestions / drafts for a conversation, newest first.
list_task_checklists
List all checklists on a task.
list_upgrade_options
List the upgrade options attached to a guidebook.
list_webhook_subscriptions
List active webhook subscriptions for the account.
mark_conversation_read
Mark a conversation's messages as read for the API user.
move_pin_scope
Move a pin between guidebook scope and tag scope.
move_section_scope
Move a section between guidebook-scoped and tag-scoped storage.
pause_ai
Pause AI replies on a conversation (mutes the AI for non-@mentions).
pin_place_to_guidebook
Pin a place to a guidebook (guidebook-scoped pin).
pin_place_to_tag
Pin a place to a listing tag (tag-scoped pin).
publish_review_reply
Publish a previously-generated AI-authored review reply (an 'auto-review') to the upstream OTA.
publish_suggestion
Send the suggestion text (or its edited override) as a host message on the conversation.
remove_place_tag
Detach a listing tag from a place.
reorder_guidebook_pins
Bulk-update positions of guidebook-scoped pins.
reorder_guidebook_sections
Bulk-reorder guidebook-scoped sections.
reorder_tag_pins
Bulk-update positions of tag-scoped pins.
reorder_tag_sections
Bulk-reorder tag-scoped sections.
reorder_task_checklists
Reorder checklists on a task.
report_cleaning_issue
Report a new issue on a cleaning.
resolve_cleaning_issue
Delete (resolve) a cleaning issue.
resume_ai
Resume AI replies on a conversation that was previously paused.
revise_suggestion
Stage a host instruction on an AI suggestion so the next agent run can pick it up.
schedule_message
Schedule a host message to be sent at a future time.
search_bank_transactions
Search bank/credit-card transactions from Plaid-connected accounts.
search_cleanings
Search cleanings.
search_contacts
Search contacts by name, email, company, or role.
search_conversations
Search conversations.
search_expenses
Search expenses.
search_guests
Search and filter guests by name, email, or listing.
search_memories
Search the property knowledge base.
search_owners
Search owners/investors.
search_reservations
Search and filter reservations.
search_reviews
Search guest reviews.
search_tasks
Search tasks.
send_message
Send a message in a conversation through the real delivery pipeline.
set_contact_custom_fields
Merge ``fields`` into ``custom_fields`` on every contact in ``contact_ids``.
set_guest_custom_fields
Merge ``fields`` into ``custom_fields`` on every guest in ``guest_ids``.
set_listing_custom_fields
Batch-set custom fields on listings, a tag, or the account.
set_listing_group_children
Replace the child-listings list for a parent listing (a 'listing group').
set_listing_host_role
Set the host role (owner / cohost) for a Hospitable-connected listing.
set_mystay_section_order
Set the order of sections shown on the My Stay tab of the guidebook.
set_reservation_custom_fields
Merge ``fields`` into ``custom_fields`` on every reservation in ``reservation_ids``.
sheets_delete_row
Delete a row from a sheet by row id.
sheets_get
Fetch sheet metadata (row_count, schema) by path or id.
sheets_insert_rows
Bulk-insert rows into a sheet.
sheets_list
List sheets in the account.
sheets_query
Filter rows via a simple {column_id: value} equality DSL (like read_rows without sort).
sheets_read_rows
Read rows from a sheet.
sheets_schema
Fetch a sheet's column schema by path or id.
sheets_update_row
Partial-patch a row in a sheet by row id.
submit_feedback
Submit a bug report, feature request, or question to the ProhostAI team.
toggle_reaction
Add, switch, or remove the API user's emoji reaction on a message.
translate_task_checklist
Translate a task checklist to a target language.
unblock_dates
Unblock (mark available) a list of dates on a listing's calendar.
update_calendar_days
Update price, availability, and/or minimum-stay for a listing's calendar.
update_cleaning_checklist
Update a checklist on a cleaning.
update_cleaning_checklist_item
Update fields on a cleaning checklist item (title, completion, photo, etc.).
update_cleaning_issue
Update the title of a cleaning issue.
update_cleaning_status
Transition a cleaning to a new status.
update_contact
Update an existing contact.
update_expense
Update fields on an existing expense.
update_expense_category
Rename an expense category.
update_guest
Update an existing guest.
update_guidebook
Patch fields on a guidebook (title, description, theme, branding).
update_guidebook_section
Patch fields on a guidebook-scoped section.
update_listing
Update fields on a listing — title, description, address, capacity, wifi, custom_fields, etc.
update_listing_photos
Replace the photo set for a listing.
update_listing_pricing
Push min/base/max to PriceLabs for the listing.
update_listing_tag
Update one or more fields on an existing listing tag.
update_memory
Update an existing memory.
update_message_template
Update a message template by ID.
update_owner
Update an existing owner.
update_owner_statement
Update an existing owner statement.
update_pin
Update a pin's category, position, or host note override.
update_place
Patch fields on an existing place.
update_reservation
Update a public-safe subset of fields on a reservation: ``custom_fields`` (full replace) and guest contact…
update_saved_reply
Update fields on a saved reply.
update_scheduled_message
Edit the body and/or send time of a scheduled message that hasn't been sent.
update_tag_section
Patch fields on a tag-scoped section.
update_task
Update a task's status, priority, description, or other fields.
update_task_checklist
Update fields on a task checklist.
update_upgrade_option
Patch fields on an existing upgrade option.
upload_cleaning_attachment
Register one or more attachment URLs on a cleaning.
upload_contact_photo
Generate a presigned S3 PUT URL for a contact's photo.
upload_guidebook_image
Return a presigned PUT URL for uploading a guidebook image to S3.
upload_place_photo
Return a presigned PUT URL for uploading a place photo to S3.

Data & privacy

Tool calls only ever touch data the authenticated account can already see in ProhostAI. OAuth scopes and listing-scoped API keys are enforced on every call. See our privacy policy for what we collect, how long we retain it, and how to request deletion.