@intangle/mcp-server 1.2.6 → 1.4.0

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/.env.local ADDED
@@ -0,0 +1,2 @@
1
+ MCP_API_KEY=mcp_placeholder_key_will_be_replaced_by_user_specific_key
2
+ NEXT_APP_URL=https://intangle.app
package/dist/index.js CHANGED
@@ -84,7 +84,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
84
84
  tools: TOOLS,
85
85
  }));
86
86
  async function handleSearchMemories(args) {
87
- const { space_id, query, topics, return_format = "full", } = args;
87
+ const { space_id, query, topics, } = args;
88
88
  // Require space_id
89
89
  if (!space_id) {
90
90
  throw new Error("space_id is required. Use list_spaces to see available options.");
@@ -94,19 +94,6 @@ async function handleSearchMemories(args) {
94
94
  space_ids: [space_id], // Convert to array for backend compatibility
95
95
  query,
96
96
  topics,
97
- return_format,
98
- });
99
- }
100
- async function handleGetRecentMemories(args) {
101
- const { space_id, topics, limit = 20, } = args;
102
- // Require space_id to be provided
103
- if (!space_id) {
104
- throw new Error("space_id is required. Use list_spaces to see available options.");
105
- }
106
- return makeApiCall("get-recent-memories", {
107
- space_id,
108
- topics,
109
- limit,
110
97
  });
111
98
  }
112
99
  async function handleFetch(args) {
@@ -142,9 +129,6 @@ async function handleUpdateSpace(args) {
142
129
  delete: args.delete,
143
130
  });
144
131
  }
145
- async function handleListTasks(args) {
146
- return makeApiCall("list-tasks", args);
147
- }
148
132
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
149
133
  const { name, arguments: args } = request.params;
150
134
  try {
@@ -153,9 +137,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
153
137
  case "search":
154
138
  result = await handleSearchMemories(args);
155
139
  break;
156
- case "get_recent_memories":
157
- result = await handleGetRecentMemories(args);
158
- break;
159
140
  case "fetch":
160
141
  result = await handleFetch(args);
161
142
  break;
@@ -174,9 +155,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
174
155
  case "update_space":
175
156
  result = await handleUpdateSpace(args);
176
157
  break;
177
- case "list_tasks":
178
- result = await handleListTasks(args);
179
- break;
180
158
  default:
181
159
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
182
160
  }
