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.
@@ -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
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "honeybook": {
4
+ "command": "node",
5
+ "args": ["${CLAUDE_PLUGIN_ROOT}/dist/bundle.js"],
6
+ "env": {
7
+ "HONEYBOOK_VENDORS": "${HONEYBOOK_VENDORS}"
8
+ }
9
+ }
10
+ }
11
+ }
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