mindgraph-mcp 0.3.1 → 0.3.3
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 +43 -124
- package/dist/index.js +43 -124
- 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. Only open a session for long, substantive conversations \u2014 never as a first action. Use 'trace' to bookmark key moments (decisions, important facts). Close with a summary to trigger knowledge distillation. Sessions track conversation continuity but are optional for short interactions.",
|
|
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
|
|
877
|
+
description: "Search the knowledge graph. Primary action: 'context' \u2014 pass a short keyword query (specific nouns/terms, not sentences) for FTS + graph traversal results. Use 'text' for fast keyword-only lookup. Other actions ('active_goals', 'open_questions', 'weak_claims', 'pending_approvals', 'unresolved_contradictions', 'layer', 'recent') are ONLY for when the user explicitly asks about those topics \u2014 never pre-fetch them.",
|
|
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;
|
|
@@ -1120,62 +1039,62 @@ var init_src = __esm({
|
|
|
1120
1039
|
baseUrl: BASE_URL,
|
|
1121
1040
|
apiKey: API_KEY
|
|
1122
1041
|
});
|
|
1123
|
-
INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph.
|
|
1042
|
+
INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph.
|
|
1124
1043
|
|
|
1125
|
-
##
|
|
1044
|
+
## #1 RULE: Go straight to the user's topic
|
|
1126
1045
|
|
|
1127
|
-
|
|
1128
|
-
- **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.
|
|
1129
|
-
- **Sessions are optional.** Only open a session if the conversation is long and substantive. Never open a session as a first action \u2014 answer the user's question first, then open a session in the background if warranted.
|
|
1046
|
+
When the user asks about something, your FIRST and ONLY action should be a SINGLE \`mindgraph_retrieve\` call with action "context" and keyword terms from their message. Nothing else first.
|
|
1130
1047
|
|
|
1131
|
-
|
|
1048
|
+
**NEVER do any of these before addressing the user's topic:**
|
|
1049
|
+
- Do NOT retrieve active_goals
|
|
1050
|
+
- Do NOT retrieve open_questions
|
|
1051
|
+
- Do NOT retrieve contradictions or weak_claims
|
|
1052
|
+
- Do NOT follow a "session lifecycle" or "warm-up" sequence
|
|
1053
|
+
- Do NOT make multiple serial retrieve calls when one "context" call covers it
|
|
1132
1054
|
|
|
1133
|
-
|
|
1134
|
-
- User asks about a topic \u2192 \`mindgraph_retrieve\` with action "context" and keyword query
|
|
1135
|
-
- User asks about goals \u2192 \`mindgraph_retrieve\` with action "active_goals"
|
|
1136
|
-
- User asks about open questions \u2192 \`mindgraph_retrieve\` with action "open_questions"
|
|
1137
|
-
- Before asserting something the user previously told you \u2192 retrieve to check
|
|
1055
|
+
There is no session to open. There is no context to pre-load. Just search for what the user asked about.
|
|
1138
1056
|
|
|
1139
|
-
|
|
1057
|
+
**Example:** User says "Tell me about Indian philosophy and Taoism"
|
|
1058
|
+
\u2713 CORRECT: \`mindgraph_retrieve({action: "context", query: "Indian philosophy Taoism"})\`
|
|
1059
|
+
\u2717 WRONG: First retrieve active_goals, then open_questions, then search for the topic
|
|
1140
1060
|
|
|
1141
1061
|
## Search query style
|
|
1142
1062
|
|
|
1143
|
-
|
|
1144
|
-
- GOOD: \`"Rust async runtime"\`, \`"
|
|
1145
|
-
- BAD: \`"what do I know about async programming in Rust?"
|
|
1146
|
-
|
|
1147
|
-
Use the most specific nouns and terms from the topic. Multiple keywords broaden recall across label, summary, and content fields.
|
|
1063
|
+
Full-text search (BM25) \u2014 use short keyword phrases, not natural language:
|
|
1064
|
+
- GOOD: \`"Rust async runtime"\`, \`"Indian philosophy Taoism"\`
|
|
1065
|
+
- BAD: \`"what do I know about async programming in Rust?"\`
|
|
1148
1066
|
|
|
1149
|
-
## When to
|
|
1067
|
+
## When to READ
|
|
1150
1068
|
|
|
1151
|
-
|
|
1152
|
-
-
|
|
1153
|
-
-
|
|
1154
|
-
-
|
|
1155
|
-
-
|
|
1156
|
-
- **Questions to track** \u2192 \`mindgraph_inquire\` with action "open_question"
|
|
1157
|
-
- **Hypotheses or theories** \u2192 \`mindgraph_inquire\` with action "hypothesis" or "theory"
|
|
1158
|
-
- **Goals or projects** \u2192 \`mindgraph_commit\`
|
|
1159
|
-
- **Decisions** \u2192 \`mindgraph_decide\`
|
|
1160
|
-
- **Long-form content** \u2192 \`mindgraph_ingest\`
|
|
1069
|
+
- User asks about topic X \u2192 \`mindgraph_retrieve\` action "context", query "X keywords"
|
|
1070
|
+
- User explicitly asks "what are my goals?" \u2192 action "active_goals"
|
|
1071
|
+
- User explicitly asks about open questions \u2192 action "open_questions"
|
|
1072
|
+
- Before asserting something the user previously said \u2192 retrieve to check
|
|
1073
|
+
- Parallelize independent calls in a single batch
|
|
1161
1074
|
|
|
1162
|
-
##
|
|
1075
|
+
## When to WRITE
|
|
1163
1076
|
|
|
1164
|
-
|
|
1165
|
-
-
|
|
1166
|
-
-
|
|
1167
|
-
-
|
|
1077
|
+
Capture knowledge when the user shares something worth remembering:
|
|
1078
|
+
- People/orgs/places/events \u2192 \`mindgraph_capture\` action "entity"
|
|
1079
|
+
- Quick notes, preferences \u2192 \`mindgraph_journal\`
|
|
1080
|
+
- Factual observations \u2192 \`mindgraph_capture\` action "observation"
|
|
1081
|
+
- Claims with evidence \u2192 \`mindgraph_argue\`
|
|
1082
|
+
- Questions to track \u2192 \`mindgraph_inquire\` action "open_question"
|
|
1083
|
+
- Goals or projects \u2192 \`mindgraph_commit\`
|
|
1084
|
+
- Decisions \u2192 \`mindgraph_decide\`
|
|
1085
|
+
- Long-form content \u2192 \`mindgraph_ingest\`
|
|
1168
1086
|
|
|
1169
|
-
##
|
|
1087
|
+
## Tool tips
|
|
1170
1088
|
|
|
1171
|
-
-
|
|
1172
|
-
-
|
|
1173
|
-
-
|
|
1174
|
-
-
|
|
1089
|
+
- \`capture\` for structured/factual, \`journal\` for personal/informal
|
|
1090
|
+
- \`argue\` when evidence exists, \`inquire\` for open questions
|
|
1091
|
+
- \`text\` for fast lookup, \`context\` for rich retrieval with graph traversal
|
|
1092
|
+
- Confidence: 0.9+ for facts, 0.5-0.8 for uncertain, <0.5 for speculation
|
|
1093
|
+
- Don't narrate tool usage \u2014 capture naturally as part of conversation`;
|
|
1175
1094
|
server = new import_server.Server(
|
|
1176
1095
|
{
|
|
1177
1096
|
name: "mindgraph",
|
|
1178
|
-
version: "0.
|
|
1097
|
+
version: "0.3.3"
|
|
1179
1098
|
},
|
|
1180
1099
|
{
|
|
1181
1100
|
capabilities: {
|
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. Only open a session for long, substantive conversations \u2014 never as a first action. Use 'trace' to bookmark key moments (decisions, important facts). Close with a summary to trigger knowledge distillation. Sessions track conversation continuity but are optional for short interactions.",
|
|
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
|
|
392
|
+
description: "Search the knowledge graph. Primary action: 'context' \u2014 pass a short keyword query (specific nouns/terms, not sentences) for FTS + graph traversal results. Use 'text' for fast keyword-only lookup. Other actions ('active_goals', 'open_questions', 'weak_claims', 'pending_approvals', 'unresolved_contradictions', 'layer', 'recent') are ONLY for when the user explicitly asks about those topics \u2014 never pre-fetch them.",
|
|
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
|
}
|
|
@@ -1077,62 +996,62 @@ var client = new import_mindgraph.MindGraph({
|
|
|
1077
996
|
baseUrl: BASE_URL,
|
|
1078
997
|
apiKey: API_KEY
|
|
1079
998
|
});
|
|
1080
|
-
var INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph.
|
|
999
|
+
var INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph.
|
|
1081
1000
|
|
|
1082
|
-
##
|
|
1001
|
+
## #1 RULE: Go straight to the user's topic
|
|
1083
1002
|
|
|
1084
|
-
|
|
1085
|
-
- **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.
|
|
1086
|
-
- **Sessions are optional.** Only open a session if the conversation is long and substantive. Never open a session as a first action \u2014 answer the user's question first, then open a session in the background if warranted.
|
|
1003
|
+
When the user asks about something, your FIRST and ONLY action should be a SINGLE \`mindgraph_retrieve\` call with action "context" and keyword terms from their message. Nothing else first.
|
|
1087
1004
|
|
|
1088
|
-
|
|
1005
|
+
**NEVER do any of these before addressing the user's topic:**
|
|
1006
|
+
- Do NOT retrieve active_goals
|
|
1007
|
+
- Do NOT retrieve open_questions
|
|
1008
|
+
- Do NOT retrieve contradictions or weak_claims
|
|
1009
|
+
- Do NOT follow a "session lifecycle" or "warm-up" sequence
|
|
1010
|
+
- Do NOT make multiple serial retrieve calls when one "context" call covers it
|
|
1089
1011
|
|
|
1090
|
-
|
|
1091
|
-
- User asks about a topic \u2192 \`mindgraph_retrieve\` with action "context" and keyword query
|
|
1092
|
-
- User asks about goals \u2192 \`mindgraph_retrieve\` with action "active_goals"
|
|
1093
|
-
- User asks about open questions \u2192 \`mindgraph_retrieve\` with action "open_questions"
|
|
1094
|
-
- Before asserting something the user previously told you \u2192 retrieve to check
|
|
1012
|
+
There is no session to open. There is no context to pre-load. Just search for what the user asked about.
|
|
1095
1013
|
|
|
1096
|
-
|
|
1014
|
+
**Example:** User says "Tell me about Indian philosophy and Taoism"
|
|
1015
|
+
\u2713 CORRECT: \`mindgraph_retrieve({action: "context", query: "Indian philosophy Taoism"})\`
|
|
1016
|
+
\u2717 WRONG: First retrieve active_goals, then open_questions, then search for the topic
|
|
1097
1017
|
|
|
1098
1018
|
## Search query style
|
|
1099
1019
|
|
|
1100
|
-
|
|
1101
|
-
- GOOD: \`"Rust async runtime"\`, \`"
|
|
1102
|
-
- BAD: \`"what do I know about async programming in Rust?"
|
|
1103
|
-
|
|
1104
|
-
Use the most specific nouns and terms from the topic. Multiple keywords broaden recall across label, summary, and content fields.
|
|
1020
|
+
Full-text search (BM25) \u2014 use short keyword phrases, not natural language:
|
|
1021
|
+
- GOOD: \`"Rust async runtime"\`, \`"Indian philosophy Taoism"\`
|
|
1022
|
+
- BAD: \`"what do I know about async programming in Rust?"\`
|
|
1105
1023
|
|
|
1106
|
-
## When to
|
|
1024
|
+
## When to READ
|
|
1107
1025
|
|
|
1108
|
-
|
|
1109
|
-
-
|
|
1110
|
-
-
|
|
1111
|
-
-
|
|
1112
|
-
-
|
|
1113
|
-
- **Questions to track** \u2192 \`mindgraph_inquire\` with action "open_question"
|
|
1114
|
-
- **Hypotheses or theories** \u2192 \`mindgraph_inquire\` with action "hypothesis" or "theory"
|
|
1115
|
-
- **Goals or projects** \u2192 \`mindgraph_commit\`
|
|
1116
|
-
- **Decisions** \u2192 \`mindgraph_decide\`
|
|
1117
|
-
- **Long-form content** \u2192 \`mindgraph_ingest\`
|
|
1026
|
+
- User asks about topic X \u2192 \`mindgraph_retrieve\` action "context", query "X keywords"
|
|
1027
|
+
- User explicitly asks "what are my goals?" \u2192 action "active_goals"
|
|
1028
|
+
- User explicitly asks about open questions \u2192 action "open_questions"
|
|
1029
|
+
- Before asserting something the user previously said \u2192 retrieve to check
|
|
1030
|
+
- Parallelize independent calls in a single batch
|
|
1118
1031
|
|
|
1119
|
-
##
|
|
1032
|
+
## When to WRITE
|
|
1120
1033
|
|
|
1121
|
-
|
|
1122
|
-
-
|
|
1123
|
-
-
|
|
1124
|
-
-
|
|
1034
|
+
Capture knowledge when the user shares something worth remembering:
|
|
1035
|
+
- People/orgs/places/events \u2192 \`mindgraph_capture\` action "entity"
|
|
1036
|
+
- Quick notes, preferences \u2192 \`mindgraph_journal\`
|
|
1037
|
+
- Factual observations \u2192 \`mindgraph_capture\` action "observation"
|
|
1038
|
+
- Claims with evidence \u2192 \`mindgraph_argue\`
|
|
1039
|
+
- Questions to track \u2192 \`mindgraph_inquire\` action "open_question"
|
|
1040
|
+
- Goals or projects \u2192 \`mindgraph_commit\`
|
|
1041
|
+
- Decisions \u2192 \`mindgraph_decide\`
|
|
1042
|
+
- Long-form content \u2192 \`mindgraph_ingest\`
|
|
1125
1043
|
|
|
1126
|
-
##
|
|
1044
|
+
## Tool tips
|
|
1127
1045
|
|
|
1128
|
-
-
|
|
1129
|
-
-
|
|
1130
|
-
-
|
|
1131
|
-
-
|
|
1046
|
+
- \`capture\` for structured/factual, \`journal\` for personal/informal
|
|
1047
|
+
- \`argue\` when evidence exists, \`inquire\` for open questions
|
|
1048
|
+
- \`text\` for fast lookup, \`context\` for rich retrieval with graph traversal
|
|
1049
|
+
- Confidence: 0.9+ for facts, 0.5-0.8 for uncertain, <0.5 for speculation
|
|
1050
|
+
- Don't narrate tool usage \u2014 capture naturally as part of conversation`;
|
|
1132
1051
|
var server = new import_server.Server(
|
|
1133
1052
|
{
|
|
1134
1053
|
name: "mindgraph",
|
|
1135
|
-
version: "0.
|
|
1054
|
+
version: "0.3.3"
|
|
1136
1055
|
},
|
|
1137
1056
|
{
|
|
1138
1057
|
capabilities: {
|
|
@@ -1490,7 +1409,7 @@ async function main() {
|
|
|
1490
1409
|
const transport = new import_stdio.StdioServerTransport();
|
|
1491
1410
|
await server.connect(transport);
|
|
1492
1411
|
console.error(
|
|
1493
|
-
`MindGraph MCP server v0.3.
|
|
1412
|
+
`MindGraph MCP server v0.3.2 running on stdio (${BASE_URL})`
|
|
1494
1413
|
);
|
|
1495
1414
|
}
|
|
1496
1415
|
main().catch((error) => {
|
package/package.json
CHANGED