honeybook-mcp 0.1.0 → 0.1.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/.claude-plugin/marketplace.json +9 -3
- package/.claude-plugin/plugin.json +8 -2
- package/.mcp.json +1 -4
- package/README.md +22 -43
- package/dist/bundle.js +266 -82
- package/dist/client.js +20 -66
- package/dist/index.js +3 -3
- package/dist/sessions.js +205 -0
- package/dist/tools/contracts.js +13 -5
- package/dist/tools/invoices.js +13 -5
- package/dist/tools/payment_methods.js +6 -3
- package/dist/tools/sessions.js +45 -0
- package/dist/tools/workspace_files.js +12 -7
- package/dist/tools/workspaces.js +9 -4
- package/package.json +3 -3
- package/server.json +6 -12
- package/skills/honeybook/SKILL.md +8 -5
- package/dist/tools/vendors.js +0 -12
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "HoneyBook client-portal tools for Claude Code",
|
|
10
|
-
"version": "0.1.
|
|
10
|
+
"version": "0.1.2"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,14 +15,20 @@
|
|
|
15
15
|
"displayName": "HoneyBook",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "HoneyBook client-portal MCP for Claude — view wedding-vendor contracts and invoices via MCP",
|
|
18
|
-
"version": "0.1.
|
|
18
|
+
"version": "0.1.2",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Chall"
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/chrischall/honeybook-mcp",
|
|
23
23
|
"repository": "https://github.com/chrischall/honeybook-mcp",
|
|
24
24
|
"license": "MIT",
|
|
25
|
-
"keywords": [
|
|
25
|
+
"keywords": [
|
|
26
|
+
"honeybook",
|
|
27
|
+
"wedding",
|
|
28
|
+
"contracts",
|
|
29
|
+
"invoices",
|
|
30
|
+
"mcp"
|
|
31
|
+
],
|
|
26
32
|
"category": "productivity"
|
|
27
33
|
}
|
|
28
34
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "honeybook",
|
|
3
3
|
"displayName": "HoneyBook",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.2",
|
|
5
5
|
"description": "HoneyBook client-portal MCP for Claude — view wedding-vendor contracts and invoices via MCP",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Chall",
|
|
@@ -10,7 +10,13 @@
|
|
|
10
10
|
"homepage": "https://github.com/chrischall/honeybook-mcp",
|
|
11
11
|
"repository": "https://github.com/chrischall/honeybook-mcp",
|
|
12
12
|
"license": "MIT",
|
|
13
|
-
"keywords": [
|
|
13
|
+
"keywords": [
|
|
14
|
+
"honeybook",
|
|
15
|
+
"wedding",
|
|
16
|
+
"contracts",
|
|
17
|
+
"invoices",
|
|
18
|
+
"mcp"
|
|
19
|
+
],
|
|
14
20
|
"skills": "./skills/",
|
|
15
21
|
"mcp": "./.mcp.json"
|
|
16
22
|
}
|
package/.mcp.json
CHANGED
package/README.md
CHANGED
|
@@ -9,8 +9,8 @@ A [Model Context Protocol](https://modelcontextprotocol.io) server that connects
|
|
|
9
9
|
|
|
10
10
|
Ask Claude things like:
|
|
11
11
|
|
|
12
|
-
- *"
|
|
13
|
-
- *"Show me every unsigned contract
|
|
12
|
+
- *"Paste your magic link — I'll connect to your HoneyBook portal."*
|
|
13
|
+
- *"Show me every unsigned contract."*
|
|
14
14
|
- *"What invoices do I have due in the next month?"*
|
|
15
15
|
- *"Summarize the contract from Silk Veil Events."*
|
|
16
16
|
- *"Give me a deep link to sign the photographer's contract."*
|
|
@@ -20,7 +20,7 @@ Ask Claude things like:
|
|
|
20
20
|
- [Claude Desktop](https://claude.ai/download) or [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
|
21
21
|
- [Node.js](https://nodejs.org) 20.6 or later
|
|
22
22
|
- Magic-link emails from the wedding vendors that use HoneyBook
|
|
23
|
-
- [Google Chrome](https://www.google.com/chrome/) — used by `
|
|
23
|
+
- [Google Chrome](https://www.google.com/chrome/) — used by `use_magic_link` to capture each vendor's session
|
|
24
24
|
|
|
25
25
|
## Installation
|
|
26
26
|
|
|
@@ -31,7 +31,6 @@ git clone https://github.com/chrischall/honeybook-mcp.git
|
|
|
31
31
|
cd honeybook-mcp
|
|
32
32
|
npm install
|
|
33
33
|
npm run build
|
|
34
|
-
npm run auth # run once per vendor
|
|
35
34
|
```
|
|
36
35
|
|
|
37
36
|
Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
@@ -41,71 +40,51 @@ Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_deskt
|
|
|
41
40
|
"mcpServers": {
|
|
42
41
|
"honeybook": {
|
|
43
42
|
"command": "node",
|
|
44
|
-
"args": ["/absolute/path/to/honeybook-mcp/dist/bundle.js"]
|
|
45
|
-
"env": {
|
|
46
|
-
"HONEYBOOK_VENDORS": "silk_veil,photog",
|
|
47
|
-
"HB_SILK_VEIL_PORTAL_ORIGIN": "https://thesilkveileventsbyivy.hbportal.co",
|
|
48
|
-
"HB_SILK_VEIL_AUTH_TOKEN": "...",
|
|
49
|
-
"HB_SILK_VEIL_USER_ID": "...",
|
|
50
|
-
"HB_SILK_VEIL_TRUSTED_DEVICE": "...",
|
|
51
|
-
"HB_SILK_VEIL_FINGERPRINT": "...",
|
|
52
|
-
"HB_PHOTOG_PORTAL_ORIGIN": "https://photog.hbportal.co",
|
|
53
|
-
"HB_PHOTOG_AUTH_TOKEN": "..."
|
|
54
|
-
}
|
|
43
|
+
"args": ["/absolute/path/to/honeybook-mcp/dist/bundle.js"]
|
|
55
44
|
}
|
|
56
45
|
}
|
|
57
46
|
}
|
|
58
47
|
```
|
|
59
48
|
|
|
60
|
-
|
|
49
|
+
No environment variables are required.
|
|
61
50
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
**Per-vendor fields** (all captured by `npm run auth`):
|
|
51
|
+
## Sessions
|
|
65
52
|
|
|
66
|
-
|
|
67
|
-
|--------------------------------|---------------------------------------------------------------------|
|
|
68
|
-
| `HB_<SLUG>_LABEL` | Display name (from `HB_CURR_USER.company.company_name`) |
|
|
69
|
-
| `HB_<SLUG>_PORTAL_ORIGIN` | The vendor's branded portal origin (e.g. `https://acme.hbportal.co`) |
|
|
70
|
-
| `HB_<SLUG>_AUTH_TOKEN` | `localStorage.jStorage.HB_AUTH_TOKEN` |
|
|
71
|
-
| `HB_<SLUG>_USER_ID` | `localStorage.jStorage.HB_AUTH_USER_ID` |
|
|
72
|
-
| `HB_<SLUG>_TRUSTED_DEVICE` | `localStorage.jStorage.HB_TRUSTED_DEVICE` |
|
|
73
|
-
| `HB_<SLUG>_FINGERPRINT` | `hb-api-fingerprint` request header from the first API call |
|
|
53
|
+
HoneyBook has no public client-portal API. This MCP reuses the same auth state your browser has after clicking a vendor's magic link.
|
|
74
54
|
|
|
75
|
-
|
|
55
|
+
**Workflow:**
|
|
76
56
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
JSON.parse(localStorage.jStorage).HB_TRUSTED_DEVICE
|
|
81
|
-
```
|
|
57
|
+
1. Open a vendor's HoneyBook email and copy the magic-link URL.
|
|
58
|
+
2. In Claude, call `use_magic_link` with that URL. A headless Chrome window opens, follows the link, and captures the session automatically.
|
|
59
|
+
3. All other tools use the most-recently-activated session by default. Pass `origin` explicitly when multiple vendors are active.
|
|
82
60
|
|
|
83
|
-
|
|
61
|
+
Sessions are stored in memory and persisted to `~/.honeybook-mcp/sessions.json` (mode 0600) so they survive MCP restarts. Re-run `use_magic_link` when a session expires.
|
|
84
62
|
|
|
85
63
|
## Available tools
|
|
86
64
|
|
|
87
|
-
Tools that touch a vendor
|
|
65
|
+
Tools that touch a vendor accept an optional `origin` argument (e.g. `https://acme.hbportal.co`). When only one session is active it is inferred.
|
|
88
66
|
|
|
89
67
|
| Tool | What it does | Permission |
|
|
90
68
|
|------------------------|-----------------------------------------------------------|------------|
|
|
91
|
-
| `
|
|
69
|
+
| `use_magic_link` | Capture a session from a magic-link URL | Confirm |
|
|
70
|
+
| `list_active_sessions` | Show currently active portal sessions | Auto |
|
|
92
71
|
| `list_workspace_files` | Files from one vendor; filter by type | Auto |
|
|
93
72
|
| `get_workspace_file` | Full detail for one file | Auto |
|
|
94
73
|
| `get_workspace` | Workspace detail + status flags | Auto |
|
|
95
74
|
| `list_payment_methods` | Saved payment methods | Auto |
|
|
96
|
-
| `sign_contract` | Deep link to sign in portal (
|
|
97
|
-
| `pay_invoice` | Deep link to pay in portal (
|
|
75
|
+
| `sign_contract` | Deep link to sign in portal (requires `confirm:true`) | Confirm |
|
|
76
|
+
| `pay_invoice` | Deep link to pay in portal (requires `confirm:true`) | Confirm |
|
|
98
77
|
|
|
99
78
|
## Troubleshooting
|
|
100
79
|
|
|
101
|
-
- **"HoneyBook auth expired
|
|
102
|
-
- **"
|
|
103
|
-
- **"Google Chrome not found"**
|
|
80
|
+
- **"HoneyBook auth expired"** — re-run `use_magic_link` with a fresh magic-link URL from the vendor's email.
|
|
81
|
+
- **"No active HoneyBook session"** — call `use_magic_link` first.
|
|
82
|
+
- **"Google Chrome not found"** — set `PUPPETEER_EXECUTABLE_PATH` to your Chrome binary, or install Chrome at the default path.
|
|
104
83
|
|
|
105
84
|
## Security
|
|
106
85
|
|
|
107
|
-
-
|
|
108
|
-
-
|
|
86
|
+
- Sessions are captured locally — auth tokens never leave your machine
|
|
87
|
+
- `~/.honeybook-mcp/sessions.json` is written with mode 0600; directory with mode 0700
|
|
109
88
|
- Write tools (`sign_contract`, `pay_invoice`) require `confirm:true` and return portal deep links rather than signing/paying headlessly
|
|
110
89
|
|
|
111
90
|
## Development
|