@@ -3,7 +3,7 @@ export const TOOLS = [
3
3
  {
4
4
  name: "search",
5
5
  title: "Search Space",
6
- description: "Search for information within a space. System automatically extracts quantity from natural language ('show 3 tasks' → 3 results, 'the last one' → 1 result) and determines optimal depth from query complexity ('quick search' → quick mode, 'search deep' → deep mode). Always returns IDs - use fetch tool for full content.",
6
+ description: "Search for information within a space. System automatically extracts quantity from natural language ('show 3 tasks' → 3 results, 'the last one' → 1 result), determines optimal depth from query complexity ('quick search' → quick mode, 'search deep' → deep mode), and intelligently formats results (1-3 items → summaries, 4+ items → IDs only). Use fetch tool to get full content for specific IDs when needed.",
7
7
  inputSchema: {
8
8
  type: "object",
9
9
  properties: {
@@ -123,59 +123,22 @@ export const TOOLS = [
123
123
  },
124
124
  add: {
125
125
  type: "object",
126
- description: "Add new context and/or tasks to memory",
126
+ description: "Add new items to memory with automatic intelligent classification and topic suggestion",
127
127
  properties: {
128
- context: {
128
+ items: {
129
129
  type: "array",
130
130
  items: {
131
131
  type: "object",
132
132
  properties: {
133
- title: { type: "string", description: "Context title" },
133
+ title: { type: "string", description: "Item title" },
134
134
  content: {
135
135
  type: "string",
136
- description: "Context content (general information)",
137
- },
138
- topics: {
139
- type: "array",
140
- items: { type: "string" },
141
- description: "Optional topics/tags",
142
- },
143
- },
144
- required: ["title", "content"],
145
- },
146
- description: "Array of context items to add",
147
- },
148
- tasks: {
149
- type: "array",
150
- items: {
151
- type: "object",
152
- properties: {
153
- title: { type: "string", description: "Task title" },
154
- content: { type: "string", description: "Task description" },
155
- topics: {
156
- type: "array",
157
- items: { type: "string" },
158
- description: "Optional topics/tags",
159
- },
160
- status: {
161
- type: "string",
162
- enum: [
163
- "pending",
164
- "in_progress",
165
- "completed",
166
- "invalidated",
167
- ],
168
- description: "Task status (default: pending)",
169
- },
170
- priority: {
171
- type: "string",
172
- enum: ["urgent", "high", "medium", "low"],
173
- description: "Priority level (default: medium)",
136
+ description: "Item content - system automatically classifies as task (actionable) or context (knowledge) and suggests relevant topics",
174
137
  },
175
138
  },
176
139
  required: ["title", "content"],
177
140
  },
178
- description: "Array of tasks to add",
141
+ description: "Array of items to add. System intelligently: (1) classifies as task or context, (2) suggests 1-3 relevant topics based on content and existing topics. Examples: 'Need to fix auth bug' → task with topics like 'authentication', 'bug-fix'. 'Learned React batches updates' → context with topics like 'react', 'learning'.",
179
142
  },
180
143
  },
181
144
  },
package/index.ts CHANGED
@@ -119,12 +119,10 @@ async function handleSearchMemories(args: any) {
119
119
  space_id,
120
120
  query,
121
121
  topics,
122
- return_format = "full",
123
122
  } = args as {
124
123
  space_id: string;
125
124
  query: string;
126
125
  topics?: string[];
127
- return_format?: "full" | "summary" | "ids_only";
128
126
  };
129
127
 
130
128
  // Require space_id
@@ -139,34 +137,9 @@ async function handleSearchMemories(args: any) {
139
137
  space_ids: [space_id], // Convert to array for backend compatibility
140
138
  query,
141
139
  topics,
142
- return_format,
143
140
  });
144
141
  }
145
142
 
146
- async function handleGetRecentMemories(args: any) {
147
- const {
148
- space_id,
149
- topics,
150
- limit = 20,
151
- } = args as {
152
- space_id?: string;
153
- topics?: string[];
154
- limit?: number;
155
- };
156
-
157
- // Require space_id to be provided
158
- if (!space_id) {
159
- throw new Error(
160
- "space_id is required. Use list_spaces to see available options.",
161
- );
162
- }
163
-
164
- return makeApiCall("get-recent-memories", {
165
- space_id,
166
- topics,
167
- limit,
168
- });
169
- }
170
143
 
171
144
  async function handleFetch(args: any) {
172
145
  const { id, ids } = args as { id?: string; ids?: string[] };
@@ -214,9 +187,6 @@ async function handleUpdateSpace(args: any) {
214
187
  });
215
188
  }
216
189
 
217
- async function handleListTasks(args: any) {
218
- return makeApiCall("list-tasks", args);
219
- }
220
190
 
221
191
  server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
222
192
  const { name, arguments: args } = request.params;
@@ -228,9 +198,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
228
198
  case "search":
229
199
  result = await handleSearchMemories(args);
230
200
  break;
231
- case "get_recent_memories":
232
- result = await handleGetRecentMemories(args);
233
- break;
234
201
  case "fetch":
235
202
  result = await handleFetch(args);
236
203
  break;
@@ -249,9 +216,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
249
216
  case "update_space":
250
217
  result = await handleUpdateSpace(args);
251
218
  break;
252
- case "list_tasks":
253
- result = await handleListTasks(args);
254
- break;
255
219
  default:
256
220
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
257
221
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intangle/mcp-server",
3
- "version": "1.2.6",
3
+ "version": "1.4.0",
4
4
  "description": "Model Context Protocol server for Intangle - AI memory that persists across conversations",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -4,7 +4,7 @@ export const TOOLS = [
4
4
  name: "search",
5
5
  title: "Search Space",
6
6
  description:
7
- "Search for information within a space. System automatically extracts quantity from natural language ('show 3 tasks' → 3 results, 'the last one' → 1 result) and determines optimal depth from query complexity ('quick search' → quick mode, 'search deep' → deep mode). Always returns IDs - use fetch tool for full content.",
7
+ "Search for information within a space. System automatically extracts quantity from natural language ('show 3 tasks' → 3 results, 'the last one' → 1 result), determines optimal depth from query complexity ('quick search' → quick mode, 'search deep' → deep mode), and intelligently formats results (1-3 items → summaries, 4+ items → IDs only). Use fetch tool to get full content for specific IDs when needed.",
8
8
  inputSchema: {
9
9
  type: "object",
10
10
  properties: {
@@ -137,59 +137,22 @@ export const TOOLS = [
137
137
  },
138
138
  add: {
139
139
  type: "object",
140
- description: "Add new context and/or tasks to memory",
140
+ description: "Add new items to memory with automatic intelligent classification and topic suggestion",
141
141
  properties: {
142
- context: {
142
+ items: {
143
143
  type: "array",
144
144
  items: {
145
145
  type: "object",
146
146
  properties: {
147
- title: { type: "string", description: "Context title" },
147
+ title: { type: "string", description: "Item title" },
148
148
  content: {
149
149
  type: "string",
150
- description: "Context content (general information)",
151
- },
152
- topics: {
153
- type: "array",
154
- items: { type: "string" },
155
- description: "Optional topics/tags",
156
- },
157
- },
158
- required: ["title", "content"],
159
- },
160
- description: "Array of context items to add",
161
- },
162
- tasks: {
163
- type: "array",
164
- items: {
165
- type: "object",
166
- properties: {
167
- title: { type: "string", description: "Task title" },
168
- content: { type: "string", description: "Task description" },
169
- topics: {
170
- type: "array",
171
- items: { type: "string" },
172
- description: "Optional topics/tags",
173
- },
174
- status: {
175
- type: "string",
176
- enum: [
177
- "pending",
178
- "in_progress",
179
- "completed",
180
- "invalidated",
181
- ],
182
- description: "Task status (default: pending)",
183
- },
184
- priority: {
185
- type: "string",
186
- enum: ["urgent", "high", "medium", "low"],
187
- description: "Priority level (default: medium)",
150
+ description: "Item content - system automatically classifies as task (actionable) or context (knowledge) and suggests relevant topics",
188
151
  },
189
152
  },
190
153
  required: ["title", "content"],
191
154
  },
192
- description: "Array of tasks to add",
155
+ description: "Array of items to add. System intelligently: (1) classifies as task or context, (2) suggests 1-3 relevant topics based on content and existing topics. Examples: 'Need to fix auth bug' → task with topics like 'authentication', 'bug-fix'. 'Learned React batches updates' → context with topics like 'react', 'learning'.",
193
156
  },
194
157
  },
195
158
  },
Binary file