@appsoftwareltd/etherpk-mcp 0.8.3 → 0.8.4

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
@@ -25,7 +25,7 @@ server and graph filled in:
25
25
  # unlocked. The same step as adding a phone.
26
26
  npx @appsoftwareltd/etherpk-mcp login --sync-server https://sync.etherpk.com
27
27
 
28
- # Tell the agent about the graph (Claude Code shown; the Agents tab has the others).
28
+ # Tell the agent about the graph (Claude Code shown - the Agents tab has the others).
29
29
  claude mcp add etherpk -- npx @appsoftwareltd/etherpk-mcp serve --sync-server https://sync.etherpk.com --graph <graph id>
30
30
  ```
31
31
 
@@ -46,7 +46,7 @@ The server describes its tools and the graph to the agent, so no skill or extra
46
46
  about something you've written down and the agent uses the tools. To make that a rule rather than
47
47
  the agent's judgement, add a line to your `CLAUDE.md`, or your agent's equivalent:
48
48
 
49
- > My notes live in EtherPK; use the etherpk MCP tools for anything I've written down, and `search`
49
+ > My notes are stored in EtherPK - use the etherpk MCP tools for anything I've written down, and `search`
50
50
  > in semantic mode for questions.
51
51
 
52
52
  ## What the agent can do
@@ -57,22 +57,22 @@ and every tool refuses a protected document.
57
57
  | Group | Tools | Notes |
58
58
  | --- | --- | --- |
59
59
  | Find and read | `graph_info`, `list_documents`, `read_document`, `read_documents`, `search`, `backlinks`, `tasks` | `list_documents` can narrow to a range of journal days. `read_document` returns the body as text and the frontmatter as data. |
60
- | Edit | `edit_document`, `append_document`, `create_page`, `set_task`, `set_frontmatter`, `set_aliases` | `edit_document` replaces one exact, unique piece of text; on a synced graph it merges with edits made elsewhere at the same time. `append_document` creates a day's journal entry when there is none. `set_frontmatter` sets any key except `title`, `aliases` and `publication`, which have tools of their own. |
60
+ | Edit | `edit_document`, `append_document`, `create_page`, `set_task`, `set_frontmatter`, `set_aliases` | `edit_document` replaces one exact, unique piece of text - on a synced graph it merges with edits made elsewhere at the same time. `append_document` creates a day's journal entry when there is none. `set_frontmatter` sets any key except `title`, `aliases` and `publication`, which have tools of their own. |
61
61
  | Rename | `plan_rename`, `rename` | Links to the old name are rewritten by default and scoped concepts move with it. Renaming onto a name that is taken merges two documents and needs confirming. |
62
62
  | Images and files | `upload_asset`, `read_asset`, `list_assets` | `upload_asset` returns the markdown to paste into a document. It refuses hidden files and folders (`.ssh`, `.env`), the Headless Client's own config and cache, and files over 100 MiB. `read_asset` writes an asset to a local file. |
63
- | Publishing | `list_publications`, `create_publication`, `update_publication`, `publish` | `publish` writes into the folder you set with the `publish` command; the agent can't choose one. |
64
- | Themes | `list_themes`, `read_theme`, `read_theme_file`, `create_theme`, `customise_publication_theme`, `write_theme_file`, `delete_theme_file`, `import_theme_folder`, `delete_theme`, `preview_theme` | Bundled themes are read-only; customising one copies it into the graph. `preview_theme` renders a site to inspect, with screenshots when a browser is set up. |
63
+ | Publishing | `list_publications`, `create_publication`, `update_publication`, `publish` | `publish` writes into the folder you set with the `publish` command - the agent can't choose one. |
64
+ | Themes | `list_themes`, `read_theme`, `read_theme_file`, `create_theme`, `customise_publication_theme`, `write_theme_file`, `delete_theme_file`, `import_theme_folder`, `delete_theme`, `preview_theme` | Bundled themes are read-only - customising one copies it into the graph. `preview_theme` renders a site to inspect, with screenshots when a browser is set up. |
65
65
 
66
66
  `read_asset`, `read_theme` and `preview_theme` write only under the graph's **downloads directory**,
67
67
  `downloads` inside the graph's folder in the cache directory, and `import_theme_folder` reads only
68
- from there. An agent names a folder relative to it and gets the full path back; a folder outside it
68
+ from there. An agent names a folder relative to it and gets the full path back - a folder outside it
69
69
  is refused, so a prompt hidden in a note cannot steer the agent into writing or reading elsewhere.
70
70
  Copy a file out with your own tools when you want it somewhere else.
71
71
 
72
72
  ## Search by meaning
73
73
 
74
74
  `search` matches words. After one setup step it also matches **meaning**: "when do I pay my taxes"
75
- finds the note that says "due 31 January". A small embedding model runs on this computer; nothing is
75
+ finds the note that says "due 31 January". A small embedding model runs on this computer - nothing is
76
76
  sent anywhere, and protected documents are never embedded.
77
77
 
78
78
  ```sh
@@ -89,14 +89,14 @@ directory, once per computer.
89
89
  Each result carries the document, its breadcrumb of headings and parent bullets, the passage's
90
90
  lines and text, and a similarity score. Passage text has bullet markers and `[[ ]]` removed, so
91
91
  quote it, but take the `old` text for `edit_document` from `read_document`.
