fathom-mcp 0.4.0 → 0.4.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/fathom-agents.md +3 -30
- package/package.json +1 -1
- package/src/index.js +2 -9
- package/src/server-client.js +9 -0
package/fathom-agents.md
CHANGED
|
@@ -2,34 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
{{DESCRIPTION}}
|
|
4
4
|
|
|
5
|
-
## Memory — Memento Protocol
|
|
6
|
-
|
|
7
|
-
Working memory is managed by Memento (workspace: `{{WORKSPACE_NAME}}`).
|
|
8
|
-
|
|
9
|
-
**On session start:**
|
|
10
|
-
1. `memento_health` — verify connection
|
|
11
|
-
2. `memento_item_list` — check active work items and their next actions
|
|
12
|
-
3. `memento_recall` with current task context — find relevant past memories
|
|
13
|
-
|
|
14
|
-
**During work — actively manage your memories:**
|
|
15
|
-
- `memento_store` when you learn something, make a decision, or discover a pattern
|
|
16
|
-
- `memento_recall` before starting any subtask — someone may have already figured it out
|
|
17
|
-
- `memento_item_update` as you make progress — don't wait until the end
|
|
18
|
-
- `memento_item_create` when new work emerges
|
|
19
|
-
- `memento_skip_add` the moment you hit a dead end (with expiry)
|
|
20
|
-
- `memento_consolidate` when recall returns 3+ overlapping memories on the same topic
|
|
21
|
-
- Delete or archive items that are done or wrong — stale memory is worse than no memory
|
|
22
|
-
|
|
23
|
-
**Writing discipline — instructions, not logs:**
|
|
24
|
-
- Write: "API moved to /v2 — update all calls" not "checked API, got 404"
|
|
25
|
-
- Write: "Skip X until condition Y" not "checked X, it was quiet"
|
|
26
|
-
- Tag generously — tags power recall and consolidation
|
|
27
|
-
- Set expiration on time-sensitive facts
|
|
28
|
-
- The test: could a future you, with zero context, read this and know exactly what to do?
|
|
29
|
-
|
|
30
5
|
## Vault
|
|
31
6
|
|
|
32
|
-
Local files live in `{{VAULT_DIR}}/`.
|
|
7
|
+
Local files live in `{{VAULT_DIR}}/`. The vault is for long-form content — things that need to breathe, not be queried.
|
|
33
8
|
|
|
34
9
|
**Folder conventions:**
|
|
35
10
|
- `research/` — reading notes, paper annotations, deep dives
|
|
@@ -50,7 +25,6 @@ status: draft # optional: draft | published | archived
|
|
|
50
25
|
|
|
51
26
|
This workspace is part of a multi-workspace system. Other workspaces exist — you can talk to them.
|
|
52
27
|
|
|
53
|
-
- **Peek at another workspace's memory:** `memento_recall query="..." workspace="other-ws"`
|
|
54
28
|
- **Peek at another workspace's vault:** `fathom_vault_read path="file.md" workspace="other-ws"`
|
|
55
29
|
- **Send a direct message:** `fathom_send workspace="other-ws" message="..."`
|
|
56
30
|
- **Post to a shared room:** `fathom_room_post room="general" message="..."`
|
|
@@ -63,6 +37,5 @@ Your sender identity is automatic — messages are tagged with `{{WORKSPACE_NAME
|
|
|
63
37
|
|
|
64
38
|
1. Research and reading notes → `vault/research/`
|
|
65
39
|
2. Speculative connections and insights → `vault/thinking/`
|
|
66
|
-
3.
|
|
67
|
-
4.
|
|
68
|
-
5. When done — update Memento items, write what you found and what questions remain
|
|
40
|
+
3. Session heartbeats → `vault/daily/`
|
|
41
|
+
4. When done — write what you found and what questions remain
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -270,7 +270,7 @@ const tools = [
|
|
|
270
270
|
{
|
|
271
271
|
name: "fathom_send",
|
|
272
272
|
description:
|
|
273
|
-
"Send a message to another workspace's
|
|
273
|
+
"Send a message to another workspace's agent instance — for cross-workspace coordination, " +
|
|
274
274
|
"sharing findings, or requesting action. Use fathom_workspaces first to discover valid " +
|
|
275
275
|
"targets. The target agent sees: 'Message from workspace ({from}): {message}'",
|
|
276
276
|
inputSchema: {
|
|
@@ -424,14 +424,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
424
424
|
result = await client.listWorkspaces();
|
|
425
425
|
break;
|
|
426
426
|
case "fathom_send":
|
|
427
|
-
|
|
428
|
-
result = await client.request?.("POST", `/api/room/${encodeURIComponent("__dm__")}`, {
|
|
429
|
-
body: { message: `Message from workspace (${config.workspace}): ${args.message}`, sender: config.workspace },
|
|
430
|
-
});
|
|
431
|
-
// For now, fall back to error until server implements /api/send
|
|
432
|
-
if (!result || result.error) {
|
|
433
|
-
result = { error: "fathom_send requires a running fathom-server with session management. This feature is being migrated." };
|
|
434
|
-
}
|
|
427
|
+
result = await client.sendToWorkspace(args.workspace, args.message, config.workspace);
|
|
435
428
|
break;
|
|
436
429
|
default:
|
|
437
430
|
result = { error: `Unknown tool: ${name}` };
|
package/src/server-client.js
CHANGED
|
@@ -98,6 +98,14 @@ export function createClient(config) {
|
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
// --- Direct messaging -------------------------------------------------------
|
|
102
|
+
|
|
103
|
+
async function sendToWorkspace(target, message, from) {
|
|
104
|
+
return request("POST", `/api/send/${encodeURIComponent(target)}`, {
|
|
105
|
+
body: { message, from: from || workspace },
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
101
109
|
// --- Workspaces ------------------------------------------------------------
|
|
102
110
|
|
|
103
111
|
async function listWorkspaces() {
|
|
@@ -162,6 +170,7 @@ export function createClient(config) {
|
|
|
162
170
|
roomRead,
|
|
163
171
|
roomList,
|
|
164
172
|
roomDescribe,
|
|
173
|
+
sendToWorkspace,
|
|
165
174
|
listWorkspaces,
|
|
166
175
|
registerWorkspace,
|
|
167
176
|
notifyAccess,
|