@intangle/mcp-server 2.3.0 → 2.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.
- package/dist/index.js +4 -2
- package/dist/tool-definitions.js +30 -11
- package/index.ts +4 -2
- package/package.json +51 -51
- package/tool-definitions.ts +32 -11
package/dist/index.js
CHANGED
|
@@ -183,8 +183,8 @@ try {
|
|
|
183
183
|
if (!args.space_id) {
|
|
184
184
|
throw new Error("space_id is required. Use view_spaces to see available options.");
|
|
185
185
|
}
|
|
186
|
-
if (!args.add && !args.update && !args.delete) {
|
|
187
|
-
throw new Error("At least one operation
|
|
186
|
+
if (!args.add && !args.update && !args.delete && !args.link && !args.unlink) {
|
|
187
|
+
throw new Error("At least one operation must be provided");
|
|
188
188
|
}
|
|
189
189
|
// Pass through to API with new structure
|
|
190
190
|
return makeApiCall("update-memory", {
|
|
@@ -192,6 +192,8 @@ try {
|
|
|
192
192
|
add: args.add,
|
|
193
193
|
update: args.update,
|
|
194
194
|
delete: args.delete,
|
|
195
|
+
link: args.link,
|
|
196
|
+
unlink: args.unlink,
|
|
195
197
|
});
|
|
196
198
|
}
|
|
197
199
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
package/dist/tool-definitions.js
CHANGED
|
@@ -3,7 +3,7 @@ export const TOOLS = [
|
|
|
3
3
|
{
|
|
4
4
|
name: "search",
|
|
5
5
|
title: "Search Space",
|
|
6
|
-
description: "Search for context, tasks,
|
|
6
|
+
description: "Search for context, tasks, skills, and projects within a space. System automatically extracts quantity from natural language ('show 3 tasks' → 3 results, 'the last one' → 1 result) 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: {
|
|
@@ -33,12 +33,12 @@ export const TOOLS = [
|
|
|
33
33
|
properties: {
|
|
34
34
|
id: {
|
|
35
35
|
type: "string",
|
|
36
|
-
description: "Single ID to fetch (context or task ID like 'mem_123' or 'task_456' or '
|
|
36
|
+
description: "Single ID to fetch (context or task ID like 'mem_123' or 'task_456' or 'skill_789')",
|
|
37
37
|
},
|
|
38
38
|
ids: {
|
|
39
39
|
type: "array",
|
|
40
40
|
items: { type: "string" },
|
|
41
|
-
description: "Array of IDs to fetch (mix of context, task, and
|
|
41
|
+
description: "Array of IDs to fetch (mix of context, task, and skill IDs). Use this to fetch multiple items in one call.",
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
44
|
},
|
|
@@ -46,7 +46,7 @@ export const TOOLS = [
|
|
|
46
46
|
{
|
|
47
47
|
name: "view_projects",
|
|
48
48
|
title: "View Projects",
|
|
49
|
-
description: "List all projects in a space. Projects are user-created canvases that organize context, tasks, documents, and
|
|
49
|
+
description: "List all projects in a space. Projects are user-created canvases that organize context, tasks, documents, and skills. Use this to discover available projects before viewing their contents.",
|
|
50
50
|
inputSchema: {
|
|
51
51
|
type: "object",
|
|
52
52
|
properties: {
|
|
@@ -61,7 +61,7 @@ export const TOOLS = [
|
|
|
61
61
|
{
|
|
62
62
|
name: "view_project",
|
|
63
63
|
title: "View Project",
|
|
64
|
-
description: "View a specific project with all its items (context, tasks, documents,
|
|
64
|
+
description: "View a specific project with all its items (context, tasks, documents, skills). Returns item metadata (IDs, titles, types, status) for each item in the project. Use fetch_items to get full content of specific items.",
|
|
65
65
|
inputSchema: {
|
|
66
66
|
type: "object",
|
|
67
67
|
properties: {
|
|
@@ -174,7 +174,7 @@ export const TOOLS = [
|
|
|
174
174
|
title: { type: "string", description: "Item title" },
|
|
175
175
|
content: {
|
|
176
176
|
type: "string",
|
|
177
|
-
description: "Item content - system automatically classifies as task (actionable), context (knowledge), or
|
|
177
|
+
description: "Item content - system automatically classifies as task (actionable), context (knowledge), or skill (workflow/procedure) and suggests relevant topics",
|
|
178
178
|
},
|
|
179
179
|
subtasks: {
|
|
180
180
|
type: "array",
|
|
@@ -191,20 +191,20 @@ export const TOOLS = [
|
|
|
191
191
|
},
|
|
192
192
|
required: ["title", "content"],
|
|
193
193
|
},
|
|
194
|
-
description: "Array of items to add. System intelligently: (1) classifies as task, context, or
|
|
194
|
+
description: "Array of items to add. System intelligently: (1) classifies as task, context, or skill, (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'. Tasks can include subtasks array for hierarchical task management.",
|
|
195
195
|
},
|
|
196
196
|
},
|
|
197
197
|
},
|
|
198
198
|
update: {
|
|
199
199
|
type: "object",
|
|
200
|
-
description: "Update existing items (context, tasks, or
|
|
200
|
+
description: "Update existing items (context, tasks, or skills) - system detects type from ID prefix",
|
|
201
201
|
properties: {
|
|
202
202
|
items: {
|
|
203
203
|
type: "array",
|
|
204
204
|
items: {
|
|
205
205
|
type: "object",
|
|
206
206
|
properties: {
|
|
207
|
-
id: { type: "string", description: "Item ID to update (mem_* for context, task_* for tasks,
|
|
207
|
+
id: { type: "string", description: "Item ID to update (mem_* for context, task_* for tasks, skill_* for skills)" },
|
|
208
208
|
title: {
|
|
209
209
|
type: "string",
|
|
210
210
|
description: "New title (optional)",
|
|
@@ -236,7 +236,7 @@ export const TOOLS = [
|
|
|
236
236
|
},
|
|
237
237
|
required: ["id"],
|
|
238
238
|
},
|
|
239
|
-
description: "Array of items to update. Type automatically detected from ID prefix (mem_* = context, task_* = task,
|
|
239
|
+
description: "Array of items to update. Type automatically detected from ID prefix (mem_* = context, task_* = task, skill_* = skill). For context/skill items, status/priority are ignored.",
|
|
240
240
|
},
|
|
241
241
|
},
|
|
242
242
|
},
|
|
@@ -247,7 +247,7 @@ export const TOOLS = [
|
|
|
247
247
|
item_ids: {
|
|
248
248
|
type: "array",
|
|
249
249
|
items: { type: "string" },
|
|
250
|
-
description: "Array of item IDs to delete (mem_* for context, task_* for tasks,
|
|
250
|
+
description: "Array of item IDs to delete (mem_* for context, task_* for tasks, skill_* for skills). Type automatically detected from ID prefix.",
|
|
251
251
|
},
|
|
252
252
|
},
|
|
253
253
|
},
|
|
@@ -255,4 +255,23 @@ export const TOOLS = [
|
|
|
255
255
|
required: ["space_id"],
|
|
256
256
|
},
|
|
257
257
|
},
|
|
258
|
+
{
|
|
259
|
+
name: "memory_action",
|
|
260
|
+
title: "Memory Action (OHM Protocol)",
|
|
261
|
+
description: "Perform memory operations using natural language. Add, update, delete items, fetch details, view topics. The system parses your intent into structured actions. Do NOT use for search - context comes from background activation.",
|
|
262
|
+
inputSchema: {
|
|
263
|
+
type: "object",
|
|
264
|
+
properties: {
|
|
265
|
+
space_id: {
|
|
266
|
+
type: "string",
|
|
267
|
+
description: "The space to operate in",
|
|
268
|
+
},
|
|
269
|
+
intent: {
|
|
270
|
+
type: "string",
|
|
271
|
+
description: "Natural language description of the memory operation (e.g., 'add a task to fix the login bug', 'mark task_123 as completed', 'delete mem_456')",
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
required: ["space_id", "intent"],
|
|
275
|
+
},
|
|
276
|
+
},
|
|
258
277
|
];
|
package/index.ts
CHANGED
|
@@ -253,9 +253,9 @@ try {
|
|
|
253
253
|
)
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
if (!args.add && !args.update && !args.delete) {
|
|
256
|
+
if (!args.add && !args.update && !args.delete && !args.link && !args.unlink) {
|
|
257
257
|
throw new Error(
|
|
258
|
-
"At least one operation
|
|
258
|
+
"At least one operation must be provided"
|
|
259
259
|
)
|
|
260
260
|
}
|
|
261
261
|
|
|
@@ -265,6 +265,8 @@ try {
|
|
|
265
265
|
add: args.add,
|
|
266
266
|
update: args.update,
|
|
267
267
|
delete: args.delete,
|
|
268
|
+
link: args.link,
|
|
269
|
+
unlink: args.unlink,
|
|
268
270
|
})
|
|
269
271
|
}
|
|
270
272
|
|
package/package.json
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
2
|
+
"name": "@intangle/mcp-server",
|
|
3
|
+
"version": "2.3.2",
|
|
4
|
+
"description": "Model Context Protocol server for Intangle - AI context that persists across conversations",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "node dist/index.js",
|
|
9
|
+
"dev": "tsx watch index.ts",
|
|
10
|
+
"prebuild": "cp ../web/src/app/api/mcp-remote/tool-definitions.ts ./tool-definitions.ts",
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"lint": "biome check .",
|
|
13
|
+
"lint:fix": "biome check --fix .",
|
|
14
|
+
"prepublishOnly": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"bin": {
|
|
17
|
+
"intangle-mcp": "dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"mcp",
|
|
21
|
+
"model-context-protocol",
|
|
22
|
+
"claude",
|
|
23
|
+
"claude-code",
|
|
24
|
+
"ai",
|
|
25
|
+
"context",
|
|
26
|
+
"knowledge-management",
|
|
27
|
+
"intangle",
|
|
28
|
+
"claude-desktop",
|
|
29
|
+
"anthropic"
|
|
30
|
+
],
|
|
31
|
+
"author": "Intangle",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "git+https://github.com/intangle/mcp-server.git"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://intangle.app",
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
43
|
+
"dotenv": "^17.2.0",
|
|
44
|
+
"node-fetch": "^3.3.2"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@biomejs/biome": "^1.9.4",
|
|
48
|
+
"@types/node": "^22.0.0",
|
|
49
|
+
"@types/node-fetch": "^2.6.12",
|
|
50
|
+
"tsx": "^4.0.0",
|
|
51
|
+
"typescript": "^5.0.0"
|
|
52
|
+
}
|
|
53
53
|
}
|
package/tool-definitions.ts
CHANGED
|
@@ -4,7 +4,7 @@ export const TOOLS = [
|
|
|
4
4
|
name: "search",
|
|
5
5
|
title: "Search Space",
|
|
6
6
|
description:
|
|
7
|
-
"Search for context, tasks,
|
|
7
|
+
"Search for context, tasks, skills, and projects within a space. System automatically extracts quantity from natural language ('show 3 tasks' → 3 results, 'the last one' → 1 result) 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: {
|
|
@@ -37,13 +37,13 @@ export const TOOLS = [
|
|
|
37
37
|
id: {
|
|
38
38
|
type: "string",
|
|
39
39
|
description:
|
|
40
|
-
"Single ID to fetch (context or task ID like 'mem_123' or 'task_456' or '
|
|
40
|
+
"Single ID to fetch (context or task ID like 'mem_123' or 'task_456' or 'skill_789')",
|
|
41
41
|
},
|
|
42
42
|
ids: {
|
|
43
43
|
type: "array",
|
|
44
44
|
items: { type: "string" },
|
|
45
45
|
description:
|
|
46
|
-
"Array of IDs to fetch (mix of context, task, and
|
|
46
|
+
"Array of IDs to fetch (mix of context, task, and skill IDs). Use this to fetch multiple items in one call.",
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
49
|
},
|
|
@@ -52,7 +52,7 @@ export const TOOLS = [
|
|
|
52
52
|
name: "view_projects",
|
|
53
53
|
title: "View Projects",
|
|
54
54
|
description:
|
|
55
|
-
"List all projects in a space. Projects are user-created canvases that organize context, tasks, documents, and
|
|
55
|
+
"List all projects in a space. Projects are user-created canvases that organize context, tasks, documents, and skills. Use this to discover available projects before viewing their contents.",
|
|
56
56
|
inputSchema: {
|
|
57
57
|
type: "object",
|
|
58
58
|
properties: {
|
|
@@ -69,7 +69,7 @@ export const TOOLS = [
|
|
|
69
69
|
name: "view_project",
|
|
70
70
|
title: "View Project",
|
|
71
71
|
description:
|
|
72
|
-
"View a specific project with all its items (context, tasks, documents,
|
|
72
|
+
"View a specific project with all its items (context, tasks, documents, skills). Returns item metadata (IDs, titles, types, status) for each item in the project. Use fetch_items to get full content of specific items.",
|
|
73
73
|
inputSchema: {
|
|
74
74
|
type: "object",
|
|
75
75
|
properties: {
|
|
@@ -195,7 +195,7 @@ export const TOOLS = [
|
|
|
195
195
|
title: { type: "string", description: "Item title" },
|
|
196
196
|
content: {
|
|
197
197
|
type: "string",
|
|
198
|
-
description: "Item content - system automatically classifies as task (actionable), context (knowledge), or
|
|
198
|
+
description: "Item content - system automatically classifies as task (actionable), context (knowledge), or skill (workflow/procedure) and suggests relevant topics",
|
|
199
199
|
},
|
|
200
200
|
subtasks: {
|
|
201
201
|
type: "array",
|
|
@@ -212,20 +212,20 @@ export const TOOLS = [
|
|
|
212
212
|
},
|
|
213
213
|
required: ["title", "content"],
|
|
214
214
|
},
|
|
215
|
-
description: "Array of items to add. System intelligently: (1) classifies as task, context, or
|
|
215
|
+
description: "Array of items to add. System intelligently: (1) classifies as task, context, or skill, (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'. Tasks can include subtasks array for hierarchical task management.",
|
|
216
216
|
},
|
|
217
217
|
},
|
|
218
218
|
},
|
|
219
219
|
update: {
|
|
220
220
|
type: "object",
|
|
221
|
-
description: "Update existing items (context, tasks, or
|
|
221
|
+
description: "Update existing items (context, tasks, or skills) - system detects type from ID prefix",
|
|
222
222
|
properties: {
|
|
223
223
|
items: {
|
|
224
224
|
type: "array",
|
|
225
225
|
items: {
|
|
226
226
|
type: "object",
|
|
227
227
|
properties: {
|
|
228
|
-
id: { type: "string", description: "Item ID to update (mem_* for context, task_* for tasks,
|
|
228
|
+
id: { type: "string", description: "Item ID to update (mem_* for context, task_* for tasks, skill_* for skills)" },
|
|
229
229
|
title: {
|
|
230
230
|
type: "string",
|
|
231
231
|
description: "New title (optional)",
|
|
@@ -257,7 +257,7 @@ export const TOOLS = [
|
|
|
257
257
|
},
|
|
258
258
|
required: ["id"],
|
|
259
259
|
},
|
|
260
|
-
description: "Array of items to update. Type automatically detected from ID prefix (mem_* = context, task_* = task,
|
|
260
|
+
description: "Array of items to update. Type automatically detected from ID prefix (mem_* = context, task_* = task, skill_* = skill). For context/skill items, status/priority are ignored.",
|
|
261
261
|
},
|
|
262
262
|
},
|
|
263
263
|
},
|
|
@@ -268,7 +268,7 @@ export const TOOLS = [
|
|
|
268
268
|
item_ids: {
|
|
269
269
|
type: "array",
|
|
270
270
|
items: { type: "string" },
|
|
271
|
-
description: "Array of item IDs to delete (mem_* for context, task_* for tasks,
|
|
271
|
+
description: "Array of item IDs to delete (mem_* for context, task_* for tasks, skill_* for skills). Type automatically detected from ID prefix.",
|
|
272
272
|
},
|
|
273
273
|
},
|
|
274
274
|
},
|
|
@@ -276,4 +276,25 @@ export const TOOLS = [
|
|
|
276
276
|
required: ["space_id"],
|
|
277
277
|
},
|
|
278
278
|
},
|
|
279
|
+
{
|
|
280
|
+
name: "memory_action",
|
|
281
|
+
title: "Memory Action (OHM Protocol)",
|
|
282
|
+
description:
|
|
283
|
+
"Perform memory operations using natural language. Add, update, delete items, fetch details, view topics. The system parses your intent into structured actions. Do NOT use for search - context comes from background activation.",
|
|
284
|
+
inputSchema: {
|
|
285
|
+
type: "object",
|
|
286
|
+
properties: {
|
|
287
|
+
space_id: {
|
|
288
|
+
type: "string",
|
|
289
|
+
description: "The space to operate in",
|
|
290
|
+
},
|
|
291
|
+
intent: {
|
|
292
|
+
type: "string",
|
|
293
|
+
description:
|
|
294
|
+
"Natural language description of the memory operation (e.g., 'add a task to fix the login bug', 'mark task_123 as completed', 'delete mem_456')",
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
required: ["space_id", "intent"],
|
|
298
|
+
},
|
|
299
|
+
},
|
|
279
300
|
];
|