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.
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "metadata": {
9
9
  "description": "HoneyBook client-portal tools for Claude Code",
10
- "version": "1.2.0"
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.0",
18
+ "version": "1.2.1",
19
19
  "author": {
20
20
  "name": "Chris Chall"
21
21
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "honeybook",
3
3
  "displayName": "HoneyBook",
4
- "version": "1.2.0",
4
+ "version": "1.2.1",
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",
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 | Auto |
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.0",
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: "^17.4.2",
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 minifiedResult(res);
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: "List saved payment methods for your client account with a vendor. Empty array if none are saved.",
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.0",
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.0', // x-release-please-version
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 { minifiedResult, schemaOrigin } from '@chrischall/mcp-utils';
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 minifiedResult(res);
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. Empty array if none are saved.',
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.0",
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": "^17.4.2",
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.0",
9
+ "version": "1.2.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "honeybook-mcp",
14
- "version": "1.2.0",
14
+ "version": "1.2.1",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },