mindgraph-mcp 0.3.0 → 0.3.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/dist/cli.js +33 -115
- package/dist/index.js +33 -115
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -41,8 +41,6 @@ function err(message) {
|
|
|
41
41
|
async function handleTool(client2, name, args) {
|
|
42
42
|
try {
|
|
43
43
|
switch (name) {
|
|
44
|
-
case "mindgraph_session":
|
|
45
|
-
return await handleSession(client2, args);
|
|
46
44
|
case "mindgraph_journal":
|
|
47
45
|
return await handleJournal(client2, args);
|
|
48
46
|
case "mindgraph_capture":
|
|
@@ -71,55 +69,15 @@ async function handleTool(client2, name, args) {
|
|
|
71
69
|
return err(message);
|
|
72
70
|
}
|
|
73
71
|
}
|
|
74
|
-
async function handleSession(client2, args) {
|
|
75
|
-
const { action, label, session_uid, summary, props, agent_id } = args;
|
|
76
|
-
switch (action) {
|
|
77
|
-
case "open": {
|
|
78
|
-
if (!label) return err("label is required for open");
|
|
79
|
-
const result = await client2.session({
|
|
80
|
-
action: "open",
|
|
81
|
-
label,
|
|
82
|
-
summary,
|
|
83
|
-
props,
|
|
84
|
-
agent_id
|
|
85
|
-
});
|
|
86
|
-
return ok(result);
|
|
87
|
-
}
|
|
88
|
-
case "trace": {
|
|
89
|
-
if (!session_uid) return err("session_uid is required for trace");
|
|
90
|
-
if (!label) return err("label is required for trace");
|
|
91
|
-
const result = await client2.session({
|
|
92
|
-
action: "trace",
|
|
93
|
-
label,
|
|
94
|
-
session_uid,
|
|
95
|
-
props,
|
|
96
|
-
agent_id
|
|
97
|
-
});
|
|
98
|
-
return ok(result);
|
|
99
|
-
}
|
|
100
|
-
case "close": {
|
|
101
|
-
if (!session_uid) return err("session_uid is required for close");
|
|
102
|
-
const result = await client2.session({
|
|
103
|
-
action: "close",
|
|
104
|
-
session_uid,
|
|
105
|
-
summary,
|
|
106
|
-
agent_id
|
|
107
|
-
});
|
|
108
|
-
return ok(result);
|
|
109
|
-
}
|
|
110
|
-
default:
|
|
111
|
-
return err(`Unknown session action: ${action}`);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
72
|
async function handleJournal(client2, args) {
|
|
115
|
-
const { label, content, mood, tags,
|
|
73
|
+
const { label, content, mood, tags, agent_id } = args;
|
|
116
74
|
const props = { content };
|
|
117
75
|
if (mood) props.mood = mood;
|
|
118
76
|
if (tags) props.tags = tags;
|
|
119
77
|
const result = await client2.journal(
|
|
120
78
|
label,
|
|
121
79
|
props,
|
|
122
|
-
{
|
|
80
|
+
{ agent_id }
|
|
123
81
|
);
|
|
124
82
|
return ok(result);
|
|
125
83
|
}
|
|
@@ -535,41 +493,6 @@ var init_tools = __esm({
|
|
|
535
493
|
"src/tools.ts"() {
|
|
536
494
|
"use strict";
|
|
537
495
|
TOOLS = [
|
|
538
|
-
{
|
|
539
|
-
name: "mindgraph_session",
|
|
540
|
-
description: "Manage conversation sessions. ALWAYS open a session at the start of a substantial conversation (label it with the topic). Use 'trace' to bookmark key moments (decisions made, important facts shared). Close the session at the end with a summary of what was discussed. Sessions enable the graph to track conversation continuity and trigger knowledge distillation on close.",
|
|
541
|
-
inputSchema: {
|
|
542
|
-
type: "object",
|
|
543
|
-
properties: {
|
|
544
|
-
action: {
|
|
545
|
-
type: "string",
|
|
546
|
-
enum: ["open", "trace", "close"],
|
|
547
|
-
description: "Session lifecycle action"
|
|
548
|
-
},
|
|
549
|
-
label: {
|
|
550
|
-
type: "string",
|
|
551
|
-
description: "Session or trace label (required for open/trace)"
|
|
552
|
-
},
|
|
553
|
-
session_uid: {
|
|
554
|
-
type: "string",
|
|
555
|
-
description: "Session UID (required for trace/close)"
|
|
556
|
-
},
|
|
557
|
-
summary: {
|
|
558
|
-
type: "string",
|
|
559
|
-
description: "Session summary (used on close)"
|
|
560
|
-
},
|
|
561
|
-
props: {
|
|
562
|
-
type: "object",
|
|
563
|
-
description: "Additional properties"
|
|
564
|
-
},
|
|
565
|
-
agent_id: {
|
|
566
|
-
type: "string",
|
|
567
|
-
description: "Agent identity for multi-agent systems"
|
|
568
|
-
}
|
|
569
|
-
},
|
|
570
|
-
required: ["action"]
|
|
571
|
-
}
|
|
572
|
-
},
|
|
573
496
|
{
|
|
574
497
|
name: "mindgraph_journal",
|
|
575
498
|
description: "Quick, informal capture for the user's inner world: preferences ('I prefer dark mode'), reflections ('I've been thinking about...'), moods, daily notes, and anything subjective. Use this instead of mindgraph_capture when the content is personal/informal rather than a structured fact about the external world. Good for: likes/dislikes, feelings, habits, reminders-to-self, freeform notes.",
|
|
@@ -593,10 +516,6 @@ var init_tools = __esm({
|
|
|
593
516
|
items: { type: "string" },
|
|
594
517
|
description: "Categorization tags"
|
|
595
518
|
},
|
|
596
|
-
session_uid: {
|
|
597
|
-
type: "string",
|
|
598
|
-
description: "Link to an active session"
|
|
599
|
-
},
|
|
600
519
|
agent_id: {
|
|
601
520
|
type: "string",
|
|
602
521
|
description: "Agent identity"
|
|
@@ -955,7 +874,7 @@ var init_tools = __esm({
|
|
|
955
874
|
},
|
|
956
875
|
{
|
|
957
876
|
name: "mindgraph_retrieve",
|
|
958
|
-
description: "Search and query the knowledge graph using full-text search (BM25).
|
|
877
|
+
description: "Search and query the knowledge graph using full-text search (BM25). Use short keyword queries \u2014 specific nouns and terms, NOT full sentences. Only retrieve when the user's message references or benefits from stored knowledge \u2014 do NOT pre-fetch goals/questions/contradictions unless asked. Actions: 'context' for rich retrieval (FTS + graph traversal, returns connected entities and source chunks), 'text' for fast direct keyword search. Convenience queries (no query needed): 'active_goals', 'open_questions', 'weak_claims', 'pending_approvals', 'unresolved_contradictions'. Use 'layer' to browse a cognitive layer, 'recent' for latest additions.",
|
|
959
878
|
inputSchema: {
|
|
960
879
|
type: "object",
|
|
961
880
|
properties: {
|
|
@@ -1095,7 +1014,7 @@ async function main() {
|
|
|
1095
1014
|
const transport = new import_stdio.StdioServerTransport();
|
|
1096
1015
|
await server.connect(transport);
|
|
1097
1016
|
console.error(
|
|
1098
|
-
`MindGraph MCP server v0.3.
|
|
1017
|
+
`MindGraph MCP server v0.3.2 running on stdio (${BASE_URL})`
|
|
1099
1018
|
);
|
|
1100
1019
|
}
|
|
1101
1020
|
var import_server, import_stdio, import_types, import_mindgraph, API_KEY, BASE_URL, AGENT_ID, client, INSTRUCTIONS, server, PROMPTS;
|
|
@@ -1122,27 +1041,20 @@ var init_src = __esm({
|
|
|
1122
1041
|
});
|
|
1123
1042
|
INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph. This is the user's long-term memory \u2014 use it proactively.
|
|
1124
1043
|
|
|
1125
|
-
##
|
|
1044
|
+
## Critical: minimize latency
|
|
1126
1045
|
|
|
1127
|
-
|
|
1128
|
-
- **
|
|
1129
|
-
- **Quick notes, preferences, reflections, moods** \u2192 \`mindgraph_journal\`
|
|
1130
|
-
- **Factual observations about the world** \u2192 \`mindgraph_capture\` with action "observation"
|
|
1131
|
-
- **Claims that could be true or false** \u2192 \`mindgraph_argue\` (with evidence if available)
|
|
1132
|
-
- **Questions to investigate later** \u2192 \`mindgraph_inquire\` with action "open_question"
|
|
1133
|
-
- **Hypotheses or theories** \u2192 \`mindgraph_inquire\` with action "hypothesis" or "theory"
|
|
1134
|
-
- **Goals or projects the user is working on** \u2192 \`mindgraph_commit\`
|
|
1135
|
-
- **Decisions being made** \u2192 \`mindgraph_decide\` (open, add options, resolve)
|
|
1136
|
-
- **Long-form content (articles, transcripts, documents)** \u2192 \`mindgraph_ingest\`
|
|
1046
|
+
- **Jump straight to the user's topic.** Do NOT pre-fetch goals, open questions, or other convenience queries unless the user specifically asks about them.
|
|
1047
|
+
- **Parallelize tool calls.** When you need to search and capture at the same time, issue all calls in a single parallel batch \u2014 never serialize independent calls.
|
|
1137
1048
|
|
|
1138
1049
|
## When to READ from the graph
|
|
1139
1050
|
|
|
1140
|
-
|
|
1141
|
-
-
|
|
1142
|
-
-
|
|
1143
|
-
-
|
|
1144
|
-
-
|
|
1145
|
-
|
|
1051
|
+
Only retrieve when the user's message references or would benefit from stored knowledge:
|
|
1052
|
+
- User asks about a topic \u2192 \`mindgraph_retrieve\` with action "context" and keyword query
|
|
1053
|
+
- User asks about goals \u2192 \`mindgraph_retrieve\` with action "active_goals"
|
|
1054
|
+
- User asks about open questions \u2192 \`mindgraph_retrieve\` with action "open_questions"
|
|
1055
|
+
- Before asserting something the user previously told you \u2192 retrieve to check
|
|
1056
|
+
|
|
1057
|
+
Do NOT retrieve preemptively. If the user says "let's discuss X", search for X \u2014 don't also fetch goals, questions, and contradictions.
|
|
1146
1058
|
|
|
1147
1059
|
## Search query style
|
|
1148
1060
|
|
|
@@ -1152,26 +1064,32 @@ MindGraph uses **full-text search (BM25)**, not semantic/embedding search. Write
|
|
|
1152
1064
|
|
|
1153
1065
|
Use the most specific nouns and terms from the topic. Multiple keywords broaden recall across label, summary, and content fields.
|
|
1154
1066
|
|
|
1155
|
-
##
|
|
1067
|
+
## When to WRITE to the graph
|
|
1156
1068
|
|
|
1157
|
-
|
|
1158
|
-
-
|
|
1159
|
-
-
|
|
1069
|
+
Store knowledge whenever the user shares something worth remembering:
|
|
1070
|
+
- **People, organizations, places, events** \u2192 \`mindgraph_capture\` with action "entity"
|
|
1071
|
+
- **Quick notes, preferences, reflections, moods** \u2192 \`mindgraph_journal\`
|
|
1072
|
+
- **Factual observations** \u2192 \`mindgraph_capture\` with action "observation"
|
|
1073
|
+
- **Claims with evidence** \u2192 \`mindgraph_argue\`
|
|
1074
|
+
- **Questions to track** \u2192 \`mindgraph_inquire\` with action "open_question"
|
|
1075
|
+
- **Hypotheses or theories** \u2192 \`mindgraph_inquire\` with action "hypothesis" or "theory"
|
|
1076
|
+
- **Goals or projects** \u2192 \`mindgraph_commit\`
|
|
1077
|
+
- **Decisions** \u2192 \`mindgraph_decide\`
|
|
1078
|
+
- **Long-form content** \u2192 \`mindgraph_ingest\`
|
|
1160
1079
|
|
|
1161
1080
|
## Tool selection guide
|
|
1162
1081
|
|
|
1163
|
-
- **mindgraph_capture vs mindgraph_journal**:
|
|
1164
|
-
- **mindgraph_argue vs mindgraph_inquire**:
|
|
1165
|
-
- **
|
|
1166
|
-
- **
|
|
1167
|
-
- **mindgraph_ingest**: Use for any content longer than a paragraph. It automatically extracts entities, claims, and relationships. For short facts, use the specific cognitive tools instead.
|
|
1082
|
+
- **mindgraph_capture vs mindgraph_journal**: \`capture\` for structured entities and factual observations. \`journal\` for informal notes, preferences, and reflections.
|
|
1083
|
+
- **mindgraph_argue vs mindgraph_inquire**: \`argue\` when there's evidence. \`inquire\` for open questions and hypotheses without evidence yet.
|
|
1084
|
+
- **mindgraph_retrieve "text" vs "context"**: "text" for fast direct keyword lookup. "context" for richer retrieval that follows graph edges to connected entities and source chunks \u2014 best for RAG.
|
|
1085
|
+
- **mindgraph_ingest**: For content longer than a paragraph. Automatically extracts entities, claims, and relationships.
|
|
1168
1086
|
|
|
1169
1087
|
## Important behaviors
|
|
1170
1088
|
|
|
1171
|
-
- Be proactive: if the user mentions a person, place, or organization
|
|
1172
|
-
- Deduplicate: the graph handles
|
|
1173
|
-
- Confidence scores:
|
|
1174
|
-
- Don't narrate tool usage
|
|
1089
|
+
- Be proactive about capturing: if the user mentions a person, place, or organization, capture it
|
|
1090
|
+
- Deduplicate: the graph handles deduplication automatically
|
|
1091
|
+
- Confidence scores: 0.9+ for stated facts, 0.5-0.8 for uncertain claims, below 0.5 for speculation
|
|
1092
|
+
- Don't narrate tool usage \u2014 capture knowledge naturally as part of the conversation`;
|
|
1175
1093
|
server = new import_server.Server(
|
|
1176
1094
|
{
|
|
1177
1095
|
name: "mindgraph",
|
package/dist/index.js
CHANGED
|
@@ -8,41 +8,6 @@ var import_mindgraph = require("mindgraph");
|
|
|
8
8
|
|
|
9
9
|
// src/tools.ts
|
|
10
10
|
var TOOLS = [
|
|
11
|
-
{
|
|
12
|
-
name: "mindgraph_session",
|
|
13
|
-
description: "Manage conversation sessions. ALWAYS open a session at the start of a substantial conversation (label it with the topic). Use 'trace' to bookmark key moments (decisions made, important facts shared). Close the session at the end with a summary of what was discussed. Sessions enable the graph to track conversation continuity and trigger knowledge distillation on close.",
|
|
14
|
-
inputSchema: {
|
|
15
|
-
type: "object",
|
|
16
|
-
properties: {
|
|
17
|
-
action: {
|
|
18
|
-
type: "string",
|
|
19
|
-
enum: ["open", "trace", "close"],
|
|
20
|
-
description: "Session lifecycle action"
|
|
21
|
-
},
|
|
22
|
-
label: {
|
|
23
|
-
type: "string",
|
|
24
|
-
description: "Session or trace label (required for open/trace)"
|
|
25
|
-
},
|
|
26
|
-
session_uid: {
|
|
27
|
-
type: "string",
|
|
28
|
-
description: "Session UID (required for trace/close)"
|
|
29
|
-
},
|
|
30
|
-
summary: {
|
|
31
|
-
type: "string",
|
|
32
|
-
description: "Session summary (used on close)"
|
|
33
|
-
},
|
|
34
|
-
props: {
|
|
35
|
-
type: "object",
|
|
36
|
-
description: "Additional properties"
|
|
37
|
-
},
|
|
38
|
-
agent_id: {
|
|
39
|
-
type: "string",
|
|
40
|
-
description: "Agent identity for multi-agent systems"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
required: ["action"]
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
11
|
{
|
|
47
12
|
name: "mindgraph_journal",
|
|
48
13
|
description: "Quick, informal capture for the user's inner world: preferences ('I prefer dark mode'), reflections ('I've been thinking about...'), moods, daily notes, and anything subjective. Use this instead of mindgraph_capture when the content is personal/informal rather than a structured fact about the external world. Good for: likes/dislikes, feelings, habits, reminders-to-self, freeform notes.",
|
|
@@ -66,10 +31,6 @@ var TOOLS = [
|
|
|
66
31
|
items: { type: "string" },
|
|
67
32
|
description: "Categorization tags"
|
|
68
33
|
},
|
|
69
|
-
session_uid: {
|
|
70
|
-
type: "string",
|
|
71
|
-
description: "Link to an active session"
|
|
72
|
-
},
|
|
73
34
|
agent_id: {
|
|
74
35
|
type: "string",
|
|
75
36
|
description: "Agent identity"
|
|
@@ -428,7 +389,7 @@ var TOOLS = [
|
|
|
428
389
|
},
|
|
429
390
|
{
|
|
430
391
|
name: "mindgraph_retrieve",
|
|
431
|
-
description: "Search and query the knowledge graph using full-text search (BM25).
|
|
392
|
+
description: "Search and query the knowledge graph using full-text search (BM25). Use short keyword queries \u2014 specific nouns and terms, NOT full sentences. Only retrieve when the user's message references or benefits from stored knowledge \u2014 do NOT pre-fetch goals/questions/contradictions unless asked. Actions: 'context' for rich retrieval (FTS + graph traversal, returns connected entities and source chunks), 'text' for fast direct keyword search. Convenience queries (no query needed): 'active_goals', 'open_questions', 'weak_claims', 'pending_approvals', 'unresolved_contradictions'. Use 'layer' to browse a cognitive layer, 'recent' for latest additions.",
|
|
432
393
|
inputSchema: {
|
|
433
394
|
type: "object",
|
|
434
395
|
properties: {
|
|
@@ -573,8 +534,6 @@ function err(message) {
|
|
|
573
534
|
async function handleTool(client2, name, args) {
|
|
574
535
|
try {
|
|
575
536
|
switch (name) {
|
|
576
|
-
case "mindgraph_session":
|
|
577
|
-
return await handleSession(client2, args);
|
|
578
537
|
case "mindgraph_journal":
|
|
579
538
|
return await handleJournal(client2, args);
|
|
580
539
|
case "mindgraph_capture":
|
|
@@ -603,55 +562,15 @@ async function handleTool(client2, name, args) {
|
|
|
603
562
|
return err(message);
|
|
604
563
|
}
|
|
605
564
|
}
|
|
606
|
-
async function handleSession(client2, args) {
|
|
607
|
-
const { action, label, session_uid, summary, props, agent_id } = args;
|
|
608
|
-
switch (action) {
|
|
609
|
-
case "open": {
|
|
610
|
-
if (!label) return err("label is required for open");
|
|
611
|
-
const result = await client2.session({
|
|
612
|
-
action: "open",
|
|
613
|
-
label,
|
|
614
|
-
summary,
|
|
615
|
-
props,
|
|
616
|
-
agent_id
|
|
617
|
-
});
|
|
618
|
-
return ok(result);
|
|
619
|
-
}
|
|
620
|
-
case "trace": {
|
|
621
|
-
if (!session_uid) return err("session_uid is required for trace");
|
|
622
|
-
if (!label) return err("label is required for trace");
|
|
623
|
-
const result = await client2.session({
|
|
624
|
-
action: "trace",
|
|
625
|
-
label,
|
|
626
|
-
session_uid,
|
|
627
|
-
props,
|
|
628
|
-
agent_id
|
|
629
|
-
});
|
|
630
|
-
return ok(result);
|
|
631
|
-
}
|
|
632
|
-
case "close": {
|
|
633
|
-
if (!session_uid) return err("session_uid is required for close");
|
|
634
|
-
const result = await client2.session({
|
|
635
|
-
action: "close",
|
|
636
|
-
session_uid,
|
|
637
|
-
summary,
|
|
638
|
-
agent_id
|
|
639
|
-
});
|
|
640
|
-
return ok(result);
|
|
641
|
-
}
|
|
642
|
-
default:
|
|
643
|
-
return err(`Unknown session action: ${action}`);
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
565
|
async function handleJournal(client2, args) {
|
|
647
|
-
const { label, content, mood, tags,
|
|
566
|
+
const { label, content, mood, tags, agent_id } = args;
|
|
648
567
|
const props = { content };
|
|
649
568
|
if (mood) props.mood = mood;
|
|
650
569
|
if (tags) props.tags = tags;
|
|
651
570
|
const result = await client2.journal(
|
|
652
571
|
label,
|
|
653
572
|
props,
|
|
654
|
-
{
|
|
573
|
+
{ agent_id }
|
|
655
574
|
);
|
|
656
575
|
return ok(result);
|
|
657
576
|
}
|
|
@@ -1079,27 +998,20 @@ var client = new import_mindgraph.MindGraph({
|
|
|
1079
998
|
});
|
|
1080
999
|
var INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph. This is the user's long-term memory \u2014 use it proactively.
|
|
1081
1000
|
|
|
1082
|
-
##
|
|
1001
|
+
## Critical: minimize latency
|
|
1083
1002
|
|
|
1084
|
-
|
|
1085
|
-
- **
|
|
1086
|
-
- **Quick notes, preferences, reflections, moods** \u2192 \`mindgraph_journal\`
|
|
1087
|
-
- **Factual observations about the world** \u2192 \`mindgraph_capture\` with action "observation"
|
|
1088
|
-
- **Claims that could be true or false** \u2192 \`mindgraph_argue\` (with evidence if available)
|
|
1089
|
-
- **Questions to investigate later** \u2192 \`mindgraph_inquire\` with action "open_question"
|
|
1090
|
-
- **Hypotheses or theories** \u2192 \`mindgraph_inquire\` with action "hypothesis" or "theory"
|
|
1091
|
-
- **Goals or projects the user is working on** \u2192 \`mindgraph_commit\`
|
|
1092
|
-
- **Decisions being made** \u2192 \`mindgraph_decide\` (open, add options, resolve)
|
|
1093
|
-
- **Long-form content (articles, transcripts, documents)** \u2192 \`mindgraph_ingest\`
|
|
1003
|
+
- **Jump straight to the user's topic.** Do NOT pre-fetch goals, open questions, or other convenience queries unless the user specifically asks about them.
|
|
1004
|
+
- **Parallelize tool calls.** When you need to search and capture at the same time, issue all calls in a single parallel batch \u2014 never serialize independent calls.
|
|
1094
1005
|
|
|
1095
1006
|
## When to READ from the graph
|
|
1096
1007
|
|
|
1097
|
-
|
|
1098
|
-
-
|
|
1099
|
-
-
|
|
1100
|
-
-
|
|
1101
|
-
-
|
|
1102
|
-
|
|
1008
|
+
Only retrieve when the user's message references or would benefit from stored knowledge:
|
|
1009
|
+
- User asks about a topic \u2192 \`mindgraph_retrieve\` with action "context" and keyword query
|
|
1010
|
+
- User asks about goals \u2192 \`mindgraph_retrieve\` with action "active_goals"
|
|
1011
|
+
- User asks about open questions \u2192 \`mindgraph_retrieve\` with action "open_questions"
|
|
1012
|
+
- Before asserting something the user previously told you \u2192 retrieve to check
|
|
1013
|
+
|
|
1014
|
+
Do NOT retrieve preemptively. If the user says "let's discuss X", search for X \u2014 don't also fetch goals, questions, and contradictions.
|
|
1103
1015
|
|
|
1104
1016
|
## Search query style
|
|
1105
1017
|
|
|
@@ -1109,26 +1021,32 @@ MindGraph uses **full-text search (BM25)**, not semantic/embedding search. Write
|
|
|
1109
1021
|
|
|
1110
1022
|
Use the most specific nouns and terms from the topic. Multiple keywords broaden recall across label, summary, and content fields.
|
|
1111
1023
|
|
|
1112
|
-
##
|
|
1024
|
+
## When to WRITE to the graph
|
|
1113
1025
|
|
|
1114
|
-
|
|
1115
|
-
-
|
|
1116
|
-
-
|
|
1026
|
+
Store knowledge whenever the user shares something worth remembering:
|
|
1027
|
+
- **People, organizations, places, events** \u2192 \`mindgraph_capture\` with action "entity"
|
|
1028
|
+
- **Quick notes, preferences, reflections, moods** \u2192 \`mindgraph_journal\`
|
|
1029
|
+
- **Factual observations** \u2192 \`mindgraph_capture\` with action "observation"
|
|
1030
|
+
- **Claims with evidence** \u2192 \`mindgraph_argue\`
|
|
1031
|
+
- **Questions to track** \u2192 \`mindgraph_inquire\` with action "open_question"
|
|
1032
|
+
- **Hypotheses or theories** \u2192 \`mindgraph_inquire\` with action "hypothesis" or "theory"
|
|
1033
|
+
- **Goals or projects** \u2192 \`mindgraph_commit\`
|
|
1034
|
+
- **Decisions** \u2192 \`mindgraph_decide\`
|
|
1035
|
+
- **Long-form content** \u2192 \`mindgraph_ingest\`
|
|
1117
1036
|
|
|
1118
1037
|
## Tool selection guide
|
|
1119
1038
|
|
|
1120
|
-
- **mindgraph_capture vs mindgraph_journal**:
|
|
1121
|
-
- **mindgraph_argue vs mindgraph_inquire**:
|
|
1122
|
-
- **
|
|
1123
|
-
- **
|
|
1124
|
-
- **mindgraph_ingest**: Use for any content longer than a paragraph. It automatically extracts entities, claims, and relationships. For short facts, use the specific cognitive tools instead.
|
|
1039
|
+
- **mindgraph_capture vs mindgraph_journal**: \`capture\` for structured entities and factual observations. \`journal\` for informal notes, preferences, and reflections.
|
|
1040
|
+
- **mindgraph_argue vs mindgraph_inquire**: \`argue\` when there's evidence. \`inquire\` for open questions and hypotheses without evidence yet.
|
|
1041
|
+
- **mindgraph_retrieve "text" vs "context"**: "text" for fast direct keyword lookup. "context" for richer retrieval that follows graph edges to connected entities and source chunks \u2014 best for RAG.
|
|
1042
|
+
- **mindgraph_ingest**: For content longer than a paragraph. Automatically extracts entities, claims, and relationships.
|
|
1125
1043
|
|
|
1126
1044
|
## Important behaviors
|
|
1127
1045
|
|
|
1128
|
-
- Be proactive: if the user mentions a person, place, or organization
|
|
1129
|
-
- Deduplicate: the graph handles
|
|
1130
|
-
- Confidence scores:
|
|
1131
|
-
- Don't narrate tool usage
|
|
1046
|
+
- Be proactive about capturing: if the user mentions a person, place, or organization, capture it
|
|
1047
|
+
- Deduplicate: the graph handles deduplication automatically
|
|
1048
|
+
- Confidence scores: 0.9+ for stated facts, 0.5-0.8 for uncertain claims, below 0.5 for speculation
|
|
1049
|
+
- Don't narrate tool usage \u2014 capture knowledge naturally as part of the conversation`;
|
|
1132
1050
|
var server = new import_server.Server(
|
|
1133
1051
|
{
|
|
1134
1052
|
name: "mindgraph",
|
|
@@ -1490,7 +1408,7 @@ async function main() {
|
|
|
1490
1408
|
const transport = new import_stdio.StdioServerTransport();
|
|
1491
1409
|
await server.connect(transport);
|
|
1492
1410
|
console.error(
|
|
1493
|
-
`MindGraph MCP server v0.3.
|
|
1411
|
+
`MindGraph MCP server v0.3.2 running on stdio (${BASE_URL})`
|
|
1494
1412
|
);
|
|
1495
1413
|
}
|
|
1496
1414
|
main().catch((error) => {
|
package/package.json
CHANGED