honeybook-mcp 0.1.4 → 0.1.6

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.4"
10
+ "version": "0.1.6"
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": "0.1.4",
18
+ "version": "0.1.6",
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": "0.1.4",
4
+ "version": "0.1.6",
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/dist/bundle.js CHANGED
@@ -21345,6 +21345,32 @@ function registerSessionTools(server2) {
21345
21345
  var FILE_TYPES = ["agreement", "invoice", "brochure", "proposal"];
21346
21346
 
21347
21347
  // src/tools/workspace_files.ts
21348
+ var HEAVY_COMPANY_FIELDS = [
21349
+ "vendor_emails",
21350
+ "workflow_automation_infos",
21351
+ "brochure_templates",
21352
+ "questionnaires",
21353
+ "lead_sources",
21354
+ "proposals",
21355
+ "agreements",
21356
+ "invoices",
21357
+ "vendor_packages",
21358
+ "contact_forms",
21359
+ "stripe_persons",
21360
+ "user_pipeline_stages",
21361
+ "project_types",
21362
+ "company_assets"
21363
+ ];
21364
+ function pruneWorkspaceFile(file) {
21365
+ if (!file || typeof file !== "object") return file;
21366
+ const company = file.company;
21367
+ if (!company) return file;
21368
+ const pruned = { ...file, company: { ...company } };
21369
+ for (const key of HEAVY_COMPANY_FIELDS) {
21370
+ delete pruned.company[key];
21371
+ }
21372
+ return pruned;
21373
+ }
21348
21374
  async function listWorkspaceFiles(args) {
21349
21375
  const client = await getActiveClient(args.origin);
21350
21376
  const res = await client.request(
@@ -21361,7 +21387,8 @@ async function getWorkspaceFile(args) {
21361
21387
  "GET",
21362
21388
  `/api/v2/workspace_files/${args.file_id}`
21363
21389
  );
21364
- return { content: [{ type: "text", text: JSON.stringify(res, null, 2) }] };
21390
+ const body = args.include_raw ? res : pruneWorkspaceFile(res);
21391
+ return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }] };
21365
21392
  }