92
- - **Progress.** The first pass over a large graph takes minutes and runs in the background; after
92
+ - **Progress.** The first pass over a large graph takes minutes and runs in the background - after
93
93
  that only changed documents are embedded. Every semantic result reports `embedded`, `total` and
94
94
  `complete`, and `semantic status` shows each cached graph.
95
95
  - **Only while `serve` runs.** `serve` builds and updates the store, and runs only while an agent
96
96
  session has it open. To keep a graph current without an agent, run
97
97
  `npx @appsoftwareltd/etherpk-mcp serve --graph <id> </dev/null &` (or `--folder <path>`).
98
98
  - **Load.** The model uses a quarter of the cores, at most four, and pauses for a tenth of a second
99
- between batches. `ETHERPK_MCP_SEMANTIC_THREADS` changes the thread count; set it in the agent
99
+ between batches. `ETHERPK_MCP_SEMANTIC_THREADS` changes the thread count - set it in the agent
100
100
  registration's `env`.
101
101
  - **Per agent.** `serve --no-semantic` keeps one registration text-only.
102
102
 
@@ -120,7 +120,7 @@ give its address to `login`.
120
120
 
121
121
  `graphs` lists the synced graphs each signed-in account can reach, with the name, the id and your
122
122
  role. `serve --graph` takes the id or the name. A graph nobody has opened since names were first
123
- stored on the server is opened once to read its name; `(unnamed)` means it has none.
123
+ stored on the server is opened once to read its name - `(unnamed)` means it has none.
124
124
 
125
125
  ### Several Sync Servers
126
126
 
@@ -136,7 +136,7 @@ and the commands the Agents tab shows always include it.
136
136
  tool call, and the index follows within a second or so.
137
137
  - A tool's write is in the file when the tool returns. If a write fails, the agent is told why and
138
138
  the edit is retried on the next write.
139
- - The index lives under the cache directory, never in the folder. Moving or renaming the folder
139
+ - The index is stored under the cache directory, never in the folder. Moving or renaming the folder
140
140
  starts the index again.
141
141
 
142
142
  ## Publishing a site
@@ -155,13 +155,13 @@ npx @appsoftwareltd/etherpk-mcp publish --graph <id or name> --publication <id>
155
155
  republishes itself.
156
156
  - Mermaid diagrams need a browser. `diagrams setup` installs a Chromium of about 170 MB into the
157
157
  cache directory, once per computer, and a publish whose pages hold diagrams refuses until then.
158
- `ETHERPK_CHROMIUM` names a Chromium already on the computer instead; NixOS needs this.
158
+ `ETHERPK_CHROMIUM` names a Chromium already on the computer instead - NixOS needs this.
159
159
  - `list_publications`, or **Settings → Publish** in EtherPK, shows the publication ids.
160
160
 
161
161
  ## Reference
162
162
 
163
163
  Every command is `npx @appsoftwareltd/etherpk-mcp <command>`. `npx` never puts `etherpk-mcp` on
164
- your PATH; for the short form, install the package globally once:
164
+ your PATH - for the short form, install the package globally once:
165
165
 
166
166
  ```sh
167
167
  npm install -g @appsoftwareltd/etherpk-mcp
@@ -189,7 +189,7 @@ npm install -g @appsoftwareltd/etherpk-mcp
189
189
 
190
190
  | Flag | Applies to | Meaning |
191
191
  | --- | --- | --- |
192
- | `--sync-server <url>` | `login`, `graphs`, `serve --graph`, `publish --graph`, `logout` | Which Sync Server the command means. Required for `login`; elsewhere optional while only one server is signed in. `serve` and `logout` refuse to guess when several are. |
192
+ | `--sync-server <url>` | `login`, `graphs`, `serve --graph`, `publish --graph`, `logout` | Which Sync Server the command means. Required for `login` - elsewhere optional while only one server is signed in. `serve` and `logout` refuse to guess when several are. |
193
193
  | `--pat <token>` | `login` | The Personal Access Token, instead of the prompt. |
194
194
  | `--recovery-code` | `login` | Unlock with your Recovery Code instead of waiting for Device Approval. Pressing `r` while `login` waits does the same. |
195
195
  | `--graph <id or name>` | `serve`, `publish` | The synced graph. Not with `--folder`. |
@@ -234,7 +234,7 @@ and keys on this computer and deletes that server's cached graphs.
234
234
 
235
235
  ## Build from source
236
236
 
237
- The package lives at `apps/mcp` in the etherpk-client repository. It compiles the Client's sync,
237
+ The package's source is `apps/mcp` in the etherpk-client repository. It compiles the Client's sync,
238
238
  crypto and index code in through a `$lib` alias, so it builds from the repository root, not from
239
239
  this folder alone:
240
240
 
@@ -242,7 +242,7 @@ this folder alone:
242
242
  pnpm install --frozen-lockfile
243
243
  pnpm --filter @appsoftwareltd/etherpk-mcp check # type check
244
244
  pnpm --filter @appsoftwareltd/etherpk-mcp test # unit tests, no server needed
245
- pnpm --filter @appsoftwareltd/etherpk-mcp build # dist/main.js; run it with node dist/main.js
245
+ pnpm --filter @appsoftwareltd/etherpk-mcp build # dist/main.js - run it with node dist/main.js
246
246
  ```
247
247
 
248
248
  Releases are published to npm by the repository's CI, at the same version as the Client. To check