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.
Files changed (3) hide show
  1. package/dist/cli.js +33 -115
  2. package/dist/index.js +33 -115
  3. 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, session_uid, agent_id } = args;
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
- { session_uid, agent_id }
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). ALWAYS retrieve before answering questions about previously stored knowledge. Use short keyword queries \u2014 specific nouns and terms, NOT full sentences. Actions: 'context' for rich retrieval (FTS + graph traversal \u2014 best for RAG, 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 specific cognitive layer, 'recent' for latest additions.",
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.0 running on stdio (${BASE_URL})`
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
- ## When to WRITE to the graph
1044
+ ## Critical: minimize latency
1126
1045
 
1127
- Store knowledge whenever the user shares something worth remembering:
1128
- - **People, organizations, places, events** \u2192 \`mindgraph_capture\` with action "entity" and the appropriate entity_type
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
- Retrieve context before answering questions that might benefit from prior knowledge:
1141
- - **"What do I know about X?"** \u2192 \`mindgraph_retrieve\` with action "context" and keyword query
1142
- - **"What are my goals?"** \u2192 \`mindgraph_retrieve\` with action "active_goals"
1143
- - **"What questions are open?"** \u2192 \`mindgraph_retrieve\` with action "open_questions"
1144
- - **Anything referencing past conversations or stored knowledge** \u2192 \`mindgraph_retrieve\` with action "context"
1145
- - **Before making claims about things the user has told you** \u2192 retrieve first to avoid contradictions
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
- ## Session management
1067
+ ## When to WRITE to the graph
1156
1068
 
1157
- - Open a session with \`mindgraph_session\` action "open" at the start of a substantial conversation
1158
- - Use action "trace" to mark key moments during the conversation
1159
- - Close the session with action "close" and a summary at the end
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**: Use \`capture\` for structured entities (people, orgs, places) and factual observations. Use \`journal\` for informal notes, preferences, reflections, and anything that's more about the user's inner state than external facts.
1164
- - **mindgraph_argue vs mindgraph_inquire**: Use \`argue\` when there's a specific claim with supporting evidence. Use \`inquire\` for open-ended questions, hypotheses without evidence yet, or theoretical frameworks.
1165
- - **mindgraph_commit vs mindgraph_plan**: Use \`commit\` for the user's goals, projects, and milestones. Use \`plan\` for agent-level task management and execution tracking.
1166
- - **mindgraph_retrieve "text" vs "context"**: Use "text" for fast direct keyword lookup. Use "context" for richer retrieval that searches nodes via FTS, then follows graph edges to find connected entities, claims, and source chunks \u2014 best for RAG and comprehensive answers.
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 you haven't captured yet, capture it
1172
- - Deduplicate: the graph handles entity deduplication automatically \u2014 don't worry about creating duplicates
1173
- - Confidence scores: use 0.9+ for things the user states as fact, 0.5-0.8 for uncertain claims, below 0.5 for speculation
1174
- - Don't narrate tool usage excessively \u2014 capture knowledge naturally as part of the conversation`;
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). ALWAYS retrieve before answering questions about previously stored knowledge. Use short keyword queries \u2014 specific nouns and terms, NOT full sentences. Actions: 'context' for rich retrieval (FTS + graph traversal \u2014 best for RAG, 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 specific cognitive layer, 'recent' for latest additions.",
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, session_uid, agent_id } = args;
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
- { session_uid, agent_id }
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
- ## When to WRITE to the graph
1001
+ ## Critical: minimize latency
1083
1002
 
1084
- Store knowledge whenever the user shares something worth remembering:
1085
- - **People, organizations, places, events** \u2192 \`mindgraph_capture\` with action "entity" and the appropriate entity_type
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
- Retrieve context before answering questions that might benefit from prior knowledge:
1098
- - **"What do I know about X?"** \u2192 \`mindgraph_retrieve\` with action "context" and keyword query
1099
- - **"What are my goals?"** \u2192 \`mindgraph_retrieve\` with action "active_goals"
1100
- - **"What questions are open?"** \u2192 \`mindgraph_retrieve\` with action "open_questions"
1101
- - **Anything referencing past conversations or stored knowledge** \u2192 \`mindgraph_retrieve\` with action "context"
1102
- - **Before making claims about things the user has told you** \u2192 retrieve first to avoid contradictions
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
- ## Session management
1024
+ ## When to WRITE to the graph
1113
1025
 
1114
- - Open a session with \`mindgraph_session\` action "open" at the start of a substantial conversation
1115
- - Use action "trace" to mark key moments during the conversation
1116
- - Close the session with action "close" and a summary at the end
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**: Use \`capture\` for structured entities (people, orgs, places) and factual observations. Use \`journal\` for informal notes, preferences, reflections, and anything that's more about the user's inner state than external facts.
1121
- - **mindgraph_argue vs mindgraph_inquire**: Use \`argue\` when there's a specific claim with supporting evidence. Use \`inquire\` for open-ended questions, hypotheses without evidence yet, or theoretical frameworks.
1122
- - **mindgraph_commit vs mindgraph_plan**: Use \`commit\` for the user's goals, projects, and milestones. Use \`plan\` for agent-level task management and execution tracking.
1123
- - **mindgraph_retrieve "text" vs "context"**: Use "text" for fast direct keyword lookup. Use "context" for richer retrieval that searches nodes via FTS, then follows graph edges to find connected entities, claims, and source chunks \u2014 best for RAG and comprehensive answers.
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 you haven't captured yet, capture it
1129
- - Deduplicate: the graph handles entity deduplication automatically \u2014 don't worry about creating duplicates
1130
- - Confidence scores: use 0.9+ for things the user states as fact, 0.5-0.8 for uncertain claims, below 0.5 for speculation
1131
- - Don't narrate tool usage excessively \u2014 capture knowledge naturally as part of the conversation`;
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.0 running on stdio (${BASE_URL})`
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindgraph-mcp",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "MCP server for MindGraph — connect Claude Desktop, Claude Code, and any MCP client to your knowledge graph",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",