@netique/overleaf-mcp 0.1.0 → 0.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.
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ import { readFileSync } from "node:fs";
2
3
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
5
  import { registerListProjects } from "./tools/listProjects.js";
@@ -10,9 +11,13 @@ import { registerCompile, registerReadLog } from "./tools/compile.js";
10
11
  import { registerComments } from "./tools/comments.js";
11
12
  import { registerTrackedChanges } from "./tools/trackedChanges.js";
12
13
  import { close as closeActiveProject } from "./session/activeProject.js";
14
+ import { maybeRunCli } from "./auth/cli.js";
13
15
  import { logger } from "./util/logger.js";
14
16
  const SERVER_NAME = "overleaf-mcp";
15
- const SERVER_VERSION = "0.1.0";
17
+ // Read once from the published package.json so a release bump can never
18
+ // desync from what the MCP handshake reports. Works in both `tsx` (src/)
19
+ // and the built layout (dist/) because the file is one level above each.
20
+ const SERVER_VERSION = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
16
21
  const INSTRUCTIONS = [
17
22
  "Overleaf MCP server. Operates on .tex files via Overleaf's Socket.IO web API",
18
23
  "(not the Git bridge), so edits land in real time and respect tracked-changes mode.",
@@ -54,7 +59,9 @@ async function main() {
54
59
  process.on("SIGINT", () => void shutdown("SIGINT"));
55
60
  process.on("SIGTERM", () => void shutdown("SIGTERM"));
56
61
  }
57
- main().catch((err) => {
62
+ maybeRunCli(process.argv)
63
+ .then(() => main())
64
+ .catch((err) => {
58
65
  logger.error("fatal startup error", err instanceof Error ? err.stack ?? err.message : err);
59
66
  process.exit(1);
60
67
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { ensureSocketForProject, disconnectActive } from "../api/socket.js";
2
2
  import { flattenTree, isTrackChangesOnForUser } from "../api/projectTypes.js";
3
3
  import { getIdentity } from "./identity.js";
4
+ import { clearDocCache } from "./docCache.js";
4
5
  let active = null;
5
6
  export function setLastCompile(result) {
6
7
  if (active)
@@ -14,6 +15,7 @@ export async function open(projectId) {
14
15
  if (!joinedProject) {
15
16
  throw new Error("joinProject did not return a project entity");
16
17
  }
18
+ clearDocCache();
17
19
  // rootFolder is an array containing the single top-level folder.
18
20
  const root = joinedProject.rootFolder?.[0];
19
21
  const entities = root ? flattenTree(root) : [];
@@ -34,6 +36,7 @@ export async function open(projectId) {
34
36
  }
35
37
  export function close() {
36
38
  disconnectActive();
39
+ clearDocCache();
37
40
  active = null;
38
41
  }
39
42
  export function findByPath(path) {
@@ -1 +1 @@
1
- {"version":3,"file":"activeProject.js","sourceRoot":"","sources":["../../src/session/activeProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAuC,MAAM,wBAAwB,CAAC;AAEnH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAa5C,IAAI,MAAM,GAAyB,IAAI,CAAC;AAExC,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,IAAI,MAAM;QAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,SAAiB;IAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,iEAAiE;IACjE,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC;IAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,MAAM,GAAG;QACP,SAAS;QACT,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,WAAW;QACvC,OAAO,EAAE,aAAa;QACtB,QAAQ;QACR,mBAAmB;QACnB,SAAS;QACT,WAAW;KACZ,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,gBAAgB,EAAE,CAAC;IACnB,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"activeProject.js","sourceRoot":"","sources":["../../src/session/activeProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAuC,MAAM,wBAAwB,CAAC;AAEnH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAa9C,IAAI,MAAM,GAAyB,IAAI,CAAC;AAExC,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,IAAI,MAAM;QAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,SAAiB;IAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,aAAa,EAAE,CAAC;IAChB,iEAAiE;IACjE,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC;IAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,MAAM,GAAG;QACP,SAAS;QACT,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,WAAW;QACvC,OAAO,EAAE,aAAa;QACtB,QAAQ;QACR,mBAAmB;QACnB,SAAS;QACT,WAAW;KACZ,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,CAAC;IAChB,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,23 +1,27 @@
1
1
  import { loadConfig } from "../config.js";
2
2
  import { OverleafAuthError } from "../api/errors.js";
3
3
  import { logger } from "../util/logger.js";
4
+ import { discoverCookie } from "../auth/discover.js";
4
5
  let cached = null;
5
6
  let pending = null;
6
7
  function extractMeta(html, name) {
7
8
  const re = new RegExp(`<meta\\s+name=["']${name}["']\\s+content=["']([^"']*)["']`);
8
9
  return html.match(re)?.[1];
9
10
  }
10
- async function resolveIdentity(config) {
11
+ export async function validateCookie(cookie, config = loadConfig()) {
12
+ return resolveIdentity(cookie, config);
13
+ }
14
+ async function resolveIdentity(cookie, config) {
11
15
  const url = `${config.baseUrl}/project`;
12
16
  const res = await fetch(url, {
13
17
  method: "GET",
14
18
  redirect: "manual",
15
- headers: { Cookie: config.cookie, Connection: "keep-alive" },
19
+ headers: { Cookie: cookie, Connection: "keep-alive" },
16
20
  });
17
21
  if (res.status === 301 || res.status === 302) {
18
22
  const location = res.headers.get("location") ?? "";
19
23
  throw new OverleafAuthError(`Session cookie rejected (redirected to ${location || "login"}). ` +
20
- "The cookie is likely expired — re-copy 'overleaf_session2' from your browser.");
24
+ "The cookie is likely expired — run `overleaf-mcp login` to refresh.");
21
25
  }
22
26
  if (!res.ok) {
23
27
  throw new OverleafAuthError(`GET /project returned HTTP ${res.status}`);
@@ -35,7 +39,7 @@ async function resolveIdentity(config) {
35
39
  "Pass OL_CSRF as a fallback or check that your Overleaf server emits the meta tag.");
36
40
  }
37
41
  logger.info(`authenticated as ${userEmail || userId}`);
38
- return { baseUrl: config.baseUrl, cookie: config.cookie, csrf, userId, userEmail };
42
+ return { baseUrl: config.baseUrl, cookie, csrf, userId, userEmail };
39
43
  }
40
44
  export async function getIdentity() {
41
45
  if (cached)
@@ -43,7 +47,10 @@ export async function getIdentity() {
43
47
  if (pending)
44
48
  return pending;
45
49
  const config = loadConfig();
46
- pending = resolveIdentity(config)
50
+ pending = (async () => {
51
+ const cookie = await discoverCookie(config.baseUrl);
52
+ return resolveIdentity(cookie, config);
53
+ })()
47
54
  .then((id) => {
48
55
  cached = id;
49
56
  return id;
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/session/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/session/identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ // Wrap an authenticated call so a single OverleafAuthError triggers a
2
+ // re-discovery (which may re-launch a browser in PR2) and exactly one retry.
3
+ //
4
+ // Lives in its own module to break a would-be cycle: socket.ts imports
5
+ // withAuthRetry, but disconnectActive lives in socket.ts. Resolved here via
6
+ // a dynamic import.
7
+ import { OverleafAuthError } from "../api/errors.js";
8
+ import { loadConfig } from "../config.js";
9
+ import { logger } from "../util/logger.js";
10
+ import { evictAndRediscover } from "../auth/discover.js";
11
+ import { clearIdentity } from "./identity.js";
12
+ export async function withAuthRetry(fn) {
13
+ try {
14
+ return await fn();
15
+ }
16
+ catch (err) {
17
+ if (!(err instanceof OverleafAuthError))
18
+ throw err;
19
+ const config = loadConfig();
20
+ logger.info(`auth error, attempting recovery: ${err.message}`);
21
+ clearIdentity();
22
+ const { disconnectActive } = await import("../api/socket.js");
23
+ disconnectActive();
24
+ await evictAndRediscover(config.baseUrl);
25
+ return await fn();
26
+ }
27
+ }
28
+ //# sourceMappingURL=recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/session/recovery.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,6EAA6E;AAC7E,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,oBAAoB;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAoB;IACzD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAiB,CAAC;YAAE,MAAM,GAAG,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,oCAAoC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC9D,gBAAgB,EAAE,CAAC;QACnB,MAAM,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -16,9 +16,9 @@ const Schema = z.object({
16
16
  .default(false)
17
17
  .describe("Stop on the first LaTeX error instead of continuing to produce a partial PDF."),
18
18
  });
19
- function summarizeErrors(log) {
19
+ export function summarizeErrors(log, maxErrorLines = 20) {
20
20
  if (!log)
21
- return { errors: [], warnings: 0 };
21
+ return { errors: [], error_count: 0, warnings: 0 };
22
22
  const errors = [];
23
23
  let warnings = 0;
24
24
  for (const line of log.split("\n")) {
@@ -27,7 +27,7 @@ function summarizeErrors(log) {
27
27
  else if (/warning/i.test(line))
28
28
  warnings++;
29
29
  }
30
- return { errors: errors.slice(0, 20), warnings };
30
+ return { errors: errors.slice(0, maxErrorLines), error_count: errors.length, warnings };
31
31
  }
32
32
  // Build the GET-able URL for an output file from a compile response, including
33
33
  // the clsiserverid + compileGroup query params CLSI requires.
@@ -89,7 +89,7 @@ export function registerCompile(server) {
89
89
  logBytes = log.length;
90
90
  const summarized = summarizeErrors(log);
91
91
  errorLines = summarized.errors;
92
- errorCount = errorLines.length;
92
+ errorCount = summarized.error_count;
93
93
  warningCount = summarized.warnings;
94
94
  }
95
95
  }
@@ -141,7 +141,7 @@ export function registerReadLog(server) {
141
141
  title: "Read the last compile's output.log",
142
142
  description: "Returns the full LaTeX log from the most recent `compile` call. " +
143
143
  "`compile` already includes the error count + first few errors in its response — use this only when you need more context (full log, line numbers, package warnings, etc.). " +
144
- "Includes a summary of `!`-prefixed error lines at the top, then the full log (truncated to the last 8000 chars).",
144
+ "Includes a summary of `!`-prefixed error lines at the top (sampled, with total count), then the full log (truncated to the last 8000 chars).",
145
145
  inputSchema: {},
146
146
  annotations: { readOnlyHint: true },
147
147
  }, async () => {
@@ -161,11 +161,12 @@ export function registerReadLog(server) {
161
161
  if (fullLog == null) {
162
162
  return { content: [{ type: "text", text: "No output.log available." }], isError: true };
163
163
  }
164
- const { errors, warnings } = summarizeErrors(fullLog);
164
+ const { errors, error_count, warnings } = summarizeErrors(fullLog, 200);
165
165
  const tail = fullLog.length > 8000 ? fullLog.slice(-8000) : fullLog;
166
- const errorBlock = errors.length
167
- ? `=== ${errors.length} error line(s) ===\n${errors.join("\n")}\n\n`
168
- : "=== no '! ' error lines ===\n\n";
166
+ const errorHeader = error_count > errors.length
167
+ ? `=== ${error_count} error line(s) (showing first ${errors.length}) ===`
168
+ : `=== ${error_count} error line(s) ===`;
169
+ const errorBlock = errors.length ? `${errorHeader}\n${errors.join("\n")}\n\n` : "=== no '! ' error lines ===\n\n";
169
170
  const text = errorBlock +
170
171
  (fullLog.length > 8000 ? `=== output.log (last 8000 of ${fullLog.length} chars) ===\n` : "=== output.log ===\n") +
171
172
  tail;
@@ -173,7 +174,9 @@ export function registerReadLog(server) {
173
174
  content: [{ type: "text", text }],
174
175
  structuredContent: {
175
176
  log_bytes: fullLog.length,
177
+ error_count,
176
178
  error_lines: errors,
179
+ error_lines_sampled: errors.length,
177
180
  warning_count: warnings,
178
181
  },
179
182
  };
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/tools/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/tools/compile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netique/overleaf-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "MCP server for Overleaf with tracked-changes support, via the Socket.IO web API (not the Git bridge).",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,7 +27,7 @@
27
27
  "dev": "tsx watch src/index.ts",
28
28
  "start": "node dist/index.js",
29
29
  "typecheck": "tsc -p tsconfig.json --noEmit",
30
- "test": "node --test --import tsx tests/unit/*.spec.ts",
30
+ "test": "node tests/run-unit-tests.mjs",
31
31
  "prepublishOnly": "npm run build"
32
32
  },
33
33
  "keywords": [