Protocol Version: 2026-07-28 • Streamable HTTP

GuestKie MCP API Documentation

Connect autonomous AI agents, bookkeeping assistants, and custom integrations to your GuestKie workspace with fine-grained cryptographic scopes and real-time ledger tools.

1. Protocol Specification → 2. Authentication (Bearer & OAuth) → 3. Scopes & Filtering → 4. Bookkeeper Profile → 5. Credential Redaction → 6. JSON-RPC Examples → 7. Server Endpoints → 8. Error Codes →

1. Protocol Specification

The GuestKie MCP server implements the 2026-07-28 revision of the Model Context Protocol over stateless Streamable HTTP.

Stateless by Design

In protocol version 2026-07-28, there are no persistent session IDs, no initialize handshakes, and no ping notifications. Every JSON-RPC request is authenticated and evaluated independently via HTTP POST. Handshake methods such as initialize and ping return -32601 Method not found.

Required Request Headers

Every POST request to /mcp must declare routing headers:

Header Required For Description / Example
MCP-Protocol-Version All requests Must equal 2026-07-28. Mismatches return -32022.
Mcp-Method All requests Must match the body's method field (e.g. tools/list, tools/call).
Mcp-Name tools/call Must match params.name. ASCII or Base64 encoded.
Mcp-Profile Optional Selects a tool profile (e.g. bookkeeper).

Required _meta in Request Body

Every request payload must include client capabilities and protocol version within params._meta:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}

2. Authentication

The GuestKie MCP server supports two distinct authorization pathways: long-lived tenant bearer tokens and standards-compliant OAuth 2.1 authorization code flows with PKCE.

Method A

Bearer Tokens (Recommended for Agents)

Minted directly from the GuestKie Dashboard under Integrations > MCP.

  • Format: gkmcp_... (40 base32 characters).
  • Stored as SHA-256 hex digest; raw token shown only once.
  • Dashboard-managed lifecycle with no automatic expiration.
  • Header: Authorization: Bearer gkmcp_...
Method B

OAuth 2.1 with PKCE (For Desktop & Web Clients)

Full dynamic client registration and token exchange per RFC 7636 and RFC 8707.

  • Access tokens: gkmcp-oauth_... (1-hour TTL).
  • Refresh tokens: gkmcp-refresh_... (90-day TTL).
  • Requires S256 code challenge; plain challenge rejected.
  • Discovery: /.well-known/oauth-protected-resource
Unauthorized Handling: Requests missing a valid token return 401 Unauthorized with a WWW-Authenticate challenge containing resource_metadata and available scopes. Requests with valid tokens attempting tools outside their granted scopes return 403 Forbidden with error="insufficient_scope".

3. Scopes & Tool Catalog Filtering

GuestKie strictly enforces least-privilege advertising. When a client requests tools/list:

Available Scopes

Scope Tier Description
read:reservations Read Reservations, properties, guests, unified transactions, deposits, and billing summaries.
write:reservations Write Update reservation details, cancellation, guest registration, check-in time changes.
read:guidebook Read List and read guest guidebook sections and house rules.
write:guidebook Write Create, update, reorder, or delete guidebook sections.
read:upsells Read List configured Stay Extras (early check-in, pool heat, pet fees).
write:upsells Write Create and manage Stay Extras offerings.
read:locks Read List smart locks and access code slot statuses.
write:locks Write Push or revoke door lock codes.
read:messages Read Read guest-host communication threads and inquiry messages.
write:messages Write Enqueue host replies into reservation message threads.
read:devices Read Read device status, sensor readings, and noise level aggregations.
write:devices Write Control thermostats, noise alert configs, and smart automation rules.
write:billing Restricted Pause or resume tenant payment processing. Requires confirmation parameter.

4. The Bookkeeper Read-Only Profile

For accounting, tax reconciliation, and bookkeeping clients, the 687-tool full catalog is noisy and unneeded. GuestKie provides a dedicated Bookkeeper Profile (bookkeeper) that curates a strictly read-only catalog under 80 tools with zero write-scoped tools.

How to Request the Bookkeeper Profile:

  • Pass "profile": "bookkeeper" in the tools/list request params: { "method": "tools/list", "params": { "profile": "bookkeeper" } }
  • Or send HTTP header: Mcp-Profile: bookkeeper
  • Or mint a token with label containing "bookkeeper" in the dashboard

Core Bookkeeper Tools Table

