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.
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "metadata": {
9
9
  "description": "HoneyBook client-portal tools for Claude Code",
10
- "version": "0.1.0"
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.0",
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": ["honeybook", "wedding", "contracts", "invoices", "mcp"],
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.0",
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": ["honeybook", "wedding", "contracts", "invoices", "mcp"],
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
@@ -2,10 +2,7 @@
2
2
  "mcpServers": {
3
3
  "honeybook": {
4
4
  "command": "node",
5
- "args": ["${CLAUDE_PLUGIN_ROOT}/dist/bundle.js"],
6
- "env": {
7
- "HONEYBOOK_VENDORS": "${HONEYBOOK_VENDORS}"
8
- }
5
+ "args": ["${CLAUDE_PLUGIN_ROOT}/dist/bundle.js"]
9
6
  }
10
7
  }
11
8
  }
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
- - *"List all the HoneyBook vendors I've connected."*
13
- - *"Show me every unsigned contract across my vendors."*
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 `npm run auth` to capture each vendor's session
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
- ## Credentials
49
+ No environment variables are required.
61
50
 
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`):
51
+ ## Sessions
65
52
 
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 |
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
- If you prefer to capture credentials manually, open the vendor's magic-link URL in Chrome, then in the DevTools console:
55
+ **Workflow:**
76
56
 
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
- ```
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
- For the `FINGERPRINT`, open the Network tab, click any `api.honeybook.com/api/v2/…` request, and copy the `hb-api-fingerprint` request header.
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 take an optional `vendor` argument. When you've only configured one vendor, it's inferred.
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
- | `list_vendors` | Connected vendors from `.env` | Auto |
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 (v1; requires `confirm:true`) | Confirm |
97
- | `pay_invoice` | Deep link to pay in portal (v1; requires `confirm:true`) | Confirm |
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 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.
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
- - 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`
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