mindwtr-mcp 1.1.8 → 1.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 +31 -14
- package/dist/index.js +85908 -67234
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,18 +18,33 @@ On desktop, the app shows the exact local data path in **Settings -> Sync -> Loc
|
|
|
18
18
|
|
|
19
19
|
## Requirements
|
|
20
20
|
|
|
21
|
-
- Node.js
|
|
21
|
+
- Node.js 20+ to run the helper. Prefer Node.js 22+ for prebuilt SQLite binaries on supported platforms; Node 20 requires a native build toolchain.
|
|
22
22
|
- npm package installs use better-sqlite3, a native SQLite addon. If no prebuilt binary is available for your platform, npm needs a working C/C++ build toolchain and Python for node-gyp.
|
|
23
23
|
- Bun (recommended for development in this repo)
|
|
24
24
|
- A local Mindwtr database (`mindwtr.db`) for local mode, or a self-hosted Mindwtr Cloud URL and bearer token for Cloud mode
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
- Linux: `~/.local/share/mindwtr/mindwtr.db`
|
|
28
|
-
- macOS: `~/Library/Application Support/mindwtr/mindwtr.db`
|
|
29
|
-
- Windows: `%APPDATA%\mindwtr\mindwtr.db`
|
|
26
|
+
With **npm 12**, approve the SQLite dependency's install script; otherwise a successful install can still fail at startup with a missing native binding. For `npx` or global installs, allow only `better-sqlite3`:
|
|
30
27
|
|
|
31
|
-
|
|
32
|
-
-
|
|
28
|
+
```bash
|
|
29
|
+
npx --allow-scripts=better-sqlite3 -y mindwtr-mcp --db "/path/to/mindwtr.db"
|
|
30
|
+
npm install -g --allow-scripts=better-sqlite3 mindwtr-mcp
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
In MCP client configurations using `npx`, add `"--allow-scripts=better-sqlite3"` before `"mindwtr-mcp"` in `args`. For an existing project-local install, run `npm install-scripts approve better-sqlite3`, then `npm rebuild better-sqlite3` from that project. Review the dependency before approving; do not enable all dependency scripts.
|
|
34
|
+
|
|
35
|
+
Default database locations. The installed Windows and macOS apps keep the database in a `data` subfolder from version 1.3.2 on; Linux and the portable builds are unchanged. The server looks in both places, so it finds the database either way.
|
|
36
|
+
|
|
37
|
+
- Linux: `~/.local/share/mindwtr/mindwtr.db` (Flatpak: `~/.var/app/tech.dongdongbh.mindwtr/data/mindwtr/mindwtr.db`)
|
|
38
|
+
- macOS, 1.3.2 and later: `~/Library/Application Support/mindwtr/data/mindwtr.db`
|
|
39
|
+
- macOS, 1.3.1 and earlier: `~/Library/Application Support/mindwtr/mindwtr.db`
|
|
40
|
+
- Windows, 1.3.2 and later: `%APPDATA%\mindwtr\data\mindwtr.db`
|
|
41
|
+
- Windows, 1.3.1 and earlier: `%APPDATA%\mindwtr\mindwtr.db`
|
|
42
|
+
|
|
43
|
+
Additional macOS paths for sandboxed builds:
|
|
44
|
+
- 1.3.2 and later: `~/Library/Containers/tech.dongdongbh.mindwtr/Data/Library/Application Support/mindwtr/data/mindwtr.db`
|
|
45
|
+
- 1.3.1 and earlier: `~/Library/Containers/tech.dongdongbh.mindwtr/Data/Library/Application Support/mindwtr/mindwtr.db`
|
|
46
|
+
|
|
47
|
+
A `--db` path pinned in an MCP client configuration keeps working across that move: if the file is not at the configured path, the server checks the matching `data` subfolder (or the parent folder) and reports on stderr which database it opened.
|
|
33
48
|
|
|
34
49
|
If `mindwtr.db` is missing but `data.json` exists in the same desktop data folder, the MCP server will bootstrap a fresh SQLite database from that local data snapshot on first start.
|
|
35
50
|
Desktop Settings → Sync → Local Data shows the exact storage location used by the app.
|
|
@@ -115,9 +130,9 @@ Flags (all have `MINDWTR_MCP_HTTP*` env var equivalents):
|
|
|
115
130
|
- `--http-host <host>` / `MINDWTR_MCP_HTTP_HOST` — bind address, default `127.0.0.1`.
|
|
116
131
|
- `--http-port <port>` / `MINDWTR_MCP_HTTP_PORT` — bind port, default `8722`.
|
|
117
132
|
|
|
118
|
-
The MCP endpoint is `POST /mcp` and requires `Authorization: Bearer <token>` on every request; `GET /healthz` returns `200 ok` without auth for reverse-proxy health checks. Requests without a valid token get `401`;
|
|
133
|
+
The MCP endpoint is `POST /mcp` and requires `Authorization: Bearer <token>` on every request; `GET /healthz` returns `200 ok` without auth for reverse-proxy health checks. Requests without a valid token get `401`; repeated authentication failures get `429` with a `Retry-After` header. Bodies over 1 MiB get `413`. When HTTP mode is on, the server does not also connect a stdio transport — it stays alive as long as the HTTP server is listening, not stdin.
|
|
119
134
|
|
|
120
|
-
There is no built-in TLS termination or rate limiting. If you're exposing this beyond localhost, put a reverse proxy (e.g. Caddy, nginx) in front for TLS and put the resulting `https://` URL (plus your token) into the remote MCP client.
|
|
135
|
+
There is no built-in TLS termination or rate limiting for authenticated requests. If you're exposing this beyond localhost, put a reverse proxy (e.g. Caddy, nginx) in front for TLS and put the resulting `https://` URL (plus your token) into the remote MCP client.
|
|
121
136
|
|
|
122
137
|
### Run directly from the repo
|
|
123
138
|
|
|
@@ -389,7 +404,8 @@ Any MCP-compatible client can work as long as it can launch a **stdio** server w
|
|
|
389
404
|
## Tools
|
|
390
405
|
|
|
391
406
|
- `mindwtr_list_tasks`
|
|
392
|
-
- Input: `{ status?, projectId?, includeDeleted?, limit?, offset?, search?, dueDateFrom?, dueDateTo?, sortBy?, sortOrder? }`
|
|
407
|
+
- Input: `{ status?, projectId?, includeDeleted?, limit?, offset?, search?, dueDateFrom?, dueDateTo?, isFocusedToday?, view?, sortBy?, sortOrder? }`
|
|
408
|
+
- `view` narrows by GTD availability: `available`, `deferred` or `blocked`
|
|
393
409
|
- `mindwtr_list_projects`
|
|
394
410
|
- Input: `{}`
|
|
395
411
|
- `mindwtr_get_project`
|
|
@@ -407,11 +423,12 @@ Any MCP-compatible client can work as long as it can launch a **stdio** server w
|
|
|
407
423
|
- `mindwtr_get_task`
|
|
408
424
|
- Input: `{ id, includeDeleted? }`
|
|
409
425
|
- `mindwtr_add_task` **(requires `--write`)**
|
|
410
|
-
- Input: `{ title? | quickAdd?, status?, projectId?, sectionId?, areaId?, dueDate?, startTime?, reviewAt?, recurrence?, contexts?, tags?, description?, priority?, energyLevel?, assignedTo?, timeEstimate?, taskMode?, relativeStartOffset?, showFutureRecurrence?, pushCount?, checklist?, textDirection?, location?, isFocusedToday?, timeSpentMinutes?, suppressMindwtrReminders?, repeatReminderMinutes?, attachments? }`
|
|
426
|
+
- Input: `{ title? | quickAdd?, status?, projectId?, sectionId?, areaId?, dueDate?, startTime?, cancelledAt?, reviewAt?, recurrence?, contexts?, tags?, description?, priority?, energyLevel?, assignedTo?, timeEstimate?, taskMode?, relativeStartOffset?, showFutureRecurrence?, pushCount?, checklist?, textDirection?, location?, isFocusedToday?, timeSpentMinutes?, suppressMindwtrReminders?, repeatReminderMinutes?, attachments? }`
|
|
411
427
|
- `mindwtr_update_task` **(requires `--write`)**
|
|
412
|
-
- Input: `{ id, title?, status?, projectId?, sectionId?, areaId?, dueDate?, startTime?, reviewAt?, recurrence?, contexts?, tags?, description?, priority?, energyLevel?, assignedTo?, timeEstimate?, taskMode?, relativeStartOffset?, showFutureRecurrence?, pushCount?, checklist?, textDirection?, location?, isFocusedToday?, timeSpentMinutes?, suppressMindwtrReminders?, repeatReminderMinutes?, order?, boardOrder?, focusOrder?, attachments? }`
|
|
428
|
+
- Input: `{ id, title?, status?, projectId?, sectionId?, areaId?, dueDate?, startTime?, cancelledAt?, reviewAt?, recurrence?, contexts?, tags?, description?, priority?, energyLevel?, assignedTo?, timeEstimate?, taskMode?, relativeStartOffset?, showFutureRecurrence?, pushCount?, checklist?, textDirection?, location?, isFocusedToday?, timeSpentMinutes?, suppressMindwtrReminders?, repeatReminderMinutes?, order?, boardOrder?, focusOrder?, attachments? }`
|
|
413
429
|
- `recurrence` accepts a recurrence object or an RFC 5545 RRULE string. Pass `null` to clear it.
|
|
414
430
|
- `attachments` holds link attachments only (`{ id?, title?, uri }`, e.g. `obsidian://`, `file://` or `https://`). The list you pass is the complete set of links: links you leave out are removed, file attachments are never touched, and `null` clears every link.
|
|
431
|
+
- `cancelledAt` is an ISO timestamp with timezone. Setting it closes the task as cancelled (`archived`) without counting it as completed or generating its next recurrence. Moving it to an active status or completing it clears cancellation. Update every syncing client before using cancellation; older writers can discard the marker.
|
|
415
432
|
- `mindwtr_complete_task` **(requires `--write`)**
|
|
416
433
|
- Input: `{ id }`
|
|
417
434
|
- `mindwtr_delete_task` **(requires `--write`)**
|
|
@@ -419,9 +436,9 @@ Any MCP-compatible client can work as long as it can launch a **stdio** server w
|
|
|
419
436
|
- `mindwtr_restore_task` **(requires `--write`)**
|
|
420
437
|
- Input: `{ id }`
|
|
421
438
|
- `mindwtr_add_project` **(requires `--write`)**
|
|
422
|
-
- Input: `{ title, color?, status?, areaId?, isSequential?, isFocused?, dueDate?, startDate?, reviewAt?, supportNotes?, attachments? }`
|
|
439
|
+
- Input: `{ title, color?, status?, areaId?, isSequential?, isFocused?, dueDate?, startDate?, cancelledAt?, reviewAt?, supportNotes?, attachments? }`
|
|
423
440
|
- `mindwtr_update_project` **(requires `--write`)**
|
|
424
|
-
- Input: `{ id, title?, color?, status?, areaId?, isSequential?, isFocused?, dueDate?, startDate?, reviewAt?, supportNotes?, attachments? }`
|
|
441
|
+
- Input: `{ id, title?, color?, status?, areaId?, isSequential?, isFocused?, dueDate?, startDate?, cancelledAt?, reviewAt?, supportNotes?, attachments? }`
|
|
425
442
|
- `attachments` follows the same rule as `mindwtr_update_task`: link attachments only, the list is the complete set of links, and `null` clears them.
|
|
426
443
|
- `mindwtr_delete_project` **(requires `--write`)**
|
|
427
444
|
- Input: `{ id }`
|