honeybook-mcp 1.2.0 → 1.2.1
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 +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/dist/bundle.js +18 -5
- package/dist/index.js +1 -1
- package/dist/tools/payment_methods.js +26 -3
- package/package.json +2 -2
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "HoneyBook client-portal tools for Claude Code",
|
|
10
|
-
"version": "1.2.
|
|
10
|
+
"version": "1.2.1"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
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": "1.2.
|
|
18
|
+
"version": "1.2.1",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Chall"
|
|
21
21
|
},
|
package/README.md
CHANGED
|
@@ -133,7 +133,7 @@ Tools that touch a vendor accept an optional `origin` argument (e.g. `https://ac
|
|
|
133
133
|
| `list_workspace_files` | Files from one vendor; filter by type | Auto |
|
|
134
134
|
| `get_workspace_file` | Full detail for one file | Auto |
|
|
135
135
|
| `get_workspace` | Workspace detail + status flags | Auto |
|
|
136
|
-
| `list_payment_methods` | Saved payment methods
|
|
136
|
+
| `list_payment_methods` | Saved payment methods (brand, last 4, expiry) | Auto |
|
|
137
137
|
| `sign_contract` | Deep link to sign in portal (after you confirm) | Confirm |
|
|
138
138
|
| `pay_invoice` | Deep link to pay in portal (after you confirm) | Confirm |
|
|
139
139
|
| `list_projects` | Your projects with a vendor + their workspace ids | Auto |
|
package/dist/bundle.js
CHANGED
|
@@ -68246,7 +68246,7 @@ function bridgeErrorInfo(err) {
|
|
|
68246
68246
|
// package.json
|
|
68247
68247
|
var package_default = {
|
|
68248
68248
|
name: "honeybook-mcp",
|
|
68249
|
-
version: "1.2.
|
|
68249
|
+
version: "1.2.1",
|
|
68250
68250
|
mcpName: "io.github.chrischall/honeybook-mcp",
|
|
68251
68251
|
description: "HoneyBook client-portal MCP server for Claude",
|
|
68252
68252
|
author: "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -68294,7 +68294,7 @@ var package_default = {
|
|
|
68294
68294
|
"@fetchproxy/bootstrap": "^3.2.0",
|
|
68295
68295
|
"@fetchproxy/server": "^3.2.0",
|
|
68296
68296
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
68297
|
-
dotenv: "^
|
|
68297
|
+
dotenv: "^18.0.2",
|
|
68298
68298
|
zod: "^4.6.5"
|
|
68299
68299
|
},
|
|
68300
68300
|
devDependencies: {
|
|
@@ -69146,20 +69146,33 @@ function registerWorkspaceTools(server) {
|
|
|
69146
69146
|
}
|
|
69147
69147
|
|
|
69148
69148
|
// src/tools/payment_methods.ts
|
|
69149
|
+
var PAYMENT_METHOD_VIEWS = ["compact", "raw"];
|
|
69150
|
+
var CARD_ON_FILE_FIELDS = ["_id", "type", "brand", "last4", "exp_month", "exp_year", "is_default"];
|
|
69151
|
+
function summarizePaymentMethod(pm) {
|
|
69152
|
+
const out = {};
|
|
69153
|
+
for (const k of CARD_ON_FILE_FIELDS) {
|
|
69154
|
+
if (pm[k] !== void 0) out[k] = pm[k];
|
|
69155
|
+
}
|
|
69156
|
+
return out;
|
|
69157
|
+
}
|
|
69149
69158
|
async function listPaymentMethods(args) {
|
|
69159
|
+
const view = resolveView(args.view, PAYMENT_METHOD_VIEWS);
|
|
69150
69160
|
const client = await getActiveClient(args.origin);
|
|
69151
69161
|
const res = await client.request(
|
|
69152
69162
|
"GET",
|
|
69153
69163
|
apiPath`/api/v2/users/${client.scope.userId}/payment_methods`
|
|
69154
69164
|
);
|
|
69155
|
-
return
|
|
69165
|
+
return viewResult(view, view === "raw" ? res : (res ?? []).map(summarizePaymentMethod));
|
|
69156
69166
|
}
|
|
69157
69167
|
function registerPaymentMethodTools(server) {
|
|
69158
69168
|
server.registerTool(
|
|
69159
69169
|
"list_payment_methods",
|
|
69160
69170
|
{
|
|
69161
|
-
description:
|
|
69171
|
+
description: 'List saved payment methods for your client account with a vendor: id, type, brand, last 4, expiry and whether it is the default. Empty array if none are saved. view="raw" returns the untrimmed records (billing name/address and Stripe references).',
|
|
69162
69172
|
inputSchema: external_exports.object({
|
|
69173
|
+
view: viewParam(PAYMENT_METHOD_VIEWS, {
|
|
69174
|
+
note: 'compact returns only the card-on-file fields; "raw" returns the untrimmed records, including billing name/address and Stripe references.'
|
|
69175
|
+
}),
|
|
69163
69176
|
origin: schemaOrigin.describe(
|
|
69164
69177
|
"Portal origin (e.g. https://<vendor>.hbportal.co). Optional when only one session is active."
|
|
69165
69178
|
)
|
|
@@ -70152,7 +70165,7 @@ var __dirname = dirname2(fileURLToPath(import.meta.url));
|
|
|
70152
70165
|
await loadDotenvSafely({ path: join6(__dirname, "..", ".env"), override: false });
|
|
70153
70166
|
await runMcp({
|
|
70154
70167
|
name: "honeybook-mcp",
|
|
70155
|
-
version: "1.2.
|
|
70168
|
+
version: "1.2.1",
|
|
70156
70169
|
// x-release-please-version
|
|
70157
70170
|
tools: [
|
|
70158
70171
|
registerSessionTools,
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import { registerAttachmentTools } from './tools/attachments.js';
|
|
|
20
20
|
import { registerPaymentTools } from './tools/payments.js';
|
|
21
21
|
await runMcp({
|
|
22
22
|
name: 'honeybook-mcp',
|
|
23
|
-
version: '1.2.
|
|
23
|
+
version: '1.2.1', // x-release-please-version
|
|
24
24
|
tools: [
|
|
25
25
|
registerSessionTools,
|
|
26
26
|
registerFlowTools,
|
|
@@ -1,15 +1,38 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { resolveView, schemaOrigin, viewParam, viewResult } from '@chrischall/mcp-utils';
|
|
3
3
|
import { apiPath, getActiveClient } from '../client.js';
|
|
4
|
+
export const PAYMENT_METHOD_VIEWS = ['compact', 'raw'];
|
|
5
|
+
/**
|
|
6
|
+
* The fields that answer "which card/account is on file". HoneyBook's
|
|
7
|
+
* payment-method records also carry the billing name and address and Stripe
|
|
8
|
+
* customer / payment-method / connected-account references — none of which
|
|
9
|
+
* that question needs, so they stay behind view="raw". A field the record
|
|
10
|
+
* does not carry is omitted rather than emitted as null.
|
|
11
|
+
*/
|
|
12
|
+
const CARD_ON_FILE_FIELDS = ['_id', 'type', 'brand', 'last4', 'exp_month', 'exp_year', 'is_default'];
|
|
13
|
+
function summarizePaymentMethod(pm) {
|
|
14
|
+
const out = {};
|
|
15
|
+
for (const k of CARD_ON_FILE_FIELDS) {
|
|
16
|
+
if (pm[k] !== undefined)
|
|
17
|
+
out[k] = pm[k];
|
|
18
|
+
}
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
4
21
|
export async function listPaymentMethods(args) {
|
|
22
|
+
const view = resolveView(args.view, PAYMENT_METHOD_VIEWS);
|
|
5
23
|
const client = await getActiveClient(args.origin);
|
|
6
24
|
const res = await client.request('GET', apiPath `/api/v2/users/${client.scope.userId}/payment_methods`);
|
|
7
|
-
return
|
|
25
|
+
return viewResult(view, view === 'raw' ? res : (res ?? []).map(summarizePaymentMethod));
|
|
8
26
|
}
|
|
9
27
|
export function registerPaymentMethodTools(server) {
|
|
10
28
|
server.registerTool('list_payment_methods', {
|
|
11
|
-
description: 'List saved payment methods for your client account with a vendor
|
|
29
|
+
description: 'List saved payment methods for your client account with a vendor: id, type, brand, last 4, expiry ' +
|
|
30
|
+
'and whether it is the default. Empty array if none are saved. view="raw" returns the untrimmed ' +
|
|
31
|
+
'records (billing name/address and Stripe references).',
|
|
12
32
|
inputSchema: z.object({
|
|
33
|
+
view: viewParam(PAYMENT_METHOD_VIEWS, {
|
|
34
|
+
note: 'compact returns only the card-on-file fields; "raw" returns the untrimmed records, including billing name/address and Stripe references.',
|
|
35
|
+
}),
|
|
13
36
|
origin: schemaOrigin.describe('Portal origin (e.g. https://<vendor>.hbportal.co). Optional when only one session is active.'),
|
|
14
37
|
}),
|
|
15
38
|
annotations: { readOnlyHint: true },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "honeybook-mcp",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"mcpName": "io.github.chrischall/honeybook-mcp",
|
|
5
5
|
"description": "HoneyBook client-portal MCP server for Claude",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@fetchproxy/bootstrap": "^3.2.0",
|
|
49
49
|
"@fetchproxy/server": "^3.2.0",
|
|
50
50
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
51
|
-
"dotenv": "^
|
|
51
|
+
"dotenv": "^18.0.2",
|
|
52
52
|
"zod": "^4.6.5"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/chrischall/honeybook-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "1.2.
|
|
9
|
+
"version": "1.2.1",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "honeybook-mcp",
|
|
14
|
-
"version": "1.2.
|
|
14
|
+
"version": "1.2.1",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|