mindwtr-mcp 1.0.5 → 1.1.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 +26 -7
- package/dist/index.js +60360 -45334
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Mindwtr MCP Server
|
|
2
2
|
|
|
3
|
-
MCP server for Mindwtr. Connect MCP clients (Claude Desktop, etc.) to either your local Mindwtr SQLite database or a self-hosted Mindwtr Cloud endpoint
|
|
3
|
+
MCP server for Mindwtr. Connect MCP clients (Claude Desktop, etc.) to either your local Mindwtr SQLite database or a self-hosted Mindwtr Cloud endpoint.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
By default this is a **stdio** server: MCP clients launch it as a subprocess and talk over JSON-RPC on stdin/stdout. It also has an opt-in **HTTP transport** (see [Remote access (HTTP)](#remote-access-http)) for self-hosters who want to expose it at a URL instead.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -21,7 +21,7 @@ On desktop, the app shows the exact local data path in **Settings -> Sync -> Loc
|
|
|
21
21
|
- Node.js 18+ (for the MCP client that spawns the server)
|
|
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
|
-
- A local Mindwtr database (`mindwtr.db`) for local mode, or a self-hosted Mindwtr Cloud URL and bearer token for
|
|
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
26
|
Default database locations:
|
|
27
27
|
- Linux: `~/.local/share/mindwtr/mindwtr.db`
|
|
@@ -74,11 +74,11 @@ Or let an MCP client launch it through npx:
|
|
|
74
74
|
}
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
The npm package is read-only by default. Add `--write` only when you explicitly want add/update/complete/delete tools enabled
|
|
77
|
+
The npm package is read-only by default. Add `--write` only when you explicitly want add/update/complete/delete tools enabled.
|
|
78
78
|
|
|
79
|
-
###
|
|
79
|
+
### Self-hosted Cloud mode
|
|
80
80
|
|
|
81
|
-
Use Cloud mode when you run your own Mindwtr Cloud server and want MCP
|
|
81
|
+
Use Cloud mode when you run your own Mindwtr Cloud server and want MCP tools without pointing the helper at a local SQLite database:
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
84
|
npx -y mindwtr-mcp \
|
|
@@ -94,12 +94,31 @@ MINDWTR_MCP_CLOUD_TOKEN="$MINDWTR_TOKEN" \
|
|
|
94
94
|
npx -y mindwtr-mcp
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
-
Cloud mode uses the self-hosted Cloud API
|
|
97
|
+
Cloud mode uses the self-hosted Cloud API. Reads come from the current `/v1/data` snapshot; with `--write`, task/project/section/area writes go through the Cloud server's per-resource REST endpoints (`POST /v1/tasks`, `PATCH /v1/tasks/:id`, and so on), so they get the same validation and revision stamping as any other client. Without `--write`, write tools return `read_only`. Person edits and restoring deleted tasks are not available in Cloud mode yet.
|
|
98
98
|
|
|
99
99
|
This does not make Mindwtr Cloud itself a hosted MCP server. It is still the same stdio helper, backed by a Cloud URL that you operate.
|
|
100
100
|
|
|
101
101
|
For private HTTP test deployments, local/private HTTP URLs are allowed by the shared Cloud client rules. Use `--cloud-allow-insecure-http=true` only for a self-hosted endpoint you intentionally trust.
|
|
102
102
|
|
|
103
|
+
### Remote access (HTTP)
|
|
104
|
+
|
|
105
|
+
By default `mindwtr-mcp` only speaks stdio. Pass `--http` to also (instead of stdio) serve a stateless streamable-HTTP MCP endpoint, so you can point a remote MCP client at a URL — the motivating case is [Gemini Spark](https://gemini.google.com) "custom apps", which take an MCP server URL. HTTP mode works with either backend (local SQLite or self-hosted Cloud).
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
mindwtr-mcp --http --http-token "$(openssl rand -hex 32)" --db "/path/to/mindwtr.db"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Flags (all have `MINDWTR_MCP_HTTP*` env var equivalents):
|
|
112
|
+
|
|
113
|
+
- `--http` / `MINDWTR_MCP_HTTP` — enable HTTP mode. Also implied by setting `--http-host`, `--http-port`, or `--http-token`.
|
|
114
|
+
- `--http-token <token>` / `MINDWTR_MCP_HTTP_TOKEN` — **required** whenever HTTP mode is on, at least 16 characters. Generate one with `openssl rand -hex 32`. The server refuses to start without it — there is no way to expose HTTP mode unauthenticated, even on loopback.
|
|
115
|
+
- `--http-host <host>` / `MINDWTR_MCP_HTTP_HOST` — bind address, default `127.0.0.1`.
|
|
116
|
+
- `--http-port <port>` / `MINDWTR_MCP_HTTP_PORT` — bind port, default `8722`.
|
|
117
|
+
|
|
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`; 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
|
+
|
|
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.
|
|
121
|
+
|
|
103
122
|
### Run directly from the repo
|
|
104
123
|
|
|
105
124
|
```bash
|