@trylighthouse/mcp-server 0.2.17 → 0.2.22

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
@@ -205,6 +205,20 @@ Webhook subscriptions are created and deleted with the REST API or the SDKs, wit
205
205
  | `lighthouse_reports_share_dashboard_with_teams` | Share a dashboard with teams |
206
206
  | `lighthouse_reports_revoke_dashboard_from_teams` | Revoke team access to a dashboard |
207
207
 
208
+ ### Sequences
209
+
210
+ People only: the add, update and remove tools take CRM person IDs. Everyone added lands in the sequence's Review, and nothing is sent until a member adds them from there in the app. Sequences are created and edited in the app.
211
+
212
+ | Tool | Description |
213
+ |------|-------------|
214
+ | `lighthouse_sequences_list` | List the sequences you can open, or find one by its name |
215
+ | `lighthouse_sequences_get` | Get a sequence with its steps, settings and sending accounts |
216
+ | `lighthouse_sequences_list_people` | List the people in a sequence and where each one stands |
217
+ | `lighthouse_sequences_add_people` | Add people to a sequence's Review |
218
+ | `lighthouse_sequences_update_people` | Stop, pause or resume people in a sequence (stopping ends that sequence only) |
219
+ | `lighthouse_sequences_remove_people` | Remove people from a sequence, deleting their history in it |
220
+ | `lighthouse_crm_list_record_sequences` | List the sequences a person, company or deal is in |
221
+
208
222
  ## Rate limits
209
223
 
210
224
  A `429` with the code `rate_limit_exceeded` is retried for you, up to 4 times, before the tool reports the `429` exactly as the API sent it. Before each retry the server waits at least the seconds in the `Retry-After` header (1 second if there is none, at most 30). Each retry also draws a random wait that can grow with every attempt: up to 2 seconds before the first retry, then up to 4, 8 and 16 (never more than 30), and the server waits the longer of the two. Calls refused at the same moment therefore spread out instead of all coming back together and being refused again. It never starts a retry more than 40 seconds after the first attempt, so the API still has time to answer within the 60 seconds many MCP clients allow for a tool call. When the next wait would end past those 40 seconds, the tool reports the `429` straight away. A tool call your client cancels stops waiting and is not sent again. The API refuses such a request before running it, so a refused attempt changes nothing and only the attempt it accepts is applied. No other error is retried, `credit_limit_exceeded` included, and neither is a limit set by a connected email or LinkedIn account (`rate_limited`).
package/build/index.js CHANGED
@@ -11,7 +11,7 @@ async function main() {
11
11
  const sessions = new Map();
12
12
  const httpServer = createHttpServer(async (req, res) => {
13
13
  res.setHeader("Access-Control-Allow-Origin", "*");
14
- res.setHeader("Access-Control-Allow-Headers", "Content-Type, mcp-session-id");
14
+ res.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type, mcp-session-id");
15
15
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
16
16
  res.setHeader("Access-Control-Expose-Headers", "mcp-session-id");
17
17
  if (req.method === "OPTIONS") {
@@ -30,10 +30,11 @@ async function main() {
30
30
  res.end("Not found. Use /mcp");
31
31
  return;
32
32
  }
33
- const apiKey = parsedUrl.searchParams.get("api_key");
33
+ const authorization = req.headers.authorization ?? "";
34
+ const apiKey = authorization.startsWith("Bearer ") ? authorization.slice("Bearer ".length).trim() : "";
34
35
  if (!apiKey) {
35
36
  res.writeHead(401, { "Content-Type": "application/json" });
36
- res.end(JSON.stringify({ error: "Missing api_key query parameter" }));
37
+ res.end(JSON.stringify({ error: "Send your API key in an Authorization header: Bearer <key>" }));
37
38
  return;
38
39
  }
39
40
  const sessionId = req.headers["mcp-session-id"];
@@ -41,7 +42,7 @@ async function main() {
41
42
  const session = sessions.get(sessionId);
42
43
  if (session.apiKey !== apiKey) {
43
44
  res.writeHead(403, { "Content-Type": "application/json" });
44
- res.end(JSON.stringify({ error: "This session belongs to a different api_key" }));
45
+ res.end(JSON.stringify({ error: "This session belongs to a different API key" }));
45
46
  return;
46
47
  }
47
48
  await session.transport.handleRequest(req, res);
package/build/server.d.ts CHANGED
@@ -1,5 +1,2 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export interface CreateServerOptions {
3
- privateEquity?: boolean;
4
- }
5
- export declare function createServer(apiKey?: string, options?: CreateServerOptions): McpServer;
2
+ export declare function createServer(apiKey?: string): McpServer;