basecamp-mcp 1.2.1 → 1.3.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.
package/README.md CHANGED
@@ -1,6 +1,22 @@
1
1
  # Basecamp MCP Server
2
2
 
3
- Model Context Protocol (MCP) server for Basecamp integration. Enables LLMs to interact with Basecamp projects, messages, todos, comments, people, and kanban boards.
3
+ [![npm version](https://img.shields.io/npm/v/basecamp-mcp.svg)](https://www.npmjs.com/package/basecamp-mcp)
4
+ [![npm downloads](https://img.shields.io/npm/dm/basecamp-mcp.svg)](https://www.npmjs.com/package/basecamp-mcp)
5
+ [![license](https://img.shields.io/npm/l/basecamp-mcp.svg)](LICENSE)
6
+
7
+ Model Context Protocol (MCP) server for Basecamp. Gives LLMs tools for projects, messages, todos, comments, people, kanban boards, docs & files, check-ins, and campfire chat.
8
+
9
+ 48 tools, published on npm and installable with one `npx` command: no cloning, no virtualenv, no manual OAuth script to run.
10
+
11
+ ## Why this server
12
+
13
+ - **Zero-install setup:** `npx basecamp-mcp@latest` runs the server directly from npm. Authentication is one MCP tool call (`basecamp_login`) that opens a browser; there's no separate script to clone and run by hand.
14
+ - **Full Docs & Files support:** read and write vaults (folders), documents, and uploads, and download inline `<bc-attachment>` blobs embedded in rich text. Images come back inline, text files as text, everything else saved to disk. Upload a local file or a remote URL to get the `sgid` that embeds it in rich text.
15
+ - **Check-ins (Q&A) support:** list automatic check-in questions and their answers, or post new answers programmatically.
16
+ - **Granular content editing:** messages, comments, documents, and kanban cards all support append, prepend, and search-replace operations, not just full-text replacement, so an LLM can make a small edit without resending the whole document.
17
+ - **Cross-project activity feed:** `basecamp_list_recordings` searches across every project by type, person, date range, and free text in one call, with automatic response-size management and pagination.
18
+ - **Type-safe end to end:** written in TypeScript with Zod schemas validating every tool input.
19
+ - **Tested against the real API:** the test suite exercises every tool category (messages, todos, kanban, comments, docs/files, check-ins, campfires, activity) against a live Basecamp account, not mocks.
4
20
 
5
21
  ## Getting Started
6
22
 
@@ -49,7 +65,7 @@ code --add-mcp '{"name":"basecamp","command":"npx","args":["-y", "basecamp-mcp@l
49
65
 
50
66
  Once the MCP server is running, authenticate using the built-in login tool:
51
67
 
52
- 1. Call `basecamp_login` — a browser window will open for Basecamp authorization
68
+ 1. Call `basecamp_login` to open a browser window for Basecamp authorization
53
69
  2. Authorize the app in your browser
54
70
  3. If you have multiple Basecamp accounts, call `basecamp_login` again with the desired `account_id`
55
71
  4. Done! Credentials are saved to `~/.config/basecamp-mcp/credentials.json`
@@ -85,6 +101,7 @@ The server requires these environment variables:
85
101
  - `basecamp_get_todoset` - Get todo set container with all todo lists
86
102
  - `basecamp_list_todos` - List todos in a list with status filtering (active/archived)
87
103
  - `basecamp_create_todo` - Create new todo with optional description
104
+ - `basecamp_update_todo` - Update a todo's title, description, due date, or assignees
88
105
  - `basecamp_complete_todo` - Mark todo as complete
89
106
  - `basecamp_uncomplete_todo` - Mark todo as incomplete
90
107
 
@@ -110,6 +127,28 @@ The server requires these environment variables:
110
127
  - `basecamp_list_recordings` - Browse recent activity globally or across specific projects, with filtering by type, date range, person, and text search. All filters support multiple values for OR-matching (e.g., multiple project IDs, person IDs, types, or search terms)
111
128
  - `basecamp_list_campfire_messages` - Browse chat messages from Campfires with filtering by campfire, person, text content, and date range. All filters support multiple values for OR-matching
112
129
 
130
+ ### Docs & Files
131
+ - `basecamp_list_vaults` - List sub-vaults (folders) under a parent vault
132
+ - `basecamp_get_vault` - Get a vault's details, including document/upload/sub-vault counts
133
+ - `basecamp_create_vault` - Create a new vault (folder)
134
+ - `basecamp_update_vault` - Rename a vault
135
+ - `basecamp_list_documents` - List documents in a vault, with optional title/content filtering
136
+ - `basecamp_get_document` - Get a document's full HTML content
137
+ - `basecamp_create_document` - Create a new document (active or draft)
138
+ - `basecamp_update_document` - Update a document with advanced content editing (supports full replacement, append, prepend, search/replace)
139
+ - `basecamp_list_uploads` - List files uploaded to a vault
140
+ - `basecamp_get_upload` - Retrieve an uploaded file: images are returned inline, text files as text, other binary formats saved to disk
141
+ - `basecamp_download_blob` - Download an inline `<bc-attachment>` attachment referenced in document/message/comment HTML content
142
+ - `basecamp_create_attachment` - Upload a local file or a remote URL and get the `attachable_sgid` to embed it with `<bc-attachment>`
143
+
144
+ ### Check-ins (Q&A)
145
+ - `basecamp_get_questionnaire` - Get a project's check-ins container
146
+ - `basecamp_list_questions` - List automatic check-in questions with schedule and answer counts
147
+ - `basecamp_get_question` - Get a single check-in question
148
+ - `basecamp_list_answers` - List answers to a check-in question
149
+ - `basecamp_get_answer` - Get a single check-in answer
150
+ - `basecamp_create_answer` - Post a new answer to a check-in question
151
+
113
152
  ## Development
114
153
 
115
154
  ```bash
@@ -122,6 +161,9 @@ npx tsc --noEmit
122
161
  # Build
123
162
  npm run build
124
163
 
164
+ # Run the live test suite (requires a real, authenticated Basecamp account)
165
+ npm test
166
+
125
167
  # Clean build artifacts
126
168
  npm run clean
127
169
  ```
@@ -7,6 +7,7 @@
7
7
  * - Documents are rich-text documents stored inside vaults.
8
8
  * - Uploads are files stored inside vaults.
9
9
  * - Blobs are inline attachments embedded in rich text via <bc-attachment>.
10
+ * - Attachments are files uploaded to get an sgid, to embed in rich text.
10
11
  */
11
12
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
12
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,OAAO,CAAC,UAAU,CAAC,CAGrB;AAmBD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6sB1D"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,OAAO,CAAC,UAAU,CAAC,CAGrB;AAmBD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAm0B1D"}
@@ -7,10 +7,11 @@
7
7
  * - Documents are rich-text documents stored inside vaults.
8
8
  * - Uploads are files stored inside vaults.
9
9
  * - Blobs are inline attachments embedded in rich text via <bc-attachment>.
10
+ * - Attachments are files uploaded to get an sgid, to embed in rich text.
10
11
  */
11
- import { mkdirSync, writeFileSync } from "node:fs";
12
+ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
12
13
  import { tmpdir } from "node:os";
13
- import { join } from "node:path";
14
+ import { basename, join } from "node:path";
14
15
  import { z } from "zod";
15
16
  import { BasecampIdSchema } from "../schemas/common.js";
16
17
  import { initializeBasecampClient } from "../utils/auth.js";
@@ -655,5 +656,88 @@ export function registerFilesTools(server) {
655
656
  };
656
657
  }
657
658
  });
659
+ // ===== ATTACHMENTS (uploads for embedding in rich text) =====
660
+ // basecamp_create_attachment
661
+ server.registerTool("basecamp_create_attachment", {
662
+ title: "Create Basecamp Attachment",
663
+ description: 'Upload a file to Basecamp and get the attachable_sgid needed to embed it in rich text. Use this when you want to show an image or a video in a message, comment, document, card or todo, and that file is not in Basecamp yet — for example an image at an external URL, or a screenshot on disk. Give either file_path or url. The returned sgid goes into a <bc-attachment sgid="..." caption="..."></bc-attachment> tag. An sgid is tied to this account and does not expire, but it is only shown once here, so embed it in the same session.',
664
+ inputSchema: {
665
+ file_path: z
666
+ .string()
667
+ .optional()
668
+ .describe("Absolute path of a local file to upload. Give either this or url."),
669
+ url: z
670
+ .string()
671
+ .optional()
672
+ .describe("URL of a file to download and then upload to Basecamp. The URL must be publicly readable. Give either this or file_path."),
673
+ name: z
674
+ .string()
675
+ .optional()
676
+ .describe('Filename to store in Basecamp, with its extension (e.g. "before-after.png"). Defaults to the last part of file_path or url. Basecamp shows this name as the caption when the attachment has no caption attribute.'),
677
+ content_type: z
678
+ .string()
679
+ .optional()
680
+ .describe('MIME type of the file (e.g. "image/png"). Defaults to a type inferred from the filename.'),
681
+ },
682
+ annotations: {
683
+ readOnlyHint: false,
684
+ destructiveHint: false,
685
+ idempotentHint: false,
686
+ openWorldHint: true,
687
+ },
688
+ }, async (params) => {
689
+ try {
690
+ if (params.file_path && params.url) {
691
+ throw new Error("Give file_path or url, but not both.");
692
+ }
693
+ if (!params.file_path && !params.url) {
694
+ throw new Error("Give either file_path or url.");
695
+ }
696
+ let bytes;
697
+ let sourceName;
698
+ if (params.file_path) {
699
+ bytes = new Uint8Array(readFileSync(params.file_path));
700
+ sourceName = basename(params.file_path);
701
+ }
702
+ else {
703
+ const url = params.url;
704
+ const response = await fetch(url);
705
+ if (!response.ok) {
706
+ throw new Error(`Could not download ${url}: ${response.status} ${response.statusText}`);
707
+ }
708
+ bytes = new Uint8Array(await response.arrayBuffer());
709
+ sourceName = basename(new URL(url).pathname) || "attachment";
710
+ }
711
+ if (bytes.byteLength === 0) {
712
+ throw new Error("The file is empty, so there is nothing to upload.");
713
+ }
714
+ const name = params.name || sourceName;
715
+ const contentType = params.content_type || inferContentType(name);
716
+ const client = await initializeBasecampClient();
717
+ const result = await client.attachments.create(bytes, contentType, name);
718
+ if (!result.attachable_sgid) {
719
+ throw new Error("Basecamp accepted the upload but returned no attachable_sgid.");
720
+ }
721
+ return {
722
+ content: [
723
+ {
724
+ type: "text",
725
+ text: JSON.stringify({
726
+ attachable_sgid: result.attachable_sgid,
727
+ name,
728
+ content_type: contentType,
729
+ size_bytes: bytes.byteLength,
730
+ usage: `<bc-attachment sgid="${result.attachable_sgid}" caption="Describe the image here"></bc-attachment>`,
731
+ }, null, 2),
732
+ },
733
+ ],
734
+ };
735
+ }
736
+ catch (error) {
737
+ return {
738
+ content: [{ type: "text", text: handleBasecampError(error) }],
739
+ };
740
+ }
741
+ });
658
742
  }
659
743
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Used by messages, comments, and other content-based tools
4
4
  */
5
5
  import { z } from "zod";
6
- export declare const htmlRules = "\n\nHTML rules for content:\n\n* Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment.\n* Use <p> for paragraphs. Use <p><br></p> for empty line spacing between paragraphs.\n* Headings: use <h2>, <h3>, <h4> as appropriate.\n* Inline code: <code>text</code>. Preformatted blocks: <pre>text</pre>.\n* Ordered lists: <ol><li>...</li></ol>. Unordered: <ul><li>...</li></ul>.\n* Tables: <table><tbody><tr><th>Heading</th>...</tr><tr><td>Cell</td>...</tr></tbody></table>\n* To mention people: <bc-attachment sgid=\"{ person.attachable_sgid }\" content-type=\"application/vnd.basecamp.mention\"></bc-attachment>\n* Single image: <bc-attachment sgid=\"{ attachment.attachable_sgid }\"></bc-attachment>\n* Image gallery: wrap multiple <bc-attachment sgid=\"...\" presentation=\"gallery\"> in a <div>.\n* Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) \u2014 you never need to write those.\n* To consume less tokens, existing <bc-attachment> tags can be rewritten keeping only: sgid, presentation, caption. For mentions also keep content-type=\"application/vnd.basecamp.mention\". Drop everything else including inner HTML.\n* Background highlights: <mark style=\"background-color: var(--highlight-bg-N);\">...</mark>\n* Text color highlights: <span style=\"color: var(--highlight-N);\">...</span>\n* For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).\n";
6
+ export declare const htmlRules = "\n\nHTML rules for content:\n\n* Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment.\n* Wrap every paragraph in <p>...</p>, and put <p><br></p> between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a <p> on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs.\n* Headings: use <h2>, <h3>, <h4> as appropriate.\n* Inline code: <code>text</code>. Preformatted blocks: <pre>text</pre>.\n* Ordered lists: <ol><li>...</li></ol>. Unordered: <ul><li>...</li></ul>.\n* Tables: <table><tbody><tr><th>Heading</th>...</tr><tr><td>Cell</td>...</tr></tbody></table>\n* To mention people: <bc-attachment sgid=\"{ person.attachable_sgid }\" content-type=\"application/vnd.basecamp.mention\"></bc-attachment>\n* Single image: <bc-attachment sgid=\"{ attachment.attachable_sgid }\"></bc-attachment>\n* Image gallery: wrap multiple <bc-attachment sgid=\"...\" presentation=\"gallery\"> in a <div>.\n* A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no <img> tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link.\n* Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) \u2014 you never need to write those.\n* When you see an existing, already-enriched <bc-attachment> tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) \u2014 you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings.\n* Background highlights: <mark style=\"background-color: var(--highlight-bg-N);\">...</mark>\n* Text color highlights: <span style=\"color: var(--highlight-N);\">...</span>\n* For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).\n";
7
7
  /**
8
8
  * Shared Zod schema for content operation fields
9
9
  * These fields can be composed into tool-specific schemas
@@ -35,6 +35,21 @@ export interface ContentOperationParams {
35
35
  replace: string;
36
36
  }>;
37
37
  }
38
+ /**
39
+ * Strip Basecamp's server-side enrichment out of any <bc-attachment> tag in
40
+ * `html`, collapsing it back down to its minimal, canonical form (sgid /
41
+ * presentation / caption / content-type only, no inner HTML).
42
+ *
43
+ * Content fetched back from Basecamp (via a GET) has already been enriched:
44
+ * each <bc-attachment> tag gets a full <figure><img/><figcaption>...
45
+ * injected inside it. Running search_replace / append / prepend against that
46
+ * enriched HTML is fragile — the enriched markup is large, can shift between
47
+ * requests, and edits near it have been observed to duplicate or detach the
48
+ * injected <figure> block. Normalizing back to the minimal tag before every
49
+ * partial edit removes that enriched HTML as a moving target entirely;
50
+ * Basecamp re-enriches the minimal tag fresh on save either way.
51
+ */
52
+ export declare function normalizeBcAttachments(html: string): string;
38
53
  /**
39
54
  * Apply content operations to existing content
40
55
  *
@@ -1 +1 @@
1
- {"version":3,"file":"contentOperations.d.ts","sourceRoot":"","sources":["../../src/utils/contentOperations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,SAAS,8kDAkBrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;CAgClC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,sBAAsB,GACjC,MAAM,GAAG,SAAS,CAkDpB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,sBAAsB,EAClC,gBAAgB,GAAE,MAAM,EAAO,GAC9B,IAAI,CAmBN"}
1
+ {"version":3,"file":"contentOperations.d.ts","sourceRoot":"","sources":["../../src/utils/contentOperations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,SAAS,miFAmBrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;CAgClC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AA2BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,sBAAsB,GACjC,MAAM,GAAG,SAAS,CAmDpB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,sBAAsB,EAClC,gBAAgB,GAAE,MAAM,EAAO,GAC9B,IAAI,CAmBN"}
@@ -8,7 +8,7 @@ export const htmlRules = `
8
8
  HTML rules for content:
9
9
 
10
10
  * Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment.
11
- * Use <p> for paragraphs. Use <p><br></p> for empty line spacing between paragraphs.
11
+ * Wrap every paragraph in <p>...</p>, and put <p><br></p> between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a <p> on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs.
12
12
  * Headings: use <h2>, <h3>, <h4> as appropriate.
13
13
  * Inline code: <code>text</code>. Preformatted blocks: <pre>text</pre>.
14
14
  * Ordered lists: <ol><li>...</li></ol>. Unordered: <ul><li>...</li></ul>.
@@ -16,8 +16,9 @@ HTML rules for content:
16
16
  * To mention people: <bc-attachment sgid="{ person.attachable_sgid }" content-type="application/vnd.basecamp.mention"></bc-attachment>
17
17
  * Single image: <bc-attachment sgid="{ attachment.attachable_sgid }"></bc-attachment>
18
18
  * Image gallery: wrap multiple <bc-attachment sgid="..." presentation="gallery"> in a <div>.
19
+ * A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no <img> tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link.
19
20
  * Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those.
20
- * To consume less tokens, existing <bc-attachment> tags can be rewritten keeping only: sgid, presentation, caption. For mentions also keep content-type="application/vnd.basecamp.mention". Drop everything else including inner HTML.
21
+ * When you see an existing, already-enriched <bc-attachment> tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings.
21
22
  * Background highlights: <mark style="background-color: var(--highlight-bg-N);">...</mark>
22
23
  * Text color highlights: <span style="color: var(--highlight-N);">...</span>
23
24
  * For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray).
@@ -49,6 +50,51 @@ export const ContentOperationFields = {
49
50
  .optional()
50
51
  .describe("Array of search-replace operations to apply to current content. Cannot be used with content."),
51
52
  };
53
+ /**
54
+ * Attributes we keep when normalizing a <bc-attachment> tag fetched back from
55
+ * Basecamp. Everything else — including the enriched inner HTML Basecamp
56
+ * injects after saving (e.g. a <figure><img/><figcaption>...) — is dropped.
57
+ */
58
+ const ALLOWED_BC_ATTACHMENT_ATTRS = new Set([
59
+ "sgid",
60
+ "presentation",
61
+ "caption",
62
+ "content-type",
63
+ ]);
64
+ function normalizeBcAttachmentAttrs(attrString) {
65
+ const attrRegex = /([a-zA-Z0-9_-]+)\s*=\s*"([^"]*)"/g;
66
+ const kept = [];
67
+ let match;
68
+ while ((match = attrRegex.exec(attrString)) !== null) {
69
+ const [, name, value] = match;
70
+ if (ALLOWED_BC_ATTACHMENT_ATTRS.has(name)) {
71
+ kept.push(`${name}="${value}"`);
72
+ }
73
+ }
74
+ return kept.length > 0 ? ` ${kept.join(" ")}` : "";
75
+ }
76
+ /**
77
+ * Strip Basecamp's server-side enrichment out of any <bc-attachment> tag in
78
+ * `html`, collapsing it back down to its minimal, canonical form (sgid /
79
+ * presentation / caption / content-type only, no inner HTML).
80
+ *
81
+ * Content fetched back from Basecamp (via a GET) has already been enriched:
82
+ * each <bc-attachment> tag gets a full <figure><img/><figcaption>...
83
+ * injected inside it. Running search_replace / append / prepend against that
84
+ * enriched HTML is fragile — the enriched markup is large, can shift between
85
+ * requests, and edits near it have been observed to duplicate or detach the
86
+ * injected <figure> block. Normalizing back to the minimal tag before every
87
+ * partial edit removes that enriched HTML as a moving target entirely;
88
+ * Basecamp re-enriches the minimal tag fresh on save either way.
89
+ */
90
+ export function normalizeBcAttachments(html) {
91
+ // Self-closing form first: <bc-attachment .../>
92
+ let result = html.replace(/<bc-attachment\b([^>]*)\/>/g, (_match, attrs) => `<bc-attachment${normalizeBcAttachmentAttrs(attrs)}></bc-attachment>`);
93
+ // Open/close form: <bc-attachment ...>...enriched HTML...</bc-attachment>
94
+ // (Run after the self-closing pass so no stray `/` throws off `[^>]*`.)
95
+ result = result.replace(/<bc-attachment\b([^>]*)>([\s\S]*?)<\/bc-attachment>/g, (_match, attrs) => `<bc-attachment${normalizeBcAttachmentAttrs(attrs)}></bc-attachment>`);
96
+ return result;
97
+ }
52
98
  /**
53
99
  * Apply content operations to existing content
54
100
  *
@@ -73,8 +119,9 @@ export function applyContentOperations(currentContent, operations) {
73
119
  if (!hasPartialOps) {
74
120
  return undefined;
75
121
  }
76
- // Apply partial operations
77
- let finalContent = currentContent;
122
+ // Apply partial operations. Normalize any <bc-attachment> tags back to
123
+ // their minimal form first — see normalizeBcAttachments() for why.
124
+ let finalContent = normalizeBcAttachments(currentContent);
78
125
  // Apply search-replace operations first
79
126
  if (operations.search_replace) {
80
127
  for (const operation of operations.search_replace) {
@@ -1 +1 @@
1
- {"version":3,"file":"contentOperations.js","sourceRoot":"","sources":["../../src/utils/contentOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contentOperations.js","sourceRoot":"","sources":["../../src/utils/contentOperations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "basecamp-mcp",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Model Context Protocol (MCP) server for Basecamp integration. Enables LLMs to interact with Basecamp projects, messages, todos, comments, people, and kanban boards.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",