basecamp-mcp 1.0.3 → 1.1.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
@@ -6,9 +6,13 @@ Model Context Protocol (MCP) server for Basecamp integration. Enables LLMs to in
6
6
 
7
7
  The Basecamp MCP server requires Node.js 18+ and works with various MCP clients including Claude Code CLI, Claude Desktop, Cursor, VS Code, and others.
8
8
 
9
- ### Standard Configuration
9
+ ### Prerequisites
10
10
 
11
- The baseline setup applies across most tools:
11
+ You need a Basecamp OAuth app. Register one at [37signals Launchpad](https://launchpad.37signals.com/integrations) with the redirect URI set to `http://localhost:7652/callback`.
12
+
13
+ ### Installation
14
+
15
+ Add the MCP server to your client with your OAuth credentials:
12
16
 
13
17
  ```json
14
18
  {
@@ -18,114 +22,83 @@ The baseline setup applies across most tools:
18
22
  "args": ["-y", "basecamp-mcp@latest"],
19
23
  "env": {
20
24
  "BASECAMP_CLIENT_ID": "your_client_id",
21
- "BASECAMP_CLIENT_SECRET": "your_client_secret",
22
- "BASECAMP_REFRESH_TOKEN": "your_refresh_token",
23
- "BASECAMP_USER_AGENT": "YourApp (your@email.com)",
24
- "BASECAMP_ACCOUNT_ID": "account_id"
25
+ "BASECAMP_CLIENT_SECRET": "your_client_secret"
25
26
  }
26
27
  }
27
28
  }
28
29
  }
29
30
  ```
30
31
 
31
- ### Installation by Client
32
-
33
32
  **Claude Code CLI:**
34
33
  ```bash
35
34
  claude mcp add basecamp npx basecamp-mcp@latest \
36
35
  -e BASECAMP_CLIENT_ID=your_client_id \
37
- -e BASECAMP_CLIENT_SECRET=your_client_secret \
38
- -e BASECAMP_REFRESH_TOKEN=your_refresh_token \
39
- -e BASECAMP_USER_AGENT="YourApp (your@email.com)" \
40
- -e BASECAMP_ACCOUNT_ID=account_id
36
+ -e BASECAMP_CLIENT_SECRET=your_client_secret
41
37
  ```
42
38
 
43
- **Claude Desktop:** Follow the MCP install guide using the standard config above.
39
+ **Claude Desktop:** Follow the MCP install guide using the JSON config above.
44
40
 
45
- **Cursor:** One-click installation available, or manually add configuration through Settings → Tools & Integrations → New MCP Server.
41
+ **Cursor:** Add configuration through Settings → Tools & Integrations → New MCP Server.
46
42
 
47
- **VS Code:** One-click installation provided, or use the CLI:
43
+ **VS Code:**
48
44
  ```bash
49
45
  code --add-mcp '{"name":"basecamp","command":"npx","args":["-y", "basecamp-mcp@latest"]}'
50
46
  ```
51
47
 
52
- **Gemini CLI & Windsurf:** Refer to their respective documentation; use the standard config template.
53
-
54
- ## Configuration
48
+ ### Authentication
55
49
 
56
- The server requires the following environment variables:
50
+ Once the MCP server is running, authenticate using the built-in login tool:
57
51
 
58
- * **`BASECAMP_CLIENT_ID`**Your Basecamp OAuth client ID
59
- * **`BASECAMP_CLIENT_SECRET`** Your Basecamp OAuth client secret
60
- * **`BASECAMP_REFRESH_TOKEN`** Your Basecamp refresh token for authentication
61
- * **`BASECAMP_USER_AGENT`** Your application identifier (format: YourApp (our@email.com))
62
- * **`BASECAMP_ACCOUNT_ID`** — Your Basecamp account ID
52
+ 1. Call `basecamp_login` a browser window will open for Basecamp authorization
53
+ 2. Authorize the app in your browser
54
+ 3. If you have multiple Basecamp accounts, call `basecamp_login` again with the desired `account_id`
55
+ 4. Done! Credentials are saved to `~/.config/basecamp-mcp/credentials.json`
63
56
 
64
- ### Complete Configuration Example
57
+ Use `basecamp_whoami` to check who you're logged in as, and `basecamp_logout` to remove stored credentials.
65
58
 
66
- ```json
67
- {
68
- "mcpServers": {
69
- "basecamp": {
70
- "command": "npx",
71
- "args": ["-y", "basecamp-mcp@latest"],
72
- "env": {
73
- "BASECAMP_CLIENT_ID": "your_client_id",
74
- "BASECAMP_CLIENT_SECRET": "your_client_secret",
75
- "BASECAMP_REFRESH_TOKEN": "your_refresh_token",
76
- "BASECAMP_USER_AGENT": "YourApp (your@email.com)",
77
- "BASECAMP_ACCOUNT_ID": "account_id"
78
- }
79
- }
80
- }
81
- }
82
- ```
83
-
84
- ## Usage
85
-
86
- ### Running the Server
59
+ ## Configuration
87
60
 
88
- ```bash
89
- npm start
90
- ```
61
+ The server requires these environment variables:
91
62
 
92
- Or for development with auto-reload:
63
+ * **`BASECAMP_CLIENT_ID`** Your Basecamp OAuth client ID
64
+ * **`BASECAMP_CLIENT_SECRET`** — Your Basecamp OAuth client secret
93
65
 
94
- ```bash
95
- npm run dev
96
- ```
66
+ ## Available Tools
97
67
 
98
- ### Available Tools
68
+ ### Authentication
69
+ - `basecamp_login` - Authenticate with Basecamp via OAuth browser flow
70
+ - `basecamp_logout` - Remove stored credentials
71
+ - `basecamp_whoami` - Show the currently authenticated user
99
72
 
100
- #### Projects
73
+ ### Projects
101
74
  - `basecamp_list_projects` - List all accessible projects with optional filtering
102
75
  - `basecamp_get_project` - Get detailed project information including dock configuration
103
76
 
104
- #### Messages
77
+ ### Messages
105
78
  - `basecamp_list_messages` - List messages in a message board with optional filtering
106
79
  - `basecamp_list_message_types` - List available message types/categories for a project
107
80
  - `basecamp_get_message` - Get single message details
108
81
  - `basecamp_create_message` - Create new message with optional category and draft status
109
82
  - `basecamp_update_message` - Update message with advanced content editing (supports full replacement, append, prepend, search/replace)
110
83
 
111
- #### TODOs
84
+ ### TODOs
112
85
  - `basecamp_get_todoset` - Get todo set container with all todo lists
113
86
  - `basecamp_list_todos` - List todos in a list with status filtering (active/archived)
114
87
  - `basecamp_create_todo` - Create new todo with optional description
115
88
  - `basecamp_complete_todo` - Mark todo as complete
116
89
  - `basecamp_uncomplete_todo` - Mark todo as incomplete
117
90
 
118
- #### Comments
91
+ ### Comments
119
92
  - `basecamp_list_comments` - List comments on any resource (works universally on all recording types)
120
93
  - `basecamp_create_comment` - Add comment to any resource
121
94
  - `basecamp_update_comment` - Update comment with advanced content editing (supports full replacement, append, prepend, search/replace)
122
95
 
123
- #### People
96
+ ### People
124
97
  - `basecamp_get_me` - Get personal information for the authenticated user
125
98
  - `basecamp_list_people` - List all people with optional filtering by name, email, or title
126
99
  - `basecamp_get_person` - Get person details
127
100
 
128
- #### Kanban
101
+ ### Kanban
129
102
  - `basecamp_list_kanban_columns` - List all columns in a kanban board
130
103
  - `basecamp_list_kanban_cards` - List cards in a column with steps and assignees
131
104
  - `basecamp_get_kanban_card` - Get complete details of a specific card
@@ -133,8 +106,9 @@ npm run dev
133
106
  - `basecamp_update_kanban_card` - Update card with advanced content editing (supports full replacement, append, prepend, search/replace, plus title, due date, assignees, notifications, and complete step array management)
134
107
  - `basecamp_move_kanban_card` - Move a card to a different column and/or position
135
108
 
136
- #### Activity
137
- - `basecamp_list_recordings` - Browse recent activity globally or across specific projects, with filtering by type, date range, person, and text search. All filters except text search support multiple values (e.g., multiple project IDs, person IDs, or types for OR-matching)
109
+ ### Activity
110
+ - `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
+ - `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
138
112
 
139
113
  ## Development
140
114
 
package/dist/index.d.ts CHANGED
@@ -1,21 +1,3 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * Basecamp MCP Server
4
- *
5
- * MCP server for interacting with Basecamp API, providing tools for:
6
- * - Projects (discovering bucket IDs)
7
- * - Messages (with patch support for updates)
8
- * - TODOs (sets, lists, todos)
9
- * - Comments (universal - work on any resource)
10
- * - People
11
- * - Kanban (cards, columns, steps)
12
- * - Activity (recordings browsing)
13
- *
14
- * Environment variables required:
15
- * - BASECAMP_CLIENT_ID
16
- * - BASECAMP_CLIENT_SECRET
17
- * - BASECAMP_REFRESH_TOKEN
18
- * - BASECAMP_USER_AGENT
19
- */
20
2
  export {};
21
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,56 +1,23 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * Basecamp MCP Server
4
- *
5
- * MCP server for interacting with Basecamp API, providing tools for:
6
- * - Projects (discovering bucket IDs)
7
- * - Messages (with patch support for updates)
8
- * - TODOs (sets, lists, todos)
9
- * - Comments (universal - work on any resource)
10
- * - People
11
- * - Kanban (cards, columns, steps)
12
- * - Activity (recordings browsing)
13
- *
14
- * Environment variables required:
15
- * - BASECAMP_CLIENT_ID
16
- * - BASECAMP_CLIENT_SECRET
17
- * - BASECAMP_REFRESH_TOKEN
18
- * - BASECAMP_USER_AGENT
19
- */
20
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
21
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
22
4
  import { registerActivityTools } from "./tools/activity.js";
5
+ import { registerAuthTools } from "./tools/auth.js";
23
6
  import { registerCommentTools } from "./tools/comments.js";
7
+ import { registerDocumentTools } from "./tools/documents.js";
24
8
  import { registerKanbanTools } from "./tools/kanban.js";
25
9
  import { registerMessageTools } from "./tools/messages.js";
26
10
  import { registerPeopleTools } from "./tools/people.js";
27
- // Import tool registration functions
28
11
  import { registerProjectTools } from "./tools/projects.js";
29
12
  import { registerTodoTools } from "./tools/todos.js";
30
- /**
31
- * Main server initialization and startup
32
- */
13
+ import { registerUploadTools } from "./tools/uploads.js";
33
14
  async function main() {
34
- // Validate required environment variables
35
- const requiredEnvVars = [
36
- "BASECAMP_CLIENT_ID",
37
- "BASECAMP_CLIENT_SECRET",
38
- "BASECAMP_REFRESH_TOKEN",
39
- "BASECAMP_USER_AGENT",
40
- ];
41
- const missing = requiredEnvVars.filter((varName) => !process.env[varName]);
42
- if (missing.length > 0) {
43
- console.error(`ERROR: Missing required environment variables: ${missing.join(", ")}`);
44
- console.error("Please set these in your environment or .env file before starting the server.");
45
- process.exit(1);
46
- }
47
- // Create MCP server instance
48
15
  const server = new McpServer({
49
16
  name: "basecamp-mcp-server",
50
17
  version: "1.0.0",
51
18
  });
52
- // Register all tool categories
53
19
  console.error("Registering tools...");
20
+ registerAuthTools(server);
54
21
  registerProjectTools(server);
55
22
  registerMessageTools(server);
56
23
  registerTodoTools(server);
@@ -58,15 +25,13 @@ async function main() {
58
25
  registerPeopleTools(server);
59
26
  registerKanbanTools(server);
60
27
  registerActivityTools(server);
28
+ registerDocumentTools(server);
29
+ registerUploadTools(server);
61
30
  console.error("Tools registered successfully");
62
- // Create stdio transport
63
31
  const transport = new StdioServerTransport();
64
- // Connect server to transport
65
32
  await server.connect(transport);
66
33
  console.error("Basecamp MCP server running on stdio");
67
- console.error("Waiting for client connection...");
68
34
  }
69
- // Run the server
70
35
  main().catch((error) => {
71
36
  console.error("Fatal error starting Basecamp MCP server:", error);
72
37
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,qCAAqC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,0CAA0C;IAC1C,MAAM,eAAe,GAAG;QACtB,oBAAoB;QACpB,wBAAwB;QACxB,wBAAwB;QACxB,qBAAqB;KACtB,CAAC;IAEF,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CACX,kDAAkD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvE,CAAC;QACF,OAAO,CAAC,KAAK,CACX,+EAA+E,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,+BAA+B;IAC/B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/C,yBAAyB;IACzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,8BAA8B;IAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACpD,CAAC;AAED,iBAAiB;AACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC5B,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/tools/activity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuHzE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqQ7D"}
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/tools/activity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwHzE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqiB7D"}
@@ -18,6 +18,7 @@ const DEFAULT_RECORDING_TYPES = [
18
18
  "Document",
19
19
  "Comment",
20
20
  "Upload",
21
+ "Kanban::Card",
21
22
  ];
22
23
  /** Map of friendly type aliases to canonical Basecamp API type names */
23
24
  const TYPE_ALIASES = {
@@ -120,13 +121,14 @@ Use this tool to:
120
121
  - Filter activity by content type (todos, messages, documents, etc.)
121
122
  - Search activity by title text
122
123
 
123
- All filters except query support multiple values for OR-matching.
124
+ All filters support multiple values for OR-matching.
124
125
 
125
126
  Examples:
126
127
  - "What happened in the last 24 hours?" → since: "24h"
127
128
  - "Show recent todos in project 12345" → project_ids: [12345], type: ["todo"]
128
129
  - "What did Alice and Bob do this week?" → person_ids: [111, 222], since: "7d"
129
- - "Find messages mentioning launch across projects 1 and 2" → project_ids: [1, 2], type: ["message"], query: "launch"
130
+ - "Find messages mentioning launch across projects 1 and 2" → project_ids: [1, 2], type: ["message"], query: ["launch"]
131
+ - "Find items about design or UX" → query: ["design", "UX"]
130
132
  - "List all messages across projects" → type: ["message"]`,
131
133
  inputSchema: {
132
134
  project_ids: z
@@ -139,7 +141,7 @@ Examples:
139
141
  .describe('Recording type filter. Options: "todo", "message", "document", "comment", "upload", ' +
140
142
  '"todolist", "question", "schedule", "vault". ' +
141
143
  "Supports multiple values for OR-matching. " +
142
- "Omit to fetch all common types (todo, message, document, comment, upload)."),
144
+ "Omit to fetch all common types (todo, message, document, comment, upload, card)."),
143
145
  since: z
144
146
  .string()
145
147
  .optional()
@@ -150,9 +152,9 @@ Examples:
150
152
  .optional()
151
153
  .describe("Filter by creator person IDs. Supports multiple IDs for OR-matching. Use basecamp_list_people to find person IDs."),
152
154
  query: z
153
- .string()
155
+ .array(z.string())
154
156
  .optional()
155
- .describe("Case-insensitive text search against recording titles."),
157
+ .describe("Case-insensitive text search against recording titles. Supports multiple terms for OR-matching."),
156
158
  sort: z
157
159
  .enum(["created_at", "updated_at"])
158
160
  .optional()
@@ -237,10 +239,13 @@ Examples:
237
239
  const personIdSet = new Set(params.person_ids);
238
240
  filtered = filtered.filter((r) => r.creator && personIdSet.has(r.creator.id));
239
241
  }
240
- // Filter by text search (case-insensitive substring match on title)
241
- if (params.query) {
242
- const lowerQuery = params.query.toLowerCase();
243
- filtered = filtered.filter((r) => r.title.toLowerCase().includes(lowerQuery));
242
+ // Filter by text search (case-insensitive substring match on title, OR-matching)
243
+ if (params.query && params.query.length > 0) {
244
+ const lowerQueries = params.query.map((q) => q.toLowerCase());
245
+ filtered = filtered.filter((r) => {
246
+ const lowerTitle = r.title.toLowerCase();
247
+ return lowerQueries.some((q) => lowerTitle.includes(q));
248
+ });
244
249
  }
245
250
  // Sort merged results
246
251
  const sortDir = params.direction || "desc";
@@ -317,5 +322,226 @@ Examples:
317
322
  };
318
323
  }
319
324
  });
325
+ server.registerTool("basecamp_list_campfire_messages", {
326
+ title: "List Campfire Messages",
327
+ description: `Browse chat messages from Basecamp Campfires. Campfires are real-time chat rooms within projects.
328
+
329
+ Use this tool to:
330
+ - See recent chat activity across all campfires or specific ones
331
+ - Find messages from specific people
332
+ - Search message content for keywords
333
+ - Review chat history since a specific date or time period
334
+
335
+ All filters support multiple values for OR-matching.
336
+
337
+ Examples:
338
+ - "What's been discussed in chat today?" → since: "today"
339
+ - "Show messages from Alice and Bob" → person_ids: [111, 222]
340
+ - "Find chat messages mentioning deploy or release" → query: ["deploy", "release"]
341
+ - "Recent messages in campfire 12345" → campfire_ids: [12345]`,
342
+ inputSchema: {
343
+ campfire_ids: z
344
+ .array(BasecampIdSchema)
345
+ .optional()
346
+ .describe("Filter to specific campfires by ID. Supports multiple IDs for OR-matching. Omit to browse all campfires."),
347
+ person_ids: z
348
+ .array(BasecampIdSchema)
349
+ .optional()
350
+ .describe("Filter by sender person IDs. Supports multiple IDs for OR-matching. Use basecamp_list_people to find person IDs."),
351
+ query: z
352
+ .array(z.string())
353
+ .optional()
354
+ .describe("Case-insensitive text search against message content. Supports multiple terms for OR-matching."),
355
+ since: z
356
+ .string()
357
+ .optional()
358
+ .describe('Show messages since this time. Accepts ISO 8601 dates (e.g., "2024-01-15"), ' +
359
+ 'relative durations ("24h", "7d", "2w"), or keywords ("today", "yesterday").'),
360
+ limit: z
361
+ .number()
362
+ .min(1)
363
+ .max(100)
364
+ .optional()
365
+ .describe(`Maximum number of messages to return (default: ${DEFAULT_LIMIT}, max: 100).`),
366
+ },
367
+ annotations: {
368
+ readOnlyHint: true,
369
+ destructiveHint: false,
370
+ idempotentHint: true,
371
+ openWorldHint: true,
372
+ },
373
+ }, async (params) => {
374
+ try {
375
+ const client = await initializeBasecampClient();
376
+ // Parse since date upfront if provided
377
+ const sinceDate = params.since ? parseSince(params.since) : null;
378
+ // Determine which campfires to fetch from
379
+ let campfiresToFetch = [];
380
+ if (params.campfire_ids && params.campfire_ids.length > 0) {
381
+ // Fetch all campfires to get bucket IDs for the requested campfire IDs
382
+ const allCampfires = [];
383
+ for await (const campfire of asyncPagedIterator({
384
+ fetchPage: client.campfires.list,
385
+ request: {},
386
+ })) {
387
+ allCampfires.push(campfire);
388
+ }
389
+ const campfireIdSet = new Set(params.campfire_ids);
390
+ campfiresToFetch = allCampfires
391
+ .filter((c) => campfireIdSet.has(c.id))
392
+ .map((c) => ({
393
+ bucketId: c.bucket.id,
394
+ campfireId: c.id,
395
+ campfireName: c.title,
396
+ projectName: c.bucket.name,
397
+ }));
398
+ if (campfiresToFetch.length === 0) {
399
+ return {
400
+ content: [
401
+ {
402
+ type: "text",
403
+ text: JSON.stringify({
404
+ error: "No campfires found matching the provided IDs.",
405
+ provided_ids: params.campfire_ids,
406
+ }, null, 2),
407
+ },
408
+ ],
409
+ };
410
+ }
411
+ }
412
+ else {
413
+ // Fetch all campfires, filtering by updated_at if since is provided
414
+ for await (const campfire of asyncPagedIterator({
415
+ fetchPage: client.campfires.list,
416
+ request: {},
417
+ })) {
418
+ // Skip campfires that haven't been updated since the filter date
419
+ if (sinceDate) {
420
+ const campfireUpdatedAt = new Date(campfire.updated_at);
421
+ if (campfireUpdatedAt < sinceDate) {
422
+ continue;
423
+ }
424
+ }
425
+ campfiresToFetch.push({
426
+ bucketId: campfire.bucket.id,
427
+ campfireId: campfire.id,
428
+ campfireName: campfire.title,
429
+ projectName: campfire.bucket.name,
430
+ });
431
+ }
432
+ if (campfiresToFetch.length === 0) {
433
+ return {
434
+ content: [
435
+ {
436
+ type: "text",
437
+ text: JSON.stringify({ messages: [], total_fetched: 0, returned: 0 }, null, 2),
438
+ },
439
+ ],
440
+ };
441
+ }
442
+ }
443
+ // Fetch lines from each campfire in parallel
444
+ const fetchPromises = campfiresToFetch.map(async ({ bucketId, campfireId, campfireName, projectName }) => {
445
+ const lines = [];
446
+ for await (const line of asyncPagedIterator({
447
+ fetchPage: client.campfires.listLines,
448
+ request: {
449
+ params: { bucketId, campfireId },
450
+ },
451
+ })) {
452
+ // API returns newest first - early termination if since is set
453
+ if (sinceDate) {
454
+ const lineDate = new Date(line.created_at);
455
+ if (lineDate < sinceDate) {
456
+ break;
457
+ }
458
+ }
459
+ lines.push({
460
+ ...line,
461
+ campfire_name: campfireName,
462
+ project_name: projectName,
463
+ });
464
+ }
465
+ return lines;
466
+ });
467
+ const results = await Promise.all(fetchPromises);
468
+ let allLines = results.flat();
469
+ // Filter by person IDs (OR-match)
470
+ if (params.person_ids && params.person_ids.length > 0) {
471
+ const personIdSet = new Set(params.person_ids);
472
+ allLines = allLines.filter((line) => line.creator && personIdSet.has(line.creator.id));
473
+ }
474
+ // Filter by text search (case-insensitive substring match on content, OR-matching)
475
+ if (params.query && params.query.length > 0) {
476
+ const lowerQueries = params.query.map((q) => q.toLowerCase());
477
+ allLines = allLines.filter((line) => {
478
+ const lowerContent = line.content.toLowerCase();
479
+ return lowerQueries.some((q) => lowerContent.includes(q));
480
+ });
481
+ }
482
+ // Sort all messages by created_at desc (newest first)
483
+ allLines.sort((a, b) => {
484
+ const dateA = new Date(a.created_at).getTime();
485
+ const dateB = new Date(b.created_at).getTime();
486
+ return dateB - dateA;
487
+ });
488
+ // Apply limit
489
+ const limit = params.limit || DEFAULT_LIMIT;
490
+ const total = allLines.length;
491
+ allLines = allLines.slice(0, limit);
492
+ // Serialize response
493
+ const serialized = allLines.map((line) => ({
494
+ id: line.id,
495
+ content: line.content,
496
+ created_at: line.created_at,
497
+ url: line.app_url,
498
+ creator: line.creator
499
+ ? {
500
+ id: line.creator.id,
501
+ name: line.creator.name,
502
+ email: line.creator.email_address,
503
+ }
504
+ : null,
505
+ campfire: {
506
+ id: line.parent?.id,
507
+ name: line.campfire_name,
508
+ },
509
+ project: {
510
+ id: line.bucket.id,
511
+ name: line.project_name,
512
+ },
513
+ }));
514
+ const result = {
515
+ messages: serialized,
516
+ total_fetched: total,
517
+ returned: serialized.length,
518
+ };
519
+ if (total > limit) {
520
+ result.truncated = true;
521
+ result.truncation_message = `Showing ${limit} of ${total} messages. Increase limit or narrow filters to see more.`;
522
+ }
523
+ let jsonStr = JSON.stringify(result, null, 2);
524
+ // Handle response size limit
525
+ if (jsonStr.length > CHARACTER_LIMIT) {
526
+ const reducedLimit = Math.floor(serialized.length / 2);
527
+ const reduced = serialized.slice(0, reducedLimit);
528
+ jsonStr = JSON.stringify({
529
+ messages: reduced,
530
+ total_fetched: total,
531
+ returned: reduced.length,
532
+ truncated: true,
533
+ truncation_message: `Response truncated to ${reduced.length} messages due to size limits. Use more specific filters or a smaller limit.`,
534
+ }, null, 2);
535
+ }
536
+ return {
537
+ content: [{ type: "text", text: jsonStr }],
538
+ };
539
+ }
540
+ catch (error) {
541
+ return {
542
+ content: [{ type: "text", text: handleBasecampError(error) }],
543
+ };
544
+ }
545
+ });
320
546
  }
321
547
  //# sourceMappingURL=activity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/tools/activity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/tools/activity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerAuthTools(server: McpServer): void;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2LzD"}