AGENT SETUP · MODEL CONTEXT PROTOCOL

Onboard your agent to PitchPace.

Give your AI agent a scoped key to your park’s tenant and it can keep occupancy in sync with your PMS, read per-day availability and check your direct-booking price bands — over MCP, from the tools you already use.

Browse agents

Paste the prompt into any agent: it reads /agents/prompt.md and configures itself — after asking you for your tenant host and agent key.

POSThttps://<tenant>.pitchpace.app/api/agent/mcp
02 · WHAT YOUR AGENT CAN DO

5 tools, 3 scopes, one tenant.

Rendered from the same capability registry the endpoint serves — what you see here is exactly what tools/list returns for a fully scoped key. The precise contracts live in skill.md.

TOOLWHAT IT DOESSCOPEACCESS
list_unitsList unit typesoccupancy:readREAD
get_occupancyRead per-day occupancyoccupancy:readREAD
set_occupancySet per-day occupancyoccupancy:writeWRITE
list_availability_blocksList availability blocksoccupancy:readREAD
get_price_gridRead the price gridrates:readREAD
occupancy:read

List unit types, read per-day occupancy, list availability blocks.

occupancy:write

Declare externally sold occupancy (OTA, PMS, walk-ins) per day — reduces public availability immediately.

rates:read

Read the direct-booking price grid: nightly bands, extras, minimum stay, tourist tax.

03 · HOW ACCESS WORKS

One key. One tenant. Nothing else.

Tenant-pinned bearer key

The ppag_ key both authenticates and selects your tenant. There is no tenant parameter in the protocol, so a manipulated prompt cannot redirect reads or writes to another park.

Scoped and fail-closed

A key carries only the scopes you asked for; tools outside them are invisible and uncallable. Revoking a key cuts access immediately. Only a hash of the secret is stored.

Writes are bounded

The only write, set_occupancy, declares externally sold occupancy per day. It never touches your manual blocks, iCal feeds or direct bookings — and you see every agent record, with its note, in the cockpit.

Agent keys are issued per park and per integration during the pilot. Tell us your park, tenant host and the scopes you need — you get the key once, we keep only its hash.

Request an agent key

Treat the key like a password: environment variables or your client’s secret prompt, never a repo, never a URL. Start with read-only scopes; add occupancy:write once you have seen the reads behave.

04 · ANY OTHER MCP CLIENT

The generic config.

Streamable HTTP, stateless JSON, POST only, bearer auth. Any MCP client that can send a header connects with this:

mcp.json — any MCP client
{
  "mcpServers": {
    "pitchpace": {
      "type": "http",
      "url": "https://<tenant>.pitchpace.app/api/agent/mcp",
      "headers": { "Authorization": "Bearer ppag_<key-id>.<secret>" }
    }
  }
}

First thing to ask once connected: List my PitchPace unit types and this week’s per-day occupancy.

MACHINE-READABLE

For the agent itself.