Tool Name Scope Function
reservations_list_reservations read:reservations Query reservations with optional date ranges, property ID, and status filters.
reservations_get_reservation read:reservations Fetch complete reservation financial details, guest count, and check-in/out times.
deposits_get_deposit_overview read:reservations Security deposit ledger: active holds, processed claims, waives, and refunds.
deposits_get_deposit_status read:reservations Fetch deposit authorization status and card hold IDs for a single reservation.
transactions_list_transactions_for_tenant read:reservations Unified transactions ledger covering Stripe deposits, upsells, direct bookings, and PMS host payouts.
transactions_get_transaction_summary_for_tenant read:reservations Aggregated totals of gross charges, fees, refunds, and net payouts across all properties.
transactions_get_transactions_for_reservation read:reservations Detailed itemized money flow transactions for a specific reservation code or ID.
billing_get_billing_summary read:reservations Summary of GuestKie SaaS subscription tier, active add-ons, and payment status.
billing_get_billing_history read:reservations Historical invoices and Stripe charge records for platform fees.
properties_list_properties read:reservations List property IDs, titles, timezones, and address metadata.

5. Credential Redaction & Security Policy

GuestKie strictly enforces automated credential and secret redaction at all protocol boundaries. In alignment with GuestKie's access security policy:

Access Codes & Smart Lock PINs

Physical door lock PINs and electronic access credentials are only visible when the token possesses the explicit read:locks or write:locks scope. Read-only reservation or bookkeeper queries return access codes redacted as <redacted_pin> to prevent physical security leaks.

Financial Credentials & Stripe API Keys

Stripe secret keys, webhook secrets, and customer payment method tokens (e.g. pm_..., src_...) are never returned in MCP query outputs. Responses contain itemized transaction amounts and currencies, but sensitive payment tokens remain on the secure payment gateway.

PMS API Tokens & OAuth Credentials

Third-party API keys (Hospitable JWTs, SmartThings bearer tokens, Seam client secrets) are completely inaccessible through the MCP tool catalog. MCP tools execute on behalf of the tenant using server-side isolated contexts without revealing provider tokens to the client.

6. JSON-RPC 2026-07-28 Examples

A. Server Discovery (server/discover)

Request server identity, supported versions, and capabilities:

POST /mcp HTTP/1.1
Host: mcp.guestkie.com
Authorization: Bearer gkmcp_ABC123...
MCP-Protocol-Version: 2026-07-28
Mcp-Method: server/discover
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "server/discover",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}

Response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "resultType": "complete",
    "supportedVersions": ["2026-07-28"],
    "capabilities": { "tools": { "listChanged": false } },
    "instructions": "GuestKie tenant MCP endpoint. Tools are scoped to the bearer token used to authenticate.",
    "ttlMs": 3600000,
    "cacheScope": "public",
    "_meta": {
      "io.modelcontextprotocol/serverInfo": {
        "name": "guestkie-mcp",
        "version": "0.1.0"
      }
    }
  }
}

B. Listing Tools with Bookkeeper Profile (tools/list)

POST /mcp HTTP/1.1
Host: mcp.guestkie.com
Authorization: Bearer gkmcp_ABC123...
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/list
Mcp-Profile: bookkeeper
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list",
  "params": {
    "profile": "bookkeeper",
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}

C. Calling a Tool (tools/call)

Calling transactions_list_transactions_for_tenant:

POST /mcp HTTP/1.1
Host: mcp.guestkie.com
Authorization: Bearer gkmcp_ABC123...
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: transactions_list_transactions_for_tenant
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "transactions_list_transactions_for_tenant",
    "arguments": {
      "limit": 50,
      "source": "all"
    },
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}

7. Server Endpoints

Path Methods Auth Description
/mcp POST, OPTIONS Bearer / OAuth Main JSON-RPC endpoint for tools and discovery.
/mcp/info GET Public Unauthenticated transport metadata and protocol version document.
/.well-known/oauth-protected-resource GET Public RFC 8707 OAuth resource metadata and issuer identifier.
/oauth/register POST Public RFC 7591 dynamic OAuth client registration.
/oauth/token POST Public (Client) Authorization code exchange and refresh token rotation.

8. Error Codes & Troubleshooting

Code / Status Error Name Resolution
401 Unauthorized Invalid or Missing Token Verify your Bearer token in the Authorization header or re-authenticate via OAuth.
403 Forbidden Insufficient Scope The token lacks the required scope for this tool. Mint a new token with the scope specified in WWW-Authenticate.
-32022 Unsupported Protocol Version Ensure header MCP-Protocol-Version and _meta specify 2026-07-28.
-32020 Header Mismatch Ensure Mcp-Method matches method and Mcp-Name matches params.name.
-32601 Method Not Found The server does not implement legacy methods (initialize, ping). Use server/discover.