@brain-protocol/mcp 0.7.0 → 0.7.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.
@@ -1,3 +1,25 @@
1
+ /**
2
+ * Consciousness & Self-Healing MCP Tools — Epoch 25
3
+ *
4
+ * Academic ref: "Tool Use in Large Language Models: A Survey" (Qin et al., 2024).
5
+ *
6
+ * Provides MCP tools for:
7
+ * - get_consciousness_trend: Historical consciousness score analysis
8
+ * - suggest_connections: Find potential graph connections for an entry
9
+ * - search_with_context: Graph-enriched search (search + connected entries)
10
+ */
11
+ import { z } from "zod";
12
+ export const suggestConnectionsSchema = z.object({
13
+ entry_id: z.string().uuid(),
14
+ limit: z.number().min(1).max(20).optional(),
15
+ brain_id: z.string().uuid().optional(),
16
+ });
17
+ export const searchWithContextSchema = z.object({
18
+ q: z.string().min(1),
19
+ limit: z.number().min(1).max(20).optional(),
20
+ graph_depth: z.number().min(0).max(2).optional(),
21
+ brain_id: z.string().uuid().optional(),
22
+ });
1
23
  /**
2
24
  * Fetch consciousness trend from Brain API (cloud mode only).
3
25
  * Wraps GET /health/vitals/history.
@@ -37,11 +59,15 @@ export async function getConsciousnessTrend(store, args) {
37
59
  * Wraps the graph enrichment discovery logic.
38
60
  */
39
61
  export async function suggestConnections(store, args) {
40
- const entryId = args.entry_id;
41
- if (!entryId) {
42
- return { error: "entry_id is required" };
62
+ const parsed = suggestConnectionsSchema.safeParse(args);
63
+ if (!parsed.success) {
64
+ return {
65
+ error: `Invalid input: ${parsed.error.issues.map((i) => i.message).join(", ")}`,
66
+ };
43
67
  }
44
- const limit = Math.min(Math.max(Number(args.limit) || 5, 1), 20);
68
+ const entryId = parsed.data.entry_id;
69
+ const limit = parsed.data.limit ?? 10;
70
+ const brainId = parsed.data.brain_id;
45
71
  try {
46
72
  // Get the entry's graph to see existing connections
47
73
  const graph = await store.traverseGraph(entryId, 1);
@@ -53,16 +79,18 @@ export async function suggestConnections(store, args) {
53
79
  // Find entries in the same category that aren't already connected
54
80
  const connectedIds = new Set();
55
81
  if (graph && typeof graph === "object" && "nodes" in graph) {
56
- const nodes = graph.nodes;
82
+ const nodes = graph
83
+ .nodes;
57
84
  for (const node of nodes) {
58
85
  connectedIds.add(node.entry.id);
59
86
  }
60
87
  }
61
- // Search for similar content
88
+ // Search for similar content (scoped to brain_id if provided)
62
89
  const similar = await store.query({
63
90
  q: entry.content.slice(0, 200),
64
91
  category: entry.category,
65
92
  limit: limit + connectedIds.size,
93
+ ...(brainId ? { brain_id: brainId } : {}),
66
94
  });
67
95
  const suggestions = similar.entries
68
96
  .filter((e) => !connectedIds.has(e.id) && e.id !== entryId)
@@ -81,7 +109,9 @@ export async function suggestConnections(store, args) {
81
109
  };
82
110
  }
83
111
  catch (error) {
84
- return { error: `Failed to suggest connections: ${error instanceof Error ? error.message : String(error)}` };
112
+ return {
113
+ error: `Failed to suggest connections: ${error instanceof Error ? error.message : String(error)}`,
114
+ };
85
115
  }
86
116
  }
87
117
  /**
@@ -89,15 +119,23 @@ export async function suggestConnections(store, args) {
89
119
  * Returns search results enriched with their graph neighbors.
90
120
  */
91
121
  export async function searchWithContext(store, args) {
92
- const q = args.q;
93
- if (!q) {
94
- return { error: "q (search query) is required" };
122
+ const parsed = searchWithContextSchema.safeParse(args);
123
+ if (!parsed.success) {
124
+ return {
125
+ error: `Invalid input: ${parsed.error.issues.map((i) => i.message).join(", ")}`,
126
+ };
95
127
  }
96
- const limit = Math.min(Math.max(Number(args.limit) || 5, 1), 20);
97
- const graphDepth = Math.min(Math.max(Number(args.graph_depth) || 1, 0), 2);
128
+ const q = parsed.data.q;
129
+ const limit = parsed.data.limit ?? 10;
130
+ const graphDepth = parsed.data.graph_depth ?? 1;
131
+ const brainId = parsed.data.brain_id;
98
132
  try {
99
- // Step 1: Search
100
- const searchResults = await store.query({ q, limit });
133
+ // Step 1: Search (scoped to brain_id if provided)
134
+ const searchResults = await store.query({
135
+ q,
136
+ limit,
137
+ ...(brainId ? { brain_id: brainId } : {}),
138
+ });
101
139
  if (searchResults.entries.length === 0) {
102
140
  return { results: [], total: 0, context_entries: 0 };
103
141
  }
@@ -111,7 +149,8 @@ export async function searchWithContext(store, args) {
111
149
  if (graph && typeof graph === "object" && "nodes" in graph) {
112
150
  const nodes = graph.nodes;
113
151
  for (const node of nodes) {
114
- if (node.depth > 0 && !searchResults.entries.some((e) => e.id === node.entry.id)) {
152
+ if (node.depth > 0 &&
153
+ !searchResults.entries.some((e) => e.id === node.entry.id)) {
115
154
  contextEntries.set(node.entry.id, {
116
155
  content_preview: node.entry.content.slice(0, 150),
117
156
  category: node.entry.category,
@@ -144,7 +183,9 @@ export async function searchWithContext(store, args) {
144
183
  };
145
184
  }
146
185
  catch (error) {
147
- return { error: `Search failed: ${error instanceof Error ? error.message : String(error)}` };
186
+ return {
187
+ error: `Search failed: ${error instanceof Error ? error.message : String(error)}`,
188
+ };
148
189
  }
149
190
  }
150
191
  /** Simple edge type inference for suggestions. */
@@ -1 +1 @@
1
- {"version":3,"file":"consciousness.js","sourceRoot":"","sources":["../../src/tools/consciousness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consciousness.js","sourceRoot":"","sources":["../../src/tools/consciousness.ts"],"names":[],"mappings":"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"}