rubien-mcp-server 0.3.1 → 0.3.2

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
@@ -136,7 +136,7 @@ claude mcp add rubien -- node $(pwd)/dist/index.js # Claude Code
136
136
 
137
137
  ## Tool catalog
138
138
 
139
- 27 tools on the `{op}_{target}` grid — CRUD operations always carry the target suffix (`create_reference`, `update_property`); a bare verb appears only when the operation is unique and unambiguous (`cite`, `export`):
139
+ 28 tools — CRUD operations always carry the target suffix (`create_reference`, `update_property`); a bare verb appears only when the operation is unique and unambiguous (`cite`, `export`):
140
140
 
141
141
  | Surface | Tools |
142
142
  |---|---|
@@ -144,6 +144,7 @@ claude mcp add rubien -- node $(pwd)/dist/index.js # Claude Code
144
144
  | Citations | `rubien_cite`, `rubien_list_styles` |
145
145
  | Export | `rubien_export` |
146
146
  | Reading | `rubien_read_text`, `rubien_read_annotations`, `rubien_grep_text` |
147
+ | Activity | `rubien_reading_activity` |
147
148
  | PDFs | `rubien_get_pdf_info`, `rubien_render_pdf_page`, `rubien_download_pdf` |
148
149
  | Properties (columns + options, incl. Tags) | `rubien_list_properties`, `rubien_create_property`, `rubien_update_property`, `rubien_delete_property`, `rubien_create_option`, `rubien_update_option`, `rubien_delete_option` |
149
150
  | Saved views | `rubien_list_views`, `rubien_create_view`, `rubien_update_view`, `rubien_delete_view` |
package/dist/server.js CHANGED
@@ -8,9 +8,10 @@ import { registerViewTools } from "./tools/views.js";
8
8
  import { registerSyncTools } from "./tools/sync.js";
9
9
  import { registerPdfTools } from "./tools/pdf.js";
10
10
  import { registerReadTools } from "./tools/read.js";
11
+ import { registerActivityTools } from "./tools/activity.js";
11
12
  export const SERVER_INFO = {
12
13
  name: "rubien-mcp-server",
13
- version: "0.3.1",
14
+ version: "0.3.2",
14
15
  };
15
16
  export function buildServer() {
16
17
  const server = new McpServer(SERVER_INFO, {
@@ -27,6 +28,7 @@ export function buildServer() {
27
28
  registerViewTools(server);
28
29
  registerPdfTools(server);
29
30
  registerReadTools(server);
31
+ registerActivityTools(server);
30
32
  registerSyncTools(server);
31
33
  return server;
32
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;CACR,CAAC;AAEX,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE;QACxC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KAC5B,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,wEAAwE;IACxE,sEAAsE;IACtE,6DAA6D;IAC7D,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,MAAiB;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,0EAA0E;IAC1E,8BAA8B;IAC9B,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,WAAsB,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAChC,OAAQ,OAAwC,CAAC,GAAG,WAAW,CAAC,CAAC;IACnE,CAAC,CAAmB,CAAC,CAA+B,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,OAAO;CACR,CAAC;AAEX,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE;QACxC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;KAC5B,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,wEAAwE;IACxE,sEAAsE;IACtE,6DAA6D;IAC7D,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,MAAiB;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,0EAA0E;IAC1E,8BAA8B;IAC9B,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,WAAsB,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAChC,OAAQ,OAAwC,CAAC,GAAG,WAAW,CAAC,CAAC;IACnE,CAAC,CAAmB,CAAC,CAA+B,CAAC;AACzD,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { z } from "zod";
2
+ import { runCliAsTool } from "../toolHelpers.js";
3
+ export function registerActivityTools(server) {
4
+ server.registerTool("rubien_reading_activity", {
5
+ title: "Reading activity",
6
+ description: "Return Rubien's tracked reading and Assistant activity. A paper-day qualifies after at least 60 estimated foreground-reader seconds; only yearActivity is limited by year.",
7
+ inputSchema: {
8
+ year: z.number().int().min(1970).max(9999).optional(),
9
+ },
10
+ annotations: { readOnlyHint: true },
11
+ }, async ({ year }) => {
12
+ const args = ["stats"];
13
+ if (year !== undefined)
14
+ args.push("--year", String(year));
15
+ return runCliAsTool(args);
16
+ });
17
+ }
18
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/tools/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,4KAA4K;QAC9K,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;SACtD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,13 +1,12 @@
1
1
  import { probeCliVersion } from "./cli.js";
2
2
  /**
3
3
  * The minimum rubien-cli build this server requires. Equals the build that
4
- * shipped the unified {op}_{target} surface (add --source one-door, update
5
- * --properties, properties --update/--update-option, list --view) that the
6
- * 0.3.0 catalog shells out to. Bump only when a future server release
4
+ * first shipped `stats`, which backs `rubien_reading_activity` in the 0.3.2
5
+ * catalog. Bump only when a future server release
7
6
  * genuinely needs a newer CLI feature; the released CLI's build must always
8
7
  * be >= this value.
9
8
  */
10
- export const MIN_CLI_BUILD = 26;
9
+ export const MIN_CLI_BUILD = 28;
11
10
  const RELEASES = "https://github.com/devzhk/Rubien-releases/releases";
12
11
  const UPDATE_HINT = `Update Rubien.app (Mac) or download a newer rubien-cli from ${RELEASES} (Linux).`;
13
12
  /** When rubien-cli came from $RUBIEN_CLI, "update the app" is dead advice —
@@ -1 +1 @@
1
- {"version":3,"file":"versionGuard.js","sourceRoot":"","sources":["../src/versionGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAWhC,MAAM,QAAQ,GAAG,oDAAoD,CAAC;AACtE,MAAM,WAAW,GAAG,+DAA+D,QAAQ,WAAW,CAAC;AAEvG;qDACqD;AACrD,SAAS,YAAY,CAAC,KAAe;IACnC,OAAO,KAAK,CAAC,WAAW;QACtB,CAAC,CAAC,yEAAyE;YACzE,wEAAwE;QAC1E,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,gBAAgB,CAC9B,KAAe,EACf,QAAgB;IAEhB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI;YACP,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;gBAChC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EACL,oDAAoD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;wBACxE,kCAAkC,QAAQ,KAAK,WAAW,EAAE;wBAC5D,YAAY,CAAC,KAAK,CAAC;iBACtB,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,WAAW;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EACL,4CAA4C,KAAK,CAAC,MAAM,KAAK;oBAC7D,mEAAmE;oBACnE,mBAAmB,QAAQ,0CAA0C;oBACrE,YAAY,CAAC,KAAK,CAAC;aACtB,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EACL,oCAAoC,KAAK,CAAC,IAAI,kBAAkB;oBAChE,oBAAoB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc;oBACpE,iEAAiE;oBACjE,yEAAyE;oBACzE,YAAY,CAAC,KAAK,CAAC;aACtB,CAAC;QACJ,KAAK,YAAY;YACf,sEAAsE;YACtE,oEAAoE;YACpE,6BAA6B;YAC7B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EACL,oCAAoC,KAAK,CAAC,IAAI,oBAAoB;oBAClE,mEAAmE;oBACnE,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;aACzC,CAAC;IACN,CAAC;AACH,CAAC;AAED,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,QAAQ,GAAgC,IAAI,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;YACzE,IAAI,OAAO,CAAC,EAAE;gBAAE,UAAU,GAAG,IAAI,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"versionGuard.js","sourceRoot":"","sources":["../src/versionGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,MAAM,UAAU,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAWhC,MAAM,QAAQ,GAAG,oDAAoD,CAAC;AACtE,MAAM,WAAW,GAAG,+DAA+D,QAAQ,WAAW,CAAC;AAEvG;qDACqD;AACrD,SAAS,YAAY,CAAC,KAAe;IACnC,OAAO,KAAK,CAAC,WAAW;QACtB,CAAC,CAAC,yEAAyE;YACzE,wEAAwE;QAC1E,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,gBAAgB,CAC9B,KAAe,EACf,QAAgB;IAEhB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI;YACP,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;gBAChC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EACL,oDAAoD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;wBACxE,kCAAkC,QAAQ,KAAK,WAAW,EAAE;wBAC5D,YAAY,CAAC,KAAK,CAAC;iBACtB,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,WAAW;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EACL,4CAA4C,KAAK,CAAC,MAAM,KAAK;oBAC7D,mEAAmE;oBACnE,mBAAmB,QAAQ,0CAA0C;oBACrE,YAAY,CAAC,KAAK,CAAC;aACtB,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EACL,oCAAoC,KAAK,CAAC,IAAI,kBAAkB;oBAChE,oBAAoB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc;oBACpE,iEAAiE;oBACjE,yEAAyE;oBACzE,YAAY,CAAC,KAAK,CAAC;aACtB,CAAC;QACJ,KAAK,YAAY;YACf,sEAAsE;YACtE,oEAAoE;YACpE,6BAA6B;YAC7B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EACL,oCAAoC,KAAK,CAAC,IAAI,oBAAoB;oBAClE,mEAAmE;oBACnE,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;aACzC,CAAC;IACN,CAAC;AACH,CAAC;AAED,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,QAAQ,GAAgC,IAAI,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;YACzE,IAAI,OAAO,CAAC,EAAE;gBAAE,UAAU,GAAG,IAAI,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rubien-mcp-server",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "MCP server wrapping rubien-cli so Claude Code and claude.ai can manage the Rubien reference library.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "devzhk",