guesty-mcp-server 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mcpregistry_github_token +1 -0
- package/.mcpregistry_registry_token +1 -0
- package/README.md +79 -57
- package/package.json +3 -2
- package/server.json +36 -0
- package/smithery.yaml +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ghu_erLfGY4zAYVbjzUz0jwdlWjPzYIRaP0Kql1T
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"token":"eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJtY3AtcmVnaXN0cnkiLCJleHAiOjE3NzQ1NzkyNTksIm5iZiI6MTc3NDU3ODk1OSwiaWF0IjoxNzc0NTc4OTU5LCJhdXRoX21ldGhvZCI6ImdpdGh1Yi1hdCIsImF1dGhfbWV0aG9kX3N1YiI6IkRMSlJlYWx0eSIsInBlcm1pc3Npb25zIjpbeyJhY3Rpb24iOiJwdWJsaXNoIiwicmVzb3VyY2UiOiJpby5naXRodWIuRExKUmVhbHR5LyoifV19.U8Lmee0qloF-2ugZuRdpi7Wnu-HeODY6kfMmztM1TamM4mWppFfytEELC9EM6nTs6Sq_y1HSKOmHiWOhODVYDg","expires_at":1774579259}
|
package/README.md
CHANGED
|
@@ -1,63 +1,26 @@
|
|
|
1
1
|
# Guesty MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/guesty-mcp-server)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
The first MCP (Model Context Protocol) server for [Guesty](https://guesty.com) property management. Connect AI agents directly to your Guesty account to manage reservations, communicate with guests, track finances, and update pricing -- all autonomously.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|------|-------------|
|
|
9
|
-
| `get_reservations` | Fetch reservations with filters (dates, listing, status, guest) |
|
|
10
|
-
| `get_listing` | Get property details or list all properties |
|
|
11
|
-
| `get_conversations` | Fetch guest message history |
|
|
12
|
-
| `send_guest_message` | Send messages to guests in conversations |
|
|
13
|
-
| `get_financials` | Revenue, payouts, and commission data |
|
|
14
|
-
| `update_pricing` | Update base price or date-specific pricing |
|
|
15
|
-
| `create_reservation` | Create direct bookings (website → Guesty) |
|
|
16
|
-
| `get_reviews` | Fetch guest reviews from all channels |
|
|
17
|
-
| `get_calendar` | Check availability and pricing by date |
|
|
18
|
-
| `update_calendar` | Block/unblock dates, set minimum nights |
|
|
19
|
-
| `respond_to_review` | Post responses to guest reviews |
|
|
20
|
-
| `get_owner_statements` | Owner revenue statements and reports |
|
|
21
|
-
| `get_expenses` | Track operational expenses |
|
|
22
|
-
| `get_channels` | List connected booking channels per property |
|
|
23
|
-
| `get_tasks` | Fetch cleaning and maintenance tasks |
|
|
8
|
+
**38 tools** covering reservations, listings, guests, messaging, financials, tasks, calendars, webhooks, pricing, and more.
|
|
24
9
|
|
|
25
10
|
## Quick Start
|
|
26
11
|
|
|
27
|
-
### 1. Get Guesty API Credentials
|
|
28
|
-
|
|
29
|
-
1. Log into [Guesty Dashboard](https://app.guesty.com)
|
|
30
|
-
2. Go to **Settings > API** (or Marketplace > API Credentials)
|
|
31
|
-
3. Create an API application with `open-api` scope
|
|
32
|
-
4. Copy your **Client ID** and **Client Secret**
|
|
33
|
-
|
|
34
|
-
### 2. Install
|
|
35
|
-
|
|
36
12
|
```bash
|
|
37
|
-
|
|
38
|
-
cd guesty-mcp-server
|
|
39
|
-
npm install
|
|
13
|
+
npx guesty-mcp-server
|
|
40
14
|
```
|
|
41
15
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Set your Guesty credentials as environment variables:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
export GUESTY_CLIENT_ID="your-client-id"
|
|
48
|
-
export GUESTY_CLIENT_SECRET="your-client-secret"
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### 4. Add to Claude Code
|
|
52
|
-
|
|
53
|
-
Add to your Claude Code settings (`~/.claude/settings.json`):
|
|
16
|
+
Or add to your Claude Code settings (`~/.claude/settings.json`):
|
|
54
17
|
|
|
55
18
|
```json
|
|
56
19
|
{
|
|
57
20
|
"mcpServers": {
|
|
58
21
|
"guesty": {
|
|
59
|
-
"command": "
|
|
60
|
-
"args": ["
|
|
22
|
+
"command": "npx",
|
|
23
|
+
"args": ["-y", "guesty-mcp-server"],
|
|
61
24
|
"env": {
|
|
62
25
|
"GUESTY_CLIENT_ID": "your-client-id",
|
|
63
26
|
"GUESTY_CLIENT_SECRET": "your-client-secret"
|
|
@@ -67,17 +30,76 @@ Add to your Claude Code settings (`~/.claude/settings.json`):
|
|
|
67
30
|
}
|
|
68
31
|
```
|
|
69
32
|
|
|
70
|
-
|
|
33
|
+
## Get Guesty API Credentials
|
|
34
|
+
|
|
35
|
+
1. Log into [Guesty Dashboard](https://app.guesty.com)
|
|
36
|
+
2. Go to **Settings > API** (or Marketplace > API Credentials)
|
|
37
|
+
3. Create an API application with `open-api` scope
|
|
38
|
+
4. Copy your **Client ID** and **Client Secret**
|
|
39
|
+
|
|
40
|
+
## All 38 Tools
|
|
71
41
|
|
|
72
|
-
|
|
42
|
+
### Reservations & Guests
|
|
43
|
+
| Tool | Description |
|
|
44
|
+
|------|-------------|
|
|
45
|
+
| `get_reservations` | Fetch reservations with filters (dates, listing, status, guest) |
|
|
46
|
+
| `create_reservation` | Create direct bookings (website to Guesty) |
|
|
47
|
+
| `update_reservation` | Update reservation status, dates, guest info, or add notes |
|
|
48
|
+
| `search_reservations` | Search by guest name, email, or confirmation code |
|
|
49
|
+
| `get_reservation_financials` | Detailed financial breakdown for a reservation |
|
|
50
|
+
| `create_reservation_note` | Add internal notes to a reservation |
|
|
51
|
+
| `get_guests` | Search guest database by name or email |
|
|
52
|
+
| `get_guest_by_id` | Get detailed guest profile |
|
|
53
|
+
|
|
54
|
+
### Listings & Calendar
|
|
55
|
+
| Tool | Description |
|
|
56
|
+
|------|-------------|
|
|
57
|
+
| `get_listing` | Get property details or list all properties |
|
|
58
|
+
| `update_listing` | Update title, description, amenities, min nights, max guests |
|
|
59
|
+
| `get_calendar` | Check availability and pricing by date |
|
|
60
|
+
| `update_calendar` | Block/unblock dates, set minimum nights |
|
|
61
|
+
| `get_calendar_blocks` | Get blocked dates with reasons |
|
|
62
|
+
| `get_listing_occupancy` | Calculate occupancy rate over a date range |
|
|
63
|
+
| `get_photos` | Fetch listing photos with captions |
|
|
64
|
+
| `update_photos` | Replace or reorder listing photos |
|
|
73
65
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
66
|
+
### Messaging
|
|
67
|
+
| Tool | Description |
|
|
68
|
+
|------|-------------|
|
|
69
|
+
| `get_conversations` | Fetch guest message history |
|
|
70
|
+
| `send_guest_message` | Send messages to guests in conversations |
|
|
71
|
+
|
|
72
|
+
### Financials & Pricing
|
|
73
|
+
| Tool | Description |
|
|
74
|
+
|------|-------------|
|
|
75
|
+
| `get_financials` | Revenue, payouts, and commission data |
|
|
76
|
+
| `update_pricing` | Update base price or date-specific pricing |
|
|
77
|
+
| `get_listing_pricing` | Get base price, discounts, and fee details |
|
|
78
|
+
| `update_listing_pricing` | Update base price, cleaning fee, discounts |
|
|
79
|
+
| `get_owner_statements` | Owner revenue statements and reports |
|
|
80
|
+
| `get_expenses` | Track operational expenses |
|
|
81
|
+
| `create_expense` | Create new expense records |
|
|
82
|
+
| `get_revenue_summary` | Aggregated revenue across all listings |
|
|
83
|
+
|
|
84
|
+
### Operations
|
|
85
|
+
| Tool | Description |
|
|
86
|
+
|------|-------------|
|
|
87
|
+
| `get_tasks` | Fetch cleaning and maintenance tasks |
|
|
88
|
+
| `create_task` | Create cleaning or maintenance tasks |
|
|
89
|
+
| `get_reviews` | Fetch guest reviews from all channels |
|
|
90
|
+
| `respond_to_review` | Post responses to guest reviews |
|
|
91
|
+
| `get_channels` | List connected booking channels per property |
|
|
92
|
+
| `get_supported_languages` | Get supported languages for a listing |
|
|
93
|
+
|
|
94
|
+
### Automation & Integrations
|
|
95
|
+
| Tool | Description |
|
|
96
|
+
|------|-------------|
|
|
97
|
+
| `get_automation_rules` | List automation and workflow rules |
|
|
98
|
+
| `get_webhooks` | List registered webhooks |
|
|
99
|
+
| `create_webhook` | Register new webhook for event notifications |
|
|
100
|
+
| `delete_webhook` | Remove a registered webhook |
|
|
101
|
+
| `get_custom_fields` | Fetch custom fields for listings or reservations |
|
|
102
|
+
| `get_account_info` | Get account info and subscription details |
|
|
81
103
|
|
|
82
104
|
## Use Cases
|
|
83
105
|
|
|
@@ -85,17 +107,17 @@ Once connected, your AI agent can:
|
|
|
85
107
|
- **Revenue Management**: Pull financial reports, analyze occupancy, optimize pricing
|
|
86
108
|
- **Operations**: Track check-ins/outs, coordinate cleaning schedules, manage availability
|
|
87
109
|
- **Marketing**: Identify low-occupancy periods, create targeted promotions
|
|
88
|
-
- **Multi-Agent Teams**: Give your entire AI team
|
|
110
|
+
- **Multi-Agent Teams**: Give your entire AI team access to property data
|
|
89
111
|
|
|
90
112
|
## Requirements
|
|
91
113
|
|
|
92
114
|
- Node.js 18+
|
|
93
115
|
- Guesty account with API access (Professional plan or higher)
|
|
94
|
-
- MCP-compatible AI client (Claude Code,
|
|
116
|
+
- MCP-compatible AI client (Claude Code, Cursor, Windsurf, etc.)
|
|
95
117
|
|
|
96
118
|
## API Reference
|
|
97
119
|
|
|
98
|
-
This server wraps the [Guesty Open API](https://open-api.guesty.com/api-docs). Authentication uses OAuth2 client credentials flow with automatic token caching and
|
|
120
|
+
This server wraps the [Guesty Open API](https://open-api.guesty.com/api-docs). Authentication uses OAuth2 client credentials flow with automatic token caching, retry logic, and rate limit handling.
|
|
99
121
|
|
|
100
122
|
## Built By
|
|
101
123
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "guesty-mcp-server",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "MCP Server for Guesty Property Management - The first Guesty MCP server",
|
|
5
5
|
"main": "src/server.js",
|
|
6
6
|
"bin": {
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"url": "https://github.com/DLJRealty/guesty-mcp-server.git"
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/DLJRealty/guesty-mcp-server",
|
|
33
|
+
"mcpName": "io.github.DLJRealty/guesty",
|
|
33
34
|
"engines": {
|
|
34
35
|
"node": ">=18.0.0"
|
|
35
36
|
}
|
|
36
|
-
}
|
|
37
|
+
}
|
package/server.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.DLJRealty/guesty",
|
|
4
|
+
"description": "MCP server for Guesty property management — 38 tools for STR operations.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"url": "https://github.com/DLJRealty/guesty-mcp-server",
|
|
7
|
+
"source": "github"
|
|
8
|
+
},
|
|
9
|
+
"version": "0.4.1",
|
|
10
|
+
"packages": [
|
|
11
|
+
{
|
|
12
|
+
"registryType": "npm",
|
|
13
|
+
"identifier": "guesty-mcp-server",
|
|
14
|
+
"version": "0.4.1",
|
|
15
|
+
"transport": {
|
|
16
|
+
"type": "stdio"
|
|
17
|
+
},
|
|
18
|
+
"environmentVariables": [
|
|
19
|
+
{
|
|
20
|
+
"description": "Guesty OAuth2 Client ID",
|
|
21
|
+
"isRequired": true,
|
|
22
|
+
"format": "string",
|
|
23
|
+
"isSecret": true,
|
|
24
|
+
"name": "GUESTY_CLIENT_ID"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"description": "Guesty OAuth2 Client Secret",
|
|
28
|
+
"isRequired": true,
|
|
29
|
+
"format": "string",
|
|
30
|
+
"isSecret": true,
|
|
31
|
+
"name": "GUESTY_CLIENT_SECRET"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
package/smithery.yaml
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
startCommand:
|
|
2
|
+
type: stdio
|
|
3
|
+
configSchema:
|
|
4
|
+
type: object
|
|
5
|
+
required:
|
|
6
|
+
- guestyClientId
|
|
7
|
+
- guestyClientSecret
|
|
8
|
+
properties:
|
|
9
|
+
guestyClientId:
|
|
10
|
+
type: string
|
|
11
|
+
description: Guesty OAuth2 Client ID
|
|
12
|
+
guestyClientSecret:
|
|
13
|
+
type: string
|
|
14
|
+
description: Guesty OAuth2 Client Secret
|
|
15
|
+
commandFunction:
|
|
16
|
+
|-
|
|
17
|
+
(config) => ({ command: 'npx', args: ['-y', 'guesty-mcp-server'], env: { GUESTY_CLIENT_ID: config.guestyClientId, GUESTY_CLIENT_SECRET: config.guestyClientSecret } })
|