Connect Apps — CompliCore Integration Skill
Manage external application integrations for the CompliCore rental platform. This skill provides context and instructions for working with the connect-apps-plugin MCP server located at connect-apps-plugin/.
When to Apply
Use this skill when the user asks about:
- Connecting, disconnecting, or configuring external apps
- Syncing data with PMS, OTA, payment, smart-lock, or accounting systems
- Checking environment variables or credentials for integrations
- Diagnosing sync errors or connection issues
- Listing available connectors and their status
Architecture
connect-apps-plugin/
├── mcp.json # MCP server manifest
├── package.json # Dependencies (@modelcontextprotocol/sdk, zod)
├── tsconfig.json # TypeScript config (ES2022, ESNext modules)
├── src/
│ └── index.ts # MCP server with 7 tools (864 lines)
└── dist/ # Compiled output (after npm run build)
Runtime: Node.js ≥ 20, TypeScript, MCP stdio transport
Launch: claude --plugin-dir ./connect-apps-plugin
Connector Registry
| ID |
Name |
Category |
Auth |
Required Env Vars |
guesty |
Guesty |
pms |
OAuth |
GUESTY_CLIENT_ID, GUESTY_CLIENT_SECRET |
hostaway |
Hostaway |
pms |
API Key |
HOSTAWAY_API_KEY, HOSTAWAY_ACCOUNT_ID |
lodgify |
Lodgify |
pms |
API Key |
LODGIFY_API_KEY |
beds24 |
Beds24 |
pms |
API Key |
BEDS24_PROP_KEY, BEDS24_API_KEY |
hostfully |
Hostfully |
pms |
OAuth |
HOSTFULLY_CLIENT_ID, HOSTFULLY_CLIENT_SECRET |
airbnb |
Airbnb |
ota |
OAuth |
AIRBNB_CLIENT_ID, AIRBNB_CLIENT_SECRET |
vrbo |
VRBO |
ota |
API Key |
VRBO_API_KEY, VRBO_ADVERTISER_ID |
booking-com |
Booking.com |
ota |
API Key |
BOOKINGCOM_API_KEY, BOOKINGCOM_HOTEL_ID |
stripe |
Stripe |
payment |
API Key |
STRIPE_SECRET_KEY, STRIPE_PUBLISHABLE_KEY, STRIPE_WEBHOOK_SECRET |
paypal |
PayPal |
payment |
OAuth |
PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET |
august |
August Smart Lock |
smart-lock |
OAuth |
AUGUST_CLIENT_ID, AUGUST_CLIENT_SECRET |
schlage |
Schlage Encode |
smart-lock |
API Key |
SCHLAGE_API_KEY |
yale |
Yale Access |
smart-lock |
OAuth |
YALE_CLIENT_ID, YALE_CLIENT_SECRET |
quickbooks |
QuickBooks Online |
accounting |
OAuth |
QUICKBOOKS_CLIENT_ID, QUICKBOOKS_CLIENT_SECRET |
xero |
Xero |
accounting |
OAuth |
XERO_CLIENT_ID, XERO_CLIENT_SECRET |
superhog |
Superhog |
insurance |
API Key |
SUPERHOG_API_KEY, SUPERHOG_HOST_ID |
MCP Tools Reference
list_connectors
List all connectors, optionally filtered by category or status.
- category (optional):
pms | ota | payment | smart-lock | accounting | insurance
- status (optional):
connected | disconnected | error | configured
get_connector
Get details for a specific connector including env vars and sync history.
- connectorId (required): Connector ID string (e.g.
guesty, stripe)
connect_app
Activate a connection with credentials.
- connectorId (required): Connector ID
- apiKey (optional): For API-key connectors
- oauthCode (optional): For OAuth connectors
- webhookUrl (optional): Webhook endpoint to register
disconnect_app
Disconnect and revoke credentials.
- connectorId (required): Connector ID
trigger_sync
Trigger a data sync with a connected app.
- connectorId (required): Connector ID
- syncType (optional, default
full): full | listings | bookings | availability | pricing | payouts
get_sync_history
View recent sync history.
- connectorId (optional): Filter by connector
- limit (optional, default 20): Max records (1–100)
check_env_vars
Check which required env vars are set vs missing for a connector. Does not expose secret values.
- connectorId (required): Connector ID
Workflow Patterns
First-Time Setup
list_connectors — see what's available
check_env_vars with target connector — verify credentials are configured
connect_app with credentials — activate the connection
trigger_sync with syncType: "full" — pull initial data
get_sync_history — verify the sync completed
Diagnose a Failing Connector
get_connector — check status and recent sync errors
check_env_vars — look for missing credentials
- If status is
error, disconnect_app then connect_app to re-auth
trigger_sync — test with a fresh sync
Daily Operations
list_connectors with status: "error" — find broken connections
get_sync_history with limit: 5 — check recent activity
trigger_sync with syncType: "availability" — quick calendar sync
Development
cd connect-apps-plugin
npm install # Install deps
npm run build # Compile TypeScript → dist/
npm run dev # Run with tsx (hot-reload)
npm start # Run compiled output
Adding a New Connector
- Add entry to the
connectors array in src/index.ts
- Define:
id, name, category, authType, status, docsUrl, description, requiredEnvVars
- Rebuild:
npm run build
Key Types
type ConnectorCategory = "pms" | "ota" | "payment" | "smart-lock" | "accounting" | "insurance";
type ConnectorStatus = "connected" | "disconnected" | "error" | "configured";
interface AppConnector {
id: string; name: string; category: ConnectorCategory;
authType: "oauth" | "apiKey" | "webhook";
status: ConnectorStatus; docsUrl: string;
description: string; requiredEnvVars: string[];
}
Related Files
connect-apps-plugin/src/index.ts — Full MCP server implementation
connect-apps-plugin/mcp.json — Server manifest
AGENTS.md — LodgingOrchestrator agent manifesto (references settlement contracts)
contracts/ComplicoreInstantSettlement.sol — Settlement smart contract
backend/src/routes/ — Backend API routes that consume synced data
1---2name: connect-apps3description: Manage CompliCore external app integrations: PMS providers (Guesty, Hostaway, Lodgify, Beds24, Hostfully), OTA channels (Airbnb, VRBO, Booking.com), payment processors (Stripe, PayPal), smart locks (August, Schlage, Yale), accounting (QuickBooks, Xero), and insurance (Superhog). Actions: list, connect, disconnect, sync, check env vars, diagnose errors. Uses the connect-apps-plugin MCP server.4---56# Connect Apps — CompliCore Integration Skill78Manage external application integrations for the CompliCore rental platform. This skill provides context and instructions for working with the **connect-apps-plugin** MCP server located at `connect-apps-plugin/`.910## When to Apply1112Use this skill when the user asks about:13- Connecting, disconnecting, or configuring external apps14- Syncing data with PMS, OTA, payment, smart-lock, or accounting systems15- Checking environment variables or credentials for integrations16- Diagnosing sync errors or connection issues17- Listing available connectors and their status1819## Architecture2021```22connect-apps-plugin/23├── mcp.json # MCP server manifest24├── package.json # Dependencies (@modelcontextprotocol/sdk, zod)25├── tsconfig.json # TypeScript config (ES2022, ESNext modules)26├── src/27│ └── index.ts # MCP server with 7 tools (864 lines)28└── dist/ # Compiled output (after npm run build)29```3031**Runtime:** Node.js ≥ 20, TypeScript, MCP stdio transport32**Launch:** `claude --plugin-dir ./connect-apps-plugin`3334## Connector Registry3536| ID | Name | Category | Auth | Required Env Vars |37|----|------|----------|------|-------------------|38| `guesty` | Guesty | pms | OAuth | `GUESTY_CLIENT_ID`, `GUESTY_CLIENT_SECRET` |39| `hostaway` | Hostaway | pms | API Key | `HOSTAWAY_API_KEY`, `HOSTAWAY_ACCOUNT_ID` |40| `lodgify` | Lodgify | pms | API Key | `LODGIFY_API_KEY` |41| `beds24` | Beds24 | pms | API Key | `BEDS24_PROP_KEY`, `BEDS24_API_KEY` |42| `hostfully` | Hostfully | pms | OAuth | `HOSTFULLY_CLIENT_ID`, `HOSTFULLY_CLIENT_SECRET` |43| `airbnb` | Airbnb | ota | OAuth | `AIRBNB_CLIENT_ID`, `AIRBNB_CLIENT_SECRET` |44| `vrbo` | VRBO | ota | API Key | `VRBO_API_KEY`, `VRBO_ADVERTISER_ID` |45| `booking-com` | Booking.com | ota | API Key | `BOOKINGCOM_API_KEY`, `BOOKINGCOM_HOTEL_ID` |46| `stripe` | Stripe | payment | API Key | `STRIPE_SECRET_KEY`, `STRIPE_PUBLISHABLE_KEY`, `STRIPE_WEBHOOK_SECRET` |47| `paypal` | PayPal | payment | OAuth | `PAYPAL_CLIENT_ID`, `PAYPAL_CLIENT_SECRET` |48| `august` | August Smart Lock | smart-lock | OAuth | `AUGUST_CLIENT_ID`, `AUGUST_CLIENT_SECRET` |49| `schlage` | Schlage Encode | smart-lock | API Key | `SCHLAGE_API_KEY` |50| `yale` | Yale Access | smart-lock | OAuth | `YALE_CLIENT_ID`, `YALE_CLIENT_SECRET` |51| `quickbooks` | QuickBooks Online | accounting | OAuth | `QUICKBOOKS_CLIENT_ID`, `QUICKBOOKS_CLIENT_SECRET` |52| `xero` | Xero | accounting | OAuth | `XERO_CLIENT_ID`, `XERO_CLIENT_SECRET` |53| `superhog` | Superhog | insurance | API Key | `SUPERHOG_API_KEY`, `SUPERHOG_HOST_ID` |5455## MCP Tools Reference5657### `list_connectors`58List all connectors, optionally filtered by category or status.59- **category** (optional): `pms` | `ota` | `payment` | `smart-lock` | `accounting` | `insurance`60- **status** (optional): `connected` | `disconnected` | `error` | `configured`6162### `get_connector`63Get details for a specific connector including env vars and sync history.64- **connectorId** (required): Connector ID string (e.g. `guesty`, `stripe`)6566### `connect_app`67Activate a connection with credentials.68- **connectorId** (required): Connector ID69- **apiKey** (optional): For API-key connectors70- **oauthCode** (optional): For OAuth connectors71- **webhookUrl** (optional): Webhook endpoint to register7273### `disconnect_app`74Disconnect and revoke credentials.75- **connectorId** (required): Connector ID7677### `trigger_sync`78Trigger a data sync with a connected app.79- **connectorId** (required): Connector ID80- **syncType** (optional, default `full`): `full` | `listings` | `bookings` | `availability` | `pricing` | `payouts`8182### `get_sync_history`83View recent sync history.84- **connectorId** (optional): Filter by connector85- **limit** (optional, default 20): Max records (1–100)8687### `check_env_vars`88Check which required env vars are set vs missing for a connector. Does not expose secret values.89- **connectorId** (required): Connector ID9091## Workflow Patterns9293### First-Time Setup941. `list_connectors` — see what's available952. `check_env_vars` with target connector — verify credentials are configured963. `connect_app` with credentials — activate the connection974. `trigger_sync` with `syncType: "full"` — pull initial data985. `get_sync_history` — verify the sync completed99100### Diagnose a Failing Connector1011. `get_connector` — check status and recent sync errors1022. `check_env_vars` — look for missing credentials1033. If status is `error`, `disconnect_app` then `connect_app` to re-auth1044. `trigger_sync` — test with a fresh sync105106### Daily Operations107- `list_connectors` with `status: "error"` — find broken connections108- `get_sync_history` with `limit: 5` — check recent activity109- `trigger_sync` with `syncType: "availability"` — quick calendar sync110111## Development112113```bash114cd connect-apps-plugin115npm install # Install deps116npm run build # Compile TypeScript → dist/117npm run dev # Run with tsx (hot-reload)118npm start # Run compiled output119```120121### Adding a New Connector1221. Add entry to the `connectors` array in `src/index.ts`1232. Define: `id`, `name`, `category`, `authType`, `status`, `docsUrl`, `description`, `requiredEnvVars`1243. Rebuild: `npm run build`125126### Key Types127```typescript128type ConnectorCategory = "pms" | "ota" | "payment" | "smart-lock" | "accounting" | "insurance";129type ConnectorStatus = "connected" | "disconnected" | "error" | "configured";130interface AppConnector {131 id: string; name: string; category: ConnectorCategory;132 authType: "oauth" | "apiKey" | "webhook";133 status: ConnectorStatus; docsUrl: string;134 description: string; requiredEnvVars: string[];135}136```137138## Related Files139- `connect-apps-plugin/src/index.ts` — Full MCP server implementation140- `connect-apps-plugin/mcp.json` — Server manifest141- `AGENTS.md` — LodgingOrchestrator agent manifesto (references settlement contracts)142- `contracts/ComplicoreInstantSettlement.sol` — Settlement smart contract143- `backend/src/routes/` — Backend API routes that consume synced data