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.
Files changed (3) hide show
  1. package/dist/cli.js +43 -124
  2. package/dist/index.js +43 -124
  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. 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 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.",
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.1 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;
@@ -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. This is the user's long-term memory \u2014 use it proactively.
1042
+ INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph.
1124
1043
 
1125
- ## Critical: minimize latency
1044
+ ## #1 RULE: Go straight to the user's topic
1126
1045
 
1127
- - **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.
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
- ## When to READ from the graph
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
- Only retrieve when the user's message references or would benefit from stored knowledge:
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
- Do NOT retrieve preemptively. If the user says "let's discuss X", search for X \u2014 don't also fetch goals, questions, and contradictions.
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
- MindGraph uses **full-text search (BM25)**, not semantic/embedding search. Write queries as **short keyword phrases**, not natural language questions:
1144
- - GOOD: \`"Rust async runtime"\`, \`"project deadline March"\`, \`"Sarah engineering manager"\`
1145
- - BAD: \`"what do I know about async programming in Rust?"\`, \`"tell me about Sarah's role"\`
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 WRITE to the graph
1067
+ ## When to READ
1150
1068
 
1151
- Store knowledge whenever the user shares something worth remembering:
1152
- - **People, organizations, places, events** \u2192 \`mindgraph_capture\` with action "entity"
1153
- - **Quick notes, preferences, reflections, moods** \u2192 \`mindgraph_journal\`
1154
- - **Factual observations** \u2192 \`mindgraph_capture\` with action "observation"
1155
- - **Claims with evidence** \u2192 \`mindgraph_argue\`
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
- ## Tool selection guide
1075
+ ## When to WRITE
1163
1076
 
1164
- - **mindgraph_capture vs mindgraph_journal**: \`capture\` for structured entities and factual observations. \`journal\` for informal notes, preferences, and reflections.
1165
- - **mindgraph_argue vs mindgraph_inquire**: \`argue\` when there's evidence. \`inquire\` for open questions and hypotheses without evidence yet.
1166
- - **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.
1167
- - **mindgraph_ingest**: For content longer than a paragraph. Automatically extracts entities, claims, and relationships.
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
- ## Important behaviors
1087
+ ## Tool tips
1170
1088
 
1171
- - Be proactive about capturing: if the user mentions a person, place, or organization, capture it
1172
- - Deduplicate: the graph handles deduplication automatically
1173
- - Confidence scores: 0.9+ for stated facts, 0.5-0.8 for uncertain claims, below 0.5 for speculation
1174
- - Don't narrate tool usage \u2014 capture knowledge naturally as part of the conversation`;
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.2.1"
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 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.",
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, 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
  }
@@ -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. This is the user's long-term memory \u2014 use it proactively.
999
+ var INSTRUCTIONS = `You have access to a persistent knowledge graph via MindGraph.
1081
1000
 
1082
- ## Critical: minimize latency
1001
+ ## #1 RULE: Go straight to the user's topic
1083
1002
 
1084
- - **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.
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
- ## When to READ from the graph
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
- Only retrieve when the user's message references or would benefit from stored knowledge:
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
- Do NOT retrieve preemptively. If the user says "let's discuss X", search for X \u2014 don't also fetch goals, questions, and contradictions.
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
- MindGraph uses **full-text search (BM25)**, not semantic/embedding search. Write queries as **short keyword phrases**, not natural language questions:
1101
- - GOOD: \`"Rust async runtime"\`, \`"project deadline March"\`, \`"Sarah engineering manager"\`
1102
- - BAD: \`"what do I know about async programming in Rust?"\`, \`"tell me about Sarah's role"\`
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 WRITE to the graph
1024
+ ## When to READ
1107
1025
 
1108
- Store knowledge whenever the user shares something worth remembering:
1109
- - **People, organizations, places, events** \u2192 \`mindgraph_capture\` with action "entity"
1110
- - **Quick notes, preferences, reflections, moods** \u2192 \`mindgraph_journal\`
1111
- - **Factual observations** \u2192 \`mindgraph_capture\` with action "observation"
1112
- - **Claims with evidence** \u2192 \`mindgraph_argue\`
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
- ## Tool selection guide
1032
+ ## When to WRITE
1120
1033
 
1121
- - **mindgraph_capture vs mindgraph_journal**: \`capture\` for structured entities and factual observations. \`journal\` for informal notes, preferences, and reflections.
1122
- - **mindgraph_argue vs mindgraph_inquire**: \`argue\` when there's evidence. \`inquire\` for open questions and hypotheses without evidence yet.
1123
- - **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.
1124
- - **mindgraph_ingest**: For content longer than a paragraph. Automatically extracts entities, claims, and relationships.
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
- ## Important behaviors
1044
+ ## Tool tips
1127
1045
 
1128
- - Be proactive about capturing: if the user mentions a person, place, or organization, capture it
1129
- - Deduplicate: the graph handles deduplication automatically
1130
- - Confidence scores: 0.9+ for stated facts, 0.5-0.8 for uncertain claims, below 0.5 for speculation
1131
- - Don't narrate tool usage \u2014 capture knowledge naturally as part of the conversation`;
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.2.1"
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.1 running on stdio (${BASE_URL})`
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindgraph-mcp",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
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",