21366
21393
  function registerWorkspaceFileTools(server2) {
21367
21394
  server2.registerTool(
@@ -21381,11 +21408,14 @@ function registerWorkspaceFileTools(server2) {
21381
21408
  server2.registerTool(
21382
21409
  "get_workspace_file",
21383
21410
  {
21384
- description: "Get full detail for one workspace file by its _id.",
21411
+ description: "Get full detail for one workspace file by its _id. The vendor-side admin blob inside `company` (email templates, brochure templates, etc., which can be >1 MB) is stripped by default; pass include_raw:true to keep it.",
21385
21412
  inputSchema: {
21386
21413
  file_id: external_exports.string().describe("The file _id from list_workspace_files."),
21387
21414
  origin: external_exports.string().optional().describe(
21388
21415
  "Portal origin (e.g. https://<vendor>.hbportal.co). Optional when only one session is active."
21416
+ ),
21417
+ include_raw: external_exports.boolean().optional().describe(
21418
+ "If true, return the full unpruned response. Default false \u2014 strips heavy vendor-side fields under `company`."
21389
21419
  )
21390
21420
  },
21391
21421
  annotations: { readOnlyHint: true }
@@ -21567,7 +21597,7 @@ try {
21567
21597
  }
21568
21598
  var server = new McpServer({
21569
21599
  name: "honeybook-mcp",
21570
- version: "0.1.4"
21600
+ version: "0.1.6"
21571
21601
  });
21572
21602
  registerSessionTools(server);
21573
21603
  registerWorkspaceFileTools(server);
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import { registerContractTools } from './tools/contracts.js';
18
18
  import { registerInvoiceTools } from './tools/invoices.js';
19
19
  const server = new McpServer({
20
20
  name: 'honeybook-mcp',
21
- version: '0.1.4',
21
+ version: '0.1.6',
22
22
  });
23
23
  registerSessionTools(server);
24
24
  registerWorkspaceFileTools(server);
@@ -1,6 +1,39 @@
1
1
  import { z } from 'zod';
2
2
  import { getActiveClient } from '../client.js';
3
3
  import { FILE_TYPES } from '../types.js';
4
+ /**
5
+ * Vendor-side sub-fields on `company` that a CLIENT never needs but that
6
+ * balloon the response (observed: `vendor_emails` alone was ~1.3 MB on a
7
+ * single real proposal). Stripped by default; pass include_raw=true to keep.
8
+ */
9
+ const HEAVY_COMPANY_FIELDS = [
10
+ 'vendor_emails',
11
+ 'workflow_automation_infos',
12
+ 'brochure_templates',
13
+ 'questionnaires',
14
+ 'lead_sources',
15
+ 'proposals',
16
+ 'agreements',
17
+ 'invoices',
18
+ 'vendor_packages',
19
+ 'contact_forms',
20
+ 'stripe_persons',
21
+ 'user_pipeline_stages',
22
+ 'project_types',
23
+ 'company_assets',
24
+ ];
25
+ export function pruneWorkspaceFile(file) {
26
+ if (!file || typeof file !== 'object')
27
+ return file;
28
+ const company = file.company;
29
+ if (!company)
30
+ return file;
31
+ const pruned = { ...file, company: { ...company } };
32
+ for (const key of HEAVY_COMPANY_FIELDS) {
33
+ delete pruned.company[key];
34
+ }
35
+ return pruned;
36
+ }
4
37
  export async function listWorkspaceFiles(args) {
5
38
  const client = await getActiveClient(args.origin);
6
39
  const res = await client.request('GET', `/api/v2/users/${client.scope.userId}/workspace_files`);
@@ -15,7 +48,8 @@ export async function listWorkspaceFiles(args) {
15
48
  export async function getWorkspaceFile(args) {
16
49
  const client = await getActiveClient(args.origin);
17
50
  const res = await client.request('GET', `/api/v2/workspace_files/${args.file_id}`);
18
- return { content: [{ type: 'text', text: JSON.stringify(res, null, 2) }] };
51
+ const body = args.include_raw ? res : pruneWorkspaceFile(res);
52
+ return { content: [{ type: 'text', text: JSON.stringify(body, null, 2) }] };
19
53
  }
20
54
  export function registerWorkspaceFileTools(server) {
21
55
  server.registerTool('list_workspace_files', {
@@ -33,13 +67,17 @@ export function registerWorkspaceFileTools(server) {
33
67
  annotations: { readOnlyHint: true },
34
68
  }, listWorkspaceFiles);
35
69
  server.registerTool('get_workspace_file', {
36
- description: 'Get full detail for one workspace file by its _id.',
70
+ description: 'Get full detail for one workspace file by its _id. The vendor-side admin blob inside `company` (email templates, brochure templates, etc., which can be >1 MB) is stripped by default; pass include_raw:true to keep it.',
37
71
  inputSchema: {
38
72
  file_id: z.string().describe('The file _id from list_workspace_files.'),
39
73
  origin: z
40
74
  .string()
41
75
  .optional()
42
76
  .describe('Portal origin (e.g. https://<vendor>.hbportal.co). Optional when only one session is active.'),
77
+ include_raw: z
78
+ .boolean()
79
+ .optional()
80
+ .describe('If true, return the full unpruned response. Default false — strips heavy vendor-side fields under `company`.'),
43
81
  },
44
82
  annotations: { readOnlyHint: true },
45
83
  }, getWorkspaceFile);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "honeybook-mcp",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
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>",
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": "0.1.4",
9
+ "version": "0.1.6",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "honeybook-mcp",
14
- "version": "0.1.4",
14
+ "version": "0.1.6",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },