honeybook-mcp 0.1.0
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 +29 -0
- package/.claude-plugin/plugin.json +16 -0
- package/.mcp.json +11 -0
- package/README.md +120 -0
- package/dist/bundle.js +21395 -0
- package/dist/client.js +148 -0
- package/dist/index.js +30 -0
- package/dist/tools/contracts.js +45 -0
- package/dist/tools/invoices.js +44 -0
- package/dist/tools/payment_methods.js +16 -0
- package/dist/tools/vendors.js +12 -0
- package/dist/tools/workspace_files.js +41 -0
- package/dist/tools/workspaces.js +17 -0
- package/dist/types.js +4 -0
- package/package.json +55 -0
- package/server.json +27 -0
- package/skills/honeybook/SKILL.md +31 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
|
+
"name": "chrischall",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "Chris Chall",
|
|
6
|
+
"email": "chris.c.hall@gmail.com"
|
|
7
|
+
},
|
|
8
|
+
"metadata": {
|
|
9
|
+
"description": "HoneyBook client-portal tools for Claude Code",
|
|
10
|
+
"version": "0.1.0"
|
|
11
|
+
},
|
|
12
|
+
"plugins": [
|
|
13
|
+
{
|
|
14
|
+
"name": "honeybook",
|
|
15
|
+
"displayName": "HoneyBook",
|
|
16
|
+
"source": "./",
|
|
17
|
+
"description": "HoneyBook client-portal MCP for Claude — view wedding-vendor contracts and invoices via MCP",
|
|
18
|
+
"version": "0.1.0",
|
|
19
|
+
"author": {
|
|
20
|
+
"name": "Chris Chall"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://github.com/chrischall/honeybook-mcp",
|
|
23
|
+
"repository": "https://github.com/chrischall/honeybook-mcp",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"keywords": ["honeybook", "wedding", "contracts", "invoices", "mcp"],
|
|
26
|
+
"category": "productivity"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "honeybook",
|
|
3
|
+
"displayName": "HoneyBook",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "HoneyBook client-portal MCP for Claude — view wedding-vendor contracts and invoices via MCP",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Chris Chall",
|
|
8
|
+
"email": "chris.c.hall@gmail.com"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/chrischall/honeybook-mcp",
|
|
11
|
+
"repository": "https://github.com/chrischall/honeybook-mcp",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": ["honeybook", "wedding", "contracts", "invoices", "mcp"],
|
|
14
|
+
"skills": "./skills/",
|
|
15
|
+
"mcp": "./.mcp.json"
|
|
16
|
+
}
|
package/.mcp.json
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# HoneyBook MCP
|
|
2
|
+
|
|
3
|
+
A [Model Context Protocol](https://modelcontextprotocol.io) server that connects Claude to the [HoneyBook](https://www.honeybook.com) client portal, giving you natural-language access to contracts and invoices sent by your wedding vendors.
|
|
4
|
+
|
|
5
|
+
> [!WARNING]
|
|
6
|
+
> **AI-developed project.** This codebase was built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). No human has audited the implementation. Review all code and tool permissions before use.
|
|
7
|
+
|
|
8
|
+
## What you can do
|
|
9
|
+
|
|
10
|
+
Ask Claude things like:
|
|
11
|
+
|
|
12
|
+
- *"List all the HoneyBook vendors I've connected."*
|
|
13
|
+
- *"Show me every unsigned contract across my vendors."*
|
|
14
|
+
- *"What invoices do I have due in the next month?"*
|
|
15
|
+
- *"Summarize the contract from Silk Veil Events."*
|
|
16
|
+
- *"Give me a deep link to sign the photographer's contract."*
|
|
17
|
+
|
|
18
|
+
## Requirements
|
|
19
|
+
|
|
20
|
+
- [Claude Desktop](https://claude.ai/download) or [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
|
21
|
+
- [Node.js](https://nodejs.org) 20.6 or later
|
|
22
|
+
- Magic-link emails from the wedding vendors that use HoneyBook
|
|
23
|
+
- [Google Chrome](https://www.google.com/chrome/) — used by `npm run auth` to capture each vendor's session
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
### From source
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
git clone https://github.com/chrischall/honeybook-mcp.git
|
|
31
|
+
cd honeybook-mcp
|
|
32
|
+
npm install
|
|
33
|
+
npm run build
|
|
34
|
+
npm run auth # run once per vendor
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{
|
|
41
|
+
"mcpServers": {
|
|
42
|
+
"honeybook": {
|
|
43
|
+
"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
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Credentials
|
|
61
|
+
|
|
62
|
+
HoneyBook has no public client-portal API. This MCP reuses the same auth state your browser has after clicking a vendor's magic link.
|
|
63
|
+
|
|
64
|
+
**Per-vendor fields** (all captured by `npm run auth`):
|
|
65
|
+
|
|
66
|
+
| Env var | Source |
|
|
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 |
|
|
74
|
+
|
|
75
|
+
If you prefer to capture credentials manually, open the vendor's magic-link URL in Chrome, then in the DevTools console:
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
JSON.parse(localStorage.jStorage).HB_AUTH_TOKEN // → auth token
|
|
79
|
+
JSON.parse(localStorage.jStorage).HB_AUTH_USER_ID
|
|
80
|
+
JSON.parse(localStorage.jStorage).HB_TRUSTED_DEVICE
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For the `FINGERPRINT`, open the Network tab, click any `api.honeybook.com/api/v2/…` request, and copy the `hb-api-fingerprint` request header.
|
|
84
|
+
|
|
85
|
+
## Available tools
|
|
86
|
+
|
|
87
|
+
Tools that touch a vendor take an optional `vendor` argument. When you've only configured one vendor, it's inferred.
|
|
88
|
+
|
|
89
|
+
| Tool | What it does | Permission |
|
|
90
|
+
|------------------------|-----------------------------------------------------------|------------|
|
|
91
|
+
| `list_vendors` | Connected vendors from `.env` | Auto |
|
|
92
|
+
| `list_workspace_files` | Files from one vendor; filter by type | Auto |
|
|
93
|
+
| `get_workspace_file` | Full detail for one file | Auto |
|
|
94
|
+
| `get_workspace` | Workspace detail + status flags | Auto |
|
|
95
|
+
| `list_payment_methods` | Saved payment methods | Auto |
|
|
96
|
+
| `sign_contract` | Deep link to sign in portal (v1; requires `confirm:true`) | Confirm |
|
|
97
|
+
| `pay_invoice` | Deep link to pay in portal (v1; requires `confirm:true`) | Confirm |
|
|
98
|
+
|
|
99
|
+
## Troubleshooting
|
|
100
|
+
|
|
101
|
+
- **"HoneyBook auth expired for vendor X"** — re-run `npm run auth` for that vendor.
|
|
102
|
+
- **"Multiple vendors configured. Please specify the `vendor` argument."** — pass `vendor` explicitly in your Claude prompt.
|
|
103
|
+
- **"Google Chrome not found"** during `npm run auth` — set `PUPPETEER_EXECUTABLE_PATH` to your Chrome binary.
|
|
104
|
+
|
|
105
|
+
## Security
|
|
106
|
+
|
|
107
|
+
- Per-vendor tokens live only in your local `.env` or Claude Desktop config
|
|
108
|
+
- `.env` is written with `chmod 600`; Chrome profile directory with `chmod 700`
|
|
109
|
+
- Write tools (`sign_contract`, `pay_invoice`) require `confirm:true` and return portal deep links rather than signing/paying headlessly
|
|
110
|
+
|
|
111
|
+
## Development
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm test # run tests
|
|
115
|
+
npm run build # tsc + esbuild bundle
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## License
|
|
119
|
+
|
|
120
|
+
MIT
|