incremnt 0.1.8 → 0.1.10

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,6 @@
1
1
  # incremnt
2
2
 
3
- Command-line tool for querying your [incremnt](https://incremnt.app) strength training data.
3
+ Command-line tool and MCP server for querying your [incremnt](https://incremnt.app) strength training data.
4
4
 
5
5
  ## Install
6
6
 
@@ -8,7 +8,9 @@ Command-line tool for querying your [incremnt](https://incremnt.app) strength tr
8
8
  npm install -g incremnt
9
9
  ```
10
10
 
11
- ## Usage
11
+ This gives you two commands: `incremnt` (CLI) and `incremnt-mcp` (MCP server).
12
+
13
+ ## CLI
12
14
 
13
15
  ### Hosted sync (recommended)
14
16
 
@@ -34,7 +36,7 @@ incremnt records --input ~/Downloads/export.onemore.json --pretty
34
36
 
35
37
  If `--input` is omitted, the CLI checks `INCREMNT_SNAPSHOT`, then `ONEMORE_SNAPSHOT`, then common local paths, then the most recent `.onemore.json` in `~/Downloads`.
36
38
 
37
- ## Commands
39
+ ### Commands
38
40
 
39
41
  | Command | Description |
40
42
  |---------|-------------|
@@ -49,7 +51,7 @@ If `--input` is omitted, the CLI checks `INCREMNT_SNAPSHOT`, then `ONEMORE_SNAPS
49
51
  | `status` | Show current mode, auth state, and config paths |
50
52
  | `contract` | Machine-readable command surface for scripts |
51
53
 
52
- ## Flags
54
+ ### Flags
53
55
 
54
56
  | Flag | Description |
55
57
  |------|-------------|
@@ -57,10 +59,34 @@ If `--input` is omitted, the CLI checks `INCREMNT_SNAPSHOT`, then `ONEMORE_SNAPS
57
59
  | `--input <path>` | Path to a local `.onemore.json` snapshot |
58
60
  | `--limit <n>` | Limit number of results (for `sessions list`) |
59
61
 
60
- ## Exercise matching
62
+ ### Exercise matching
61
63
 
62
64
  `exercises history --name "Bench Press"` uses canonical synonym matching, so it finds `Barbell Bench Press` without pulling in incline, machine, or dumbbell variants.
63
65
 
66
+ ## MCP Server
67
+
68
+ The package includes an [MCP](https://modelcontextprotocol.io) server that exposes the same queries as tools for AI assistants like Claude.
69
+
70
+ ### Setup
71
+
72
+ Add to your Claude Code project config (`.mcp.json`):
73
+
74
+ ```json
75
+ {
76
+ "mcpServers": {
77
+ "incremnt": {
78
+ "type": "stdio",
79
+ "command": "npx",
80
+ "args": ["-y", "incremnt-mcp"]
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ Or run directly: `npx incremnt-mcp`
87
+
88
+ The MCP server uses the same auth session as the CLI — run `incremnt login` first.
89
+
64
90
  ## License
65
91
 
66
92
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incremnt",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Command-line tool for querying your incremnt strength training data",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/mcp.js CHANGED
File without changes
package/src/queries.js CHANGED
@@ -207,6 +207,7 @@ export function sessionDetails(snapshot, sessionId) {
207
207
  summary.exercises = (session.exercises ?? []).map((exercise) => ({
208
208
  name: exercise.name,
209
209
  muscleGroup: exercise.muscleGroup ?? null,
210
+ swappedFrom: exercise.swappedFrom ?? null,
210
211
  sets: (exercise.sets ?? []).filter((s) => s.isComplete).map((s) => ({
211
212
  weight: s.weight ?? null,
212
213
  reps: s.reps ?? null,
@@ -235,6 +236,7 @@ export function plannedVsActual(snapshot, sessionId) {
235
236
  return {
236
237
  exerciseName: exercise.name,
237
238
  muscleGroup: exercise.muscleGroup,
239
+ swappedFrom: exercise.swappedFrom ?? null,
238
240
  plannedSets: planned?.targetSets ?? [],
239
241
  actualSets: (exercise.sets ?? []).filter((set) => set.isComplete),
240
242
  plannedRir: planned?.rir ?? null,