wontopos-mcp 1.0.20 → 1.0.22
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 +36 -15
- package/index.mjs +694 -287
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# wontopos-mcp — one memory across every AI tool
|
|
2
2
|
|
|
3
|
-
> **
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> **Beta.** The tools work today and are tested, but the surface may still
|
|
4
|
+
> change as we finish it. The [API and SDKs](https://wontopos.com/en/why)
|
|
5
|
+
> underneath are versioned separately.
|
|
6
6
|
|
|
7
7
|
[Wontopos (WOS)](https://wontopos.com) long-term memory as an [MCP](https://modelcontextprotocol.io) server.
|
|
8
8
|
|
|
@@ -40,11 +40,11 @@ claude mcp add wontopos --env WONTOPOS_API_KEY=wos-live-... -- npx -y wontopos-m
|
|
|
40
40
|
`WONTOPOS_USER_ID` picks the store this tool remembers into (optional, default
|
|
41
41
|
`"default"`) - one per project, per person, or per agent.
|
|
42
42
|
|
|
43
|
-
Store ids
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
Store ids compare without regard to case, so `My-Project` and `my-project` name one
|
|
44
|
+
store. An id that differs from an existing store's only by punctuation (`my_project`,
|
|
45
|
+
`My.Project`) cannot be created beside it: creating it answers `409 conflict_error`,
|
|
46
|
+
and using it answers 404. The boot line prints the id as configured. Pick ids that
|
|
47
|
+
stay distinct once punctuation is ignored.
|
|
48
48
|
|
|
49
49
|
The id must also match `[A-Za-z0-9][A-Za-z0-9._-]{0,63}`. An id outside that (anything
|
|
50
50
|
in a non-Latin script, an email address) cannot be used at all: creating it answers 400 and every
|
|
@@ -119,7 +119,7 @@ quietly ignored, and that refusal would otherwise land on every search.
|
|
|
119
119
|
| `recall` | One-call context: the **last 20 turns** (oldest first, one entry per utterance, so ten exchanges) plus relevant long-term memories and surroundings. First call when past context matters. `limit` (5-20) widens the sweep; `context_limit` (0-20) sets how much surrounding conversation rides along, `0` for the memories alone. Both need a limit-aware engine — an older one refuses the whole call, and the tool says which argument to drop. |
|
|
120
120
|
| `remember` | Store what the user said that is worth keeping. `speaker: "me"` = the agent's own spoken commitments. Fetched content (search results, files) is not a memory. |
|
|
121
121
|
| `store_turn` | Record one exchange as short-term history - what the user said and what the agent replied. This is what fills `recall`'s 20-turn window — one call appends two entries — and nothing else writes it, so the agent is told to call it after **each** exchange. A turn is billed like any write and is kept long-term as well, searchable afterwards. |
|
|
122
|
-
| `search` | Search stored memories. `filters` narrows by TIME or topic (`event_from`/`event_to` = when the content happened, `categories`) — for "what did we decide in June?", which a query alone will not pin down. `verify` (0-3) spends extra passes to reach further back; `max_images` (0-5) asks for photos. Answers with `memories`, plus `images` and `verify_used` when those applied. |
|
|
122
|
+
| `search` | Search stored memories. `filters` narrows by TIME or topic (`event_from`/`event_to` = when the content happened, `categories`) — for "what did we decide in June?", which a query alone will not pin down. `verify` (0-3) spends extra passes to reach further back; `max_images` (0-5) asks for photos. Answers with `memories`, plus `self_memories` (the assistant's own words, which `filters` do not narrow), `images` and `verify_used` when those applied. |
|
|
123
123
|
| `update` | Rewrite a memory the user's own words contradicted - keeps what is still true, adds what changed. |
|
|
124
124
|
| `forget` | Delete one memory by id. |
|
|
125
125
|
| `list_memories` | Browse everything stored (original text + metadata, paged) - "what do you know about me?", housekeeping. |
|
|
@@ -224,6 +224,28 @@ advertise different limits.
|
|
|
224
224
|
|
|
225
225
|
## Changelog
|
|
226
226
|
|
|
227
|
+
- **1.0.22** - back to beta, and less for the model to read. 1.0.19 to 1.0.21 said this
|
|
228
|
+
server was stable, but it is not ready yet, and this release changes the shape of
|
|
229
|
+
results. We are sorry for the change. The server instructions and tool descriptions go
|
|
230
|
+
from about 11.4k characters to 5.2k in the default setup: explanations, examples and
|
|
231
|
+
repeated notes are cut. With the argument schemas, what a model reads each session
|
|
232
|
+
goes from about 16.3k characters to 10.1k. Replies leave out empty and default fields
|
|
233
|
+
and the service's own notes, cut the times on memories to the second, and are not
|
|
234
|
+
indented. The fields left out no longer arrive, `revisions`' `counts` and `excludes`
|
|
235
|
+
among them. `search` returns the assistant's own words apart, in `self_memories`. They
|
|
236
|
+
used to be added to `memories`, so a filtered search mixed them, unfiltered, with what
|
|
237
|
+
matched. `view_image` says why it cannot show a picture rather than "Not found".
|
|
238
|
+
Underneath, the `wontopos` SDK pin moves to **2.2.42**.
|
|
239
|
+
|
|
240
|
+
- **1.0.21** - in HTTP mode every client gets its own session. A second host, a
|
|
241
|
+
reconnecting host and one that ended its session with DELETE each start a fresh
|
|
242
|
+
session, and a session id the server no longer holds answers 404, so a host starts
|
|
243
|
+
again after a restart. At most 32 sessions are kept, and an idle one closes after
|
|
244
|
+
30 minutes. A request body over 256 KiB or a batch of more than 16 messages is
|
|
245
|
+
refused. `--help` and `--version` print and exit without reading the environment,
|
|
246
|
+
and the boot lines name the store id as you configured it. Node 20 or later is now
|
|
247
|
+
required (it was 18). Underneath, the `wontopos` SDK pin moves to **2.2.41**.
|
|
248
|
+
|
|
227
249
|
- **1.0.20** - a trimmed reply no longer misreports its own size. When a result is
|
|
228
250
|
larger than the 128KB cap the server cuts the arrays inside it, and the sibling
|
|
229
251
|
`count` field kept the number from before the cut: a model was handed 100 memories
|
|
@@ -388,8 +410,7 @@ advertise different limits.
|
|
|
388
410
|
collision (`alice-smith` vs `alice.smith`, two people, one collection) from the same id
|
|
389
411
|
typed again. Sending the pre-folded form destroyed the signal, so a store created as
|
|
390
412
|
`My-Project` answered a later `create_store` for `my_project` with **409
|
|
391
|
-
conflict_error** - the store reported colliding with itself.
|
|
392
|
-
never affected (the API folds those on lookup either way). Now the raw id travels and
|
|
413
|
+
conflict_error** - the store reported colliding with itself. Now the raw id travels and
|
|
393
414
|
only the messages speak in folded terms. Also corrected: 1.0.10 warned that an id with
|
|
394
415
|
no latin alphanumerics makes every such id share one store. Measured
|
|
395
416
|
against the live rule, that is not what happens - store ids must match
|
|
@@ -401,10 +422,10 @@ advertise different limits.
|
|
|
401
422
|
1.0.8 fixed this for whitespace and stopped there: the API also lowercases an id and
|
|
402
423
|
turns anything outside `[a-z0-9_]` into `_`, so `WONTOPOS_USER_ID=My-Project` read and
|
|
403
424
|
wrote `my_project` while the ready line, the boot check and `create_store` all repeated
|
|
404
|
-
the operator's own spelling back as confirmation. The fold
|
|
405
|
-
ids differing only by case or punctuation
|
|
406
|
-
|
|
407
|
-
|
|
425
|
+
the operator's own spelling back as confirmation. The fold mattered because it collided:
|
|
426
|
+
ids differing only by case or punctuation reached ONE store then (case still does), and
|
|
427
|
+
1.0.10 also warned that an id with no latin alphanumerics folds to underscores that every
|
|
428
|
+
such id shares, which 1.0.11 above corrects. Both were stated at boot. Underneath, the `wontopos` SDK floor
|
|
408
429
|
moved to **2.2.27**: the declared range said `^2.2.24` while the lockfile still pinned
|
|
409
430
|
**2.2.22**, so this package was built and tested against an SDK five releases old,
|
|
410
431
|
including the one where store ids collapsed silently. A test now compares the LOCKED
|