wenlan-mcp 0.9.0 → 0.9.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 +19 -16
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
<a href="#what-you-get"><img alt="Obsidian" src="https://img.shields.io/badge/Obsidian-Markdown%20pages-7C3AED"></a>
|
|
26
26
|
</p>
|
|
27
27
|
|
|
28
|
+
<p align="center">
|
|
29
|
+
English | <a href="./README.zh-Hans.md">简体中文</a> | <a href="./README.zh-Hant.md">繁體中文</a>
|
|
30
|
+
</p>
|
|
31
|
+
|
|
28
32
|
**A living personal knowledge library for the AI-native age, built by your agents and grounded in its sources.**
|
|
29
33
|
|
|
30
34
|
Wenlan (文瀾) takes its name from an imperial library that held one of China's largest book collections. Your agents capture what they learn as they work, and you add the pages and sources you already trust, so the library grows from the bottom up and the top down. Wenlan keeps it current on its own, distilling both into source-cited wiki pages.
|
|
@@ -39,9 +43,9 @@ Unlike a static llm-wiki, it keeps evolving between sessions. Unlike a black-box
|
|
|
39
43
|
|
|
40
44
|
## What makes Wenlan distinct
|
|
41
45
|
|
|
42
|
-
1. **
|
|
43
|
-
2. **
|
|
44
|
-
3. **
|
|
46
|
+
1. **Trustworthy on its own.** Every page cites the memories it came from, and the daemon refuses unsourced pages rather than letting hallucinated summaries in. It dedupes facts and supersedes the old version when one changes, so you read a clean, current wiki instead of a pile of duplicates. The everyday flow never stops for approval; a capture only surfaces for you when something genuinely conflicts.
|
|
47
|
+
2. **Evolves on its own.** Most memory tools just hand back what you put in. Wenlan keeps working between sessions, clustering your captures into source-cited wiki pages that feed retrieval alongside the atomic notes they came from. Unlike a static llm-wiki, it stays current without you maintaining it.
|
|
48
|
+
3. **One home, locked to none.** Every MCP client queries the same local daemon, so context built in one tool shows up in the next. Obsidian is one optional view you can symlink in, not where your work lives.
|
|
45
49
|
4. **Real git versioning.** Memory, page, and session writes commit into `~/.wenlan/.git/`, so you can inspect, diff, revert, or branch the Markdown artifacts.
|
|
46
50
|
```text
|
|
47
51
|
a1b2c3d page: embedding-retrieval refreshed (4 sources)
|
|
@@ -57,7 +61,7 @@ Unlike a static llm-wiki, it keeps evolving between sessions. Unlike a black-box
|
|
|
57
61
|
|
|
58
62
|
```text
|
|
59
63
|
/plugin marketplace add 7xuanlu/claude-plugins
|
|
60
|
-
/plugin install
|
|
64
|
+
/plugin install wenlan@7xuanlu
|
|
61
65
|
/init
|
|
62
66
|
```
|
|
63
67
|
|
|
@@ -86,15 +90,15 @@ Set up the local Wenlan runtime:
|
|
|
86
90
|
npx -y wenlan setup
|
|
87
91
|
```
|
|
88
92
|
|
|
89
|
-
Then start with `~/.
|
|
93
|
+
Then start with `~/.wenlan/bin/wenlan status`, `~/.wenlan/bin/wenlan recall <query>`, or `~/.wenlan/bin/wenlan store <text>`. CLI details: [crates/wenlan-cli](crates/wenlan-cli/README.md).
|
|
90
94
|
|
|
91
95
|
Service management:
|
|
92
96
|
|
|
93
97
|
```bash
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
wenlan install # register + start the daemon (stops a running one first)
|
|
99
|
+
wenlan restart # stop + start the daemon -- run this after upgrading
|
|
100
|
+
wenlan status
|
|
101
|
+
wenlan uninstall
|
|
98
102
|
```
|
|
99
103
|
|
|
100
104
|
After upgrading Wenlan (`npx -y wenlan setup` or `install.sh`), the new binary is on disk but the already-running daemon keeps serving the old code until you restart it. `wenlan install` now restarts automatically; if you upgraded another way, run `wenlan restart`.
|
|
@@ -163,26 +167,25 @@ Or declaratively via `~/.wenlan/spaces.toml` (see
|
|
|
163
167
|
wenlan space show ideas
|
|
164
168
|
wenlan space move scratch career
|
|
165
169
|
|
|
166
|
-
`
|
|
170
|
+
`wenlan doctor` prints the current resolver state so you can see exactly
|
|
167
171
|
which layer chose the active space.
|
|
168
172
|
|
|
169
173
|
---
|
|
170
174
|
|
|
171
175
|
## Evaluation
|
|
172
176
|
|
|
173
|
-
**Hybrid retrieval, transparent eval.** BGE-Base-EN-v1.5-Q + FTS5 + Reciprocal Rank Fusion; local BGE-Reranker-Base cross-encoder rerank is the default path when enabled, with BGE-Reranker-V2-M3 available as a higher-quality option. The table
|
|
177
|
+
**Hybrid retrieval, transparent eval.** BGE-Base-EN-v1.5-Q + FTS5 + Reciprocal Rank Fusion; local BGE-Reranker-Base cross-encoder rerank is the default path when enabled, with BGE-Reranker-V2-M3 available as a higher-quality option. The retrieval table is not end-to-end answer quality. ~168 tokens per recall query. Eval harness at [`crates/wenlan-core/src/eval/`](crates/wenlan-core/src/eval/). Run it yourself.
|
|
174
178
|
|
|
175
|
-
Update workflow in [docs/eval](docs/eval/README.md).
|
|
179
|
+
Update workflow and answer-quality snapshots live in [docs/eval](docs/eval/README.md).
|
|
176
180
|
|
|
177
181
|
|
|
178
182
|
<!-- EVAL_SNAPSHOT_START -->
|
|
179
183
|
| Benchmark | Recall@5 | MRR | NDCG@10 |
|
|
180
184
|
|---|---:|---:|---:|
|
|
181
|
-
|
|
|
182
|
-
|
|
|
185
|
+
| LME_Oracle (500 Q) | 93.6% | 0.857 | 0.883 |
|
|
186
|
+
| LME_S (deep, 90 Q) | 87.7% | 0.815 | 0.822 |
|
|
183
187
|
<!-- EVAL_SNAPSHOT_END -->
|
|
184
188
|
|
|
185
|
-
|
|
186
189
|
---
|
|
187
190
|
|
|
188
191
|
## Repo Map
|
|
@@ -233,7 +236,7 @@ Longer-form writing on AI work memory and how Wenlan compares lives at [useorigi
|
|
|
233
236
|
**Comparisons**
|
|
234
237
|
- [Wenlan vs Basic Memory](https://useorigin.app/learn/origin-vs-basic-memory): Markdown knowledge base vs AI work-session memory
|
|
235
238
|
- [Wenlan vs claude-mem](https://useorigin.app/learn/origin-vs-claude-mem): observer-style Claude Code memory vs MCP-first cross-tool memory
|
|
236
|
-
- [Wenlan vs Superlocal Memory](https://useorigin.app/learn/origin-vs-superlocal-memory):
|
|
239
|
+
- [Wenlan vs Superlocal Memory](https://useorigin.app/learn/origin-vs-superlocal-memory): tradeoffs against another local memory shape
|
|
237
240
|
|
|
238
241
|
**Docs**
|
|
239
242
|
- [Get started](https://useorigin.app/docs/get-started): install + verify the first local memory loop
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wenlan-mcp",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "Local-first memory layer for AI agents - MCP server",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"agents",
|
|
16
16
|
"claude",
|
|
17
17
|
"chatgpt",
|
|
18
|
-
"
|
|
18
|
+
"wenlan"
|
|
19
19
|
],
|
|
20
20
|
"homepage": "https://github.com/7xuanlu/wenlan#readme",
|
|
21
21
|
"bugs": {
|