mcpscraper-memory-sdk 0.2.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/README.md +51 -0
- package/dist/index.cjs +510 -0
- package/dist/index.d.cts +7289 -0
- package/dist/index.d.ts +7289 -0
- package/dist/index.js +467 -0
- package/package.json +41 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
// src/errors.ts
|
|
2
|
+
var MemoryApiError = class extends Error {
|
|
3
|
+
httpStatus;
|
|
4
|
+
rpcCode;
|
|
5
|
+
data;
|
|
6
|
+
toolError;
|
|
7
|
+
constructor(message, details = {}) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "MemoryApiError";
|
|
10
|
+
this.httpStatus = details.httpStatus;
|
|
11
|
+
this.rpcCode = details.rpcCode;
|
|
12
|
+
this.data = details.data;
|
|
13
|
+
this.toolError = details.toolError;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// src/generated/methods.ts
|
|
18
|
+
var AccessNamespace = class {
|
|
19
|
+
constructor(callTool) {
|
|
20
|
+
this.callTool = callTool;
|
|
21
|
+
}
|
|
22
|
+
callTool;
|
|
23
|
+
async issueKey(input) {
|
|
24
|
+
return this.callTool("issueKeyTool", input);
|
|
25
|
+
}
|
|
26
|
+
async listKeys(input) {
|
|
27
|
+
return this.callTool("listKeysTool", input);
|
|
28
|
+
}
|
|
29
|
+
async revokeKey(input) {
|
|
30
|
+
return this.callTool("revokeKeyTool", input);
|
|
31
|
+
}
|
|
32
|
+
async setScope(input) {
|
|
33
|
+
return this.callTool("setScopeTool", input);
|
|
34
|
+
}
|
|
35
|
+
async shareVault(input) {
|
|
36
|
+
return this.callTool("shareVaultTool", input);
|
|
37
|
+
}
|
|
38
|
+
async swapVault(input) {
|
|
39
|
+
return this.callTool("swapVaultTool", input);
|
|
40
|
+
}
|
|
41
|
+
async inviteAccount(input) {
|
|
42
|
+
return this.callTool("inviteAccountTool", input);
|
|
43
|
+
}
|
|
44
|
+
async switchAccount(input) {
|
|
45
|
+
return this.callTool("switchAccountTool", input);
|
|
46
|
+
}
|
|
47
|
+
async approveSender(input) {
|
|
48
|
+
return this.callTool("approveSenderTool", input);
|
|
49
|
+
}
|
|
50
|
+
async removeApprovedSender(input) {
|
|
51
|
+
return this.callTool("removeApprovedSenderTool", input);
|
|
52
|
+
}
|
|
53
|
+
async listApprovedSenders(input) {
|
|
54
|
+
return this.callTool("listApprovedSendersTool", input);
|
|
55
|
+
}
|
|
56
|
+
async inboxSettings(input) {
|
|
57
|
+
return this.callTool("inboxSettingsTool", input);
|
|
58
|
+
}
|
|
59
|
+
async shareNote(input) {
|
|
60
|
+
return this.callTool("shareNoteTool", input);
|
|
61
|
+
}
|
|
62
|
+
async noteInbox(input) {
|
|
63
|
+
return this.callTool("noteInboxTool", input);
|
|
64
|
+
}
|
|
65
|
+
async acceptShare(input) {
|
|
66
|
+
return this.callTool("acceptShareTool", input);
|
|
67
|
+
}
|
|
68
|
+
async declineShare(input) {
|
|
69
|
+
return this.callTool("declineShareTool", input);
|
|
70
|
+
}
|
|
71
|
+
async unlinkShare(input) {
|
|
72
|
+
return this.callTool("unlinkShareTool", input);
|
|
73
|
+
}
|
|
74
|
+
async revokeShare(input) {
|
|
75
|
+
return this.callTool("revokeShareTool", input);
|
|
76
|
+
}
|
|
77
|
+
async getChatLink(input) {
|
|
78
|
+
return this.callTool("getChatLinkTool", input);
|
|
79
|
+
}
|
|
80
|
+
async revokeChatLink(input) {
|
|
81
|
+
return this.callTool("revokeChatLinkTool", input);
|
|
82
|
+
}
|
|
83
|
+
async setAgentIdentity(input) {
|
|
84
|
+
return this.callTool("setAgentIdentityTool", input);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
var VaultsNamespace = class {
|
|
88
|
+
constructor(callTool) {
|
|
89
|
+
this.callTool = callTool;
|
|
90
|
+
}
|
|
91
|
+
callTool;
|
|
92
|
+
async listSharedWithMe(input) {
|
|
93
|
+
return this.callTool("listSharedWithMeTool", input);
|
|
94
|
+
}
|
|
95
|
+
async listVaults(input) {
|
|
96
|
+
return this.callTool("listVaultsTool", input);
|
|
97
|
+
}
|
|
98
|
+
async addVault(input) {
|
|
99
|
+
return this.callTool("addVaultTool", input);
|
|
100
|
+
}
|
|
101
|
+
async createSecureVault(input) {
|
|
102
|
+
return this.callTool("createSecureVaultTool", input);
|
|
103
|
+
}
|
|
104
|
+
async deleteVault(input) {
|
|
105
|
+
return this.callTool("deleteVaultTool", input);
|
|
106
|
+
}
|
|
107
|
+
async provisionDefaults(input) {
|
|
108
|
+
return this.callTool("provisionDefaultsTool", input);
|
|
109
|
+
}
|
|
110
|
+
async getVaultContract(input) {
|
|
111
|
+
return this.callTool("getVaultContractTool", input);
|
|
112
|
+
}
|
|
113
|
+
async routeMemory(input) {
|
|
114
|
+
return this.callTool("routeMemoryTool", input);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
var ChannelsNamespace = class {
|
|
118
|
+
constructor(callTool) {
|
|
119
|
+
this.callTool = callTool;
|
|
120
|
+
}
|
|
121
|
+
callTool;
|
|
122
|
+
async createChannel(input) {
|
|
123
|
+
return this.callTool("createChannelTool", input);
|
|
124
|
+
}
|
|
125
|
+
async postMessage(input) {
|
|
126
|
+
return this.callTool("postMessageTool", input);
|
|
127
|
+
}
|
|
128
|
+
async replyMessage(input) {
|
|
129
|
+
return this.callTool("replyMessageTool", input);
|
|
130
|
+
}
|
|
131
|
+
async listChannelMessages(input) {
|
|
132
|
+
return this.callTool("listChannelMessagesTool", input);
|
|
133
|
+
}
|
|
134
|
+
async reactMessage(input) {
|
|
135
|
+
return this.callTool("reactMessageTool", input);
|
|
136
|
+
}
|
|
137
|
+
async myMentions(input) {
|
|
138
|
+
return this.callTool("myMentionsTool", input);
|
|
139
|
+
}
|
|
140
|
+
async listChannelMembers(input) {
|
|
141
|
+
return this.callTool("listChannelMembersTool", input);
|
|
142
|
+
}
|
|
143
|
+
async removeChannelMember(input) {
|
|
144
|
+
return this.callTool("removeChannelMemberTool", input);
|
|
145
|
+
}
|
|
146
|
+
async pollChannel(input) {
|
|
147
|
+
return this.callTool("pollChannelTool", input);
|
|
148
|
+
}
|
|
149
|
+
async getMessageNote(input) {
|
|
150
|
+
return this.callTool("getMessageNoteTool", input);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
var CaptureNamespace = class {
|
|
154
|
+
constructor(callTool) {
|
|
155
|
+
this.callTool = callTool;
|
|
156
|
+
}
|
|
157
|
+
callTool;
|
|
158
|
+
async memoryQuestions(input) {
|
|
159
|
+
return this.callTool("memoryQuestionsTool", input);
|
|
160
|
+
}
|
|
161
|
+
async prepareMemoryWrite(input) {
|
|
162
|
+
return this.callTool("prepareMemoryWriteTool", input);
|
|
163
|
+
}
|
|
164
|
+
async validateMemoryWrite(input) {
|
|
165
|
+
return this.callTool("validateMemoryWriteTool", input);
|
|
166
|
+
}
|
|
167
|
+
async memoryCapture(input) {
|
|
168
|
+
return this.callTool("memoryCaptureTool", input);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
var LibraryNamespace = class {
|
|
172
|
+
constructor(callTool) {
|
|
173
|
+
this.callTool = callTool;
|
|
174
|
+
}
|
|
175
|
+
callTool;
|
|
176
|
+
async ingest(input) {
|
|
177
|
+
return this.callTool("libraryIngestTool", input);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
var MemoryNamespace = class {
|
|
181
|
+
constructor(callTool) {
|
|
182
|
+
this.callTool = callTool;
|
|
183
|
+
}
|
|
184
|
+
callTool;
|
|
185
|
+
async export(input) {
|
|
186
|
+
return this.callTool("exportTool", input);
|
|
187
|
+
}
|
|
188
|
+
async get(input) {
|
|
189
|
+
return this.callTool("getTool", input);
|
|
190
|
+
}
|
|
191
|
+
async list(input) {
|
|
192
|
+
return this.callTool("listTool", input);
|
|
193
|
+
}
|
|
194
|
+
async put(input) {
|
|
195
|
+
return this.callTool("putTool", input);
|
|
196
|
+
}
|
|
197
|
+
async search(input) {
|
|
198
|
+
return this.callTool("searchTool", input);
|
|
199
|
+
}
|
|
200
|
+
async suggest(input) {
|
|
201
|
+
return this.callTool("suggestTool", input);
|
|
202
|
+
}
|
|
203
|
+
async upload(input) {
|
|
204
|
+
return this.callTool("uploadTool", input);
|
|
205
|
+
}
|
|
206
|
+
async deleteNote(input) {
|
|
207
|
+
return this.callTool("deleteNoteTool", input);
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
var TablesNamespace = class {
|
|
211
|
+
constructor(callTool) {
|
|
212
|
+
this.callTool = callTool;
|
|
213
|
+
}
|
|
214
|
+
callTool;
|
|
215
|
+
async create(input) {
|
|
216
|
+
return this.callTool("createTableTool", input);
|
|
217
|
+
}
|
|
218
|
+
async list(input) {
|
|
219
|
+
return this.callTool("listTablesTool", input);
|
|
220
|
+
}
|
|
221
|
+
async describe(input) {
|
|
222
|
+
return this.callTool("describeTableTool", input);
|
|
223
|
+
}
|
|
224
|
+
async insertRows(input) {
|
|
225
|
+
return this.callTool("insertTableRowsTool", input);
|
|
226
|
+
}
|
|
227
|
+
async query(input) {
|
|
228
|
+
return this.callTool("queryTableTool", input);
|
|
229
|
+
}
|
|
230
|
+
async deleteRows(input) {
|
|
231
|
+
return this.callTool("deleteTableRowsTool", input);
|
|
232
|
+
}
|
|
233
|
+
async drop(input) {
|
|
234
|
+
return this.callTool("dropTableTool", input);
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
var RecallNamespace = class {
|
|
238
|
+
constructor(callTool) {
|
|
239
|
+
this.callTool = callTool;
|
|
240
|
+
}
|
|
241
|
+
callTool;
|
|
242
|
+
async temporalRecall(input) {
|
|
243
|
+
return this.callTool("temporalRecallTool", input);
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
var TagsNamespace = class {
|
|
247
|
+
constructor(callTool) {
|
|
248
|
+
this.callTool = callTool;
|
|
249
|
+
}
|
|
250
|
+
callTool;
|
|
251
|
+
async listMemoryTags(input) {
|
|
252
|
+
return this.callTool("listTagsTool", input);
|
|
253
|
+
}
|
|
254
|
+
async resolveMemoryTags(input) {
|
|
255
|
+
return this.callTool("resolveTagsTool", input);
|
|
256
|
+
}
|
|
257
|
+
async upsertMemoryTag(input) {
|
|
258
|
+
return this.callTool("upsertTagTool", input);
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
var GraphNamespace = class {
|
|
262
|
+
constructor(callTool) {
|
|
263
|
+
this.callTool = callTool;
|
|
264
|
+
}
|
|
265
|
+
callTool;
|
|
266
|
+
async memoryBacklinks(input) {
|
|
267
|
+
return this.callTool("noteBacklinksTool", input);
|
|
268
|
+
}
|
|
269
|
+
async memoryGraphUniverse(input) {
|
|
270
|
+
return this.callTool("graphUniverseTool", input);
|
|
271
|
+
}
|
|
272
|
+
async memoryGraphPath(input) {
|
|
273
|
+
return this.callTool("graphPathTool", input);
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
var FactsNamespace = class {
|
|
277
|
+
constructor(callTool) {
|
|
278
|
+
this.callTool = callTool;
|
|
279
|
+
}
|
|
280
|
+
callTool;
|
|
281
|
+
async recordFact(input) {
|
|
282
|
+
return this.callTool("recordFactTool", input);
|
|
283
|
+
}
|
|
284
|
+
async history(input) {
|
|
285
|
+
return this.callTool("factHistoryTool", input);
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
var StorageNamespace = class {
|
|
289
|
+
constructor(callTool) {
|
|
290
|
+
this.callTool = callTool;
|
|
291
|
+
}
|
|
292
|
+
callTool;
|
|
293
|
+
async usage(input) {
|
|
294
|
+
return this.callTool("storageUsageTool", input);
|
|
295
|
+
}
|
|
296
|
+
async costUsage(input) {
|
|
297
|
+
return this.callTool("costUsageTool", input);
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
var ScheduleNamespace = class {
|
|
301
|
+
constructor(callTool) {
|
|
302
|
+
this.callTool = callTool;
|
|
303
|
+
}
|
|
304
|
+
callTool;
|
|
305
|
+
async createScheduledAction(input) {
|
|
306
|
+
return this.callTool("createScheduledActionTool", input);
|
|
307
|
+
}
|
|
308
|
+
async listScheduledActions(input) {
|
|
309
|
+
return this.callTool("listScheduledActionsTool", input);
|
|
310
|
+
}
|
|
311
|
+
async pauseScheduledAction(input) {
|
|
312
|
+
return this.callTool("pauseScheduledActionTool", input);
|
|
313
|
+
}
|
|
314
|
+
async resumeScheduledAction(input) {
|
|
315
|
+
return this.callTool("resumeScheduledActionTool", input);
|
|
316
|
+
}
|
|
317
|
+
async deleteScheduledAction(input) {
|
|
318
|
+
return this.callTool("deleteScheduledActionTool", input);
|
|
319
|
+
}
|
|
320
|
+
async setScheduleEntitlement(input) {
|
|
321
|
+
return this.callTool("setScheduleEntitlementTool", input);
|
|
322
|
+
}
|
|
323
|
+
async getScheduleStatus(input) {
|
|
324
|
+
return this.callTool("getScheduleStatusTool", input);
|
|
325
|
+
}
|
|
326
|
+
async proposeScheduledAction(input) {
|
|
327
|
+
return this.callTool("proposeScheduledActionTool", input);
|
|
328
|
+
}
|
|
329
|
+
async getScheduleLink(input) {
|
|
330
|
+
return this.callTool("getScheduleLinkTool", input);
|
|
331
|
+
}
|
|
332
|
+
async revokeScheduleLink(input) {
|
|
333
|
+
return this.callTool("revokeScheduleLinkTool", input);
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
var WebhooksNamespace = class {
|
|
337
|
+
constructor(callTool) {
|
|
338
|
+
this.callTool = callTool;
|
|
339
|
+
}
|
|
340
|
+
callTool;
|
|
341
|
+
async createWebhook(input) {
|
|
342
|
+
return this.callTool("createWebhookTool", input);
|
|
343
|
+
}
|
|
344
|
+
async listWebhooks(input) {
|
|
345
|
+
return this.callTool("listWebhooksTool", input);
|
|
346
|
+
}
|
|
347
|
+
async revokeWebhook(input) {
|
|
348
|
+
return this.callTool("revokeWebhookTool", input);
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
var VideoNamespace = class {
|
|
352
|
+
constructor(callTool) {
|
|
353
|
+
this.callTool = callTool;
|
|
354
|
+
}
|
|
355
|
+
callTool;
|
|
356
|
+
async analyzeStart(input) {
|
|
357
|
+
return this.callTool("videoAnalyzeStartTool", input);
|
|
358
|
+
}
|
|
359
|
+
async analyzeStatus(input) {
|
|
360
|
+
return this.callTool("videoAnalyzeStatusTool", input);
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
// src/client.ts
|
|
365
|
+
var MemoryClient = class {
|
|
366
|
+
access;
|
|
367
|
+
capture;
|
|
368
|
+
channels;
|
|
369
|
+
facts;
|
|
370
|
+
graph;
|
|
371
|
+
library;
|
|
372
|
+
memory;
|
|
373
|
+
recall;
|
|
374
|
+
schedule;
|
|
375
|
+
storage;
|
|
376
|
+
tables;
|
|
377
|
+
tags;
|
|
378
|
+
vaults;
|
|
379
|
+
video;
|
|
380
|
+
webhooks;
|
|
381
|
+
apiKey;
|
|
382
|
+
baseUrl;
|
|
383
|
+
fetchImpl;
|
|
384
|
+
rpcId = 0;
|
|
385
|
+
constructor(options) {
|
|
386
|
+
this.apiKey = options.apiKey;
|
|
387
|
+
this.baseUrl = options.baseUrl ?? "https://memory.mcpscraper.dev";
|
|
388
|
+
this.fetchImpl = options.fetch ?? globalThis.fetch;
|
|
389
|
+
const callTool = this.callTool.bind(this);
|
|
390
|
+
this.access = new AccessNamespace(callTool);
|
|
391
|
+
this.capture = new CaptureNamespace(callTool);
|
|
392
|
+
this.channels = new ChannelsNamespace(callTool);
|
|
393
|
+
this.facts = new FactsNamespace(callTool);
|
|
394
|
+
this.graph = new GraphNamespace(callTool);
|
|
395
|
+
this.library = new LibraryNamespace(callTool);
|
|
396
|
+
this.memory = new MemoryNamespace(callTool);
|
|
397
|
+
this.recall = new RecallNamespace(callTool);
|
|
398
|
+
this.schedule = new ScheduleNamespace(callTool);
|
|
399
|
+
this.storage = new StorageNamespace(callTool);
|
|
400
|
+
this.tables = new TablesNamespace(callTool);
|
|
401
|
+
this.tags = new TagsNamespace(callTool);
|
|
402
|
+
this.vaults = new VaultsNamespace(callTool);
|
|
403
|
+
this.video = new VideoNamespace(callTool);
|
|
404
|
+
this.webhooks = new WebhooksNamespace(callTool);
|
|
405
|
+
}
|
|
406
|
+
async callTool(name, args) {
|
|
407
|
+
const res = await this.fetchImpl(`${this.baseUrl}/mcp`, {
|
|
408
|
+
method: "POST",
|
|
409
|
+
headers: {
|
|
410
|
+
"content-type": "application/json",
|
|
411
|
+
accept: "application/json, text/event-stream",
|
|
412
|
+
authorization: `Bearer ${this.apiKey}`
|
|
413
|
+
},
|
|
414
|
+
body: JSON.stringify({
|
|
415
|
+
jsonrpc: "2.0",
|
|
416
|
+
id: ++this.rpcId,
|
|
417
|
+
method: "tools/call",
|
|
418
|
+
params: { name, arguments: args }
|
|
419
|
+
})
|
|
420
|
+
});
|
|
421
|
+
if (!res.ok) {
|
|
422
|
+
const body = await res.text().catch(() => void 0);
|
|
423
|
+
throw new MemoryApiError(`HTTP ${res.status} calling tool "${name}"`, { httpStatus: res.status, data: body });
|
|
424
|
+
}
|
|
425
|
+
const payload = await res.json();
|
|
426
|
+
if (payload.error) {
|
|
427
|
+
throw new MemoryApiError(payload.error.message, { rpcCode: payload.error.code, data: payload.error.data });
|
|
428
|
+
}
|
|
429
|
+
const result = payload.result;
|
|
430
|
+
const textBlock = result?.content?.find((block) => block.type === "text")?.text;
|
|
431
|
+
let parsed = textBlock;
|
|
432
|
+
if (typeof textBlock === "string") {
|
|
433
|
+
try {
|
|
434
|
+
parsed = JSON.parse(textBlock);
|
|
435
|
+
} catch {
|
|
436
|
+
parsed = textBlock;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
if (result?.structuredContent !== void 0) {
|
|
440
|
+
parsed = result.structuredContent;
|
|
441
|
+
}
|
|
442
|
+
if (result?.isError) {
|
|
443
|
+
const message = parsed && typeof parsed === "object" && "message" in parsed ? String(parsed.message) : typeof parsed === "string" ? parsed : `Tool "${name}" failed`;
|
|
444
|
+
throw new MemoryApiError(message, { toolError: parsed });
|
|
445
|
+
}
|
|
446
|
+
return parsed;
|
|
447
|
+
}
|
|
448
|
+
};
|
|
449
|
+
export {
|
|
450
|
+
AccessNamespace,
|
|
451
|
+
CaptureNamespace,
|
|
452
|
+
ChannelsNamespace,
|
|
453
|
+
FactsNamespace,
|
|
454
|
+
GraphNamespace,
|
|
455
|
+
LibraryNamespace,
|
|
456
|
+
MemoryApiError,
|
|
457
|
+
MemoryClient,
|
|
458
|
+
MemoryNamespace,
|
|
459
|
+
RecallNamespace,
|
|
460
|
+
ScheduleNamespace,
|
|
461
|
+
StorageNamespace,
|
|
462
|
+
TablesNamespace,
|
|
463
|
+
TagsNamespace,
|
|
464
|
+
VaultsNamespace,
|
|
465
|
+
VideoNamespace,
|
|
466
|
+
WebhooksNamespace
|
|
467
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mcpscraper-memory-sdk",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Official TypeScript/JavaScript client for the memory.mcpscraper.dev hosted memory API",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.cjs",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"require": "./dist/index.cjs"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"generate": "tsx ../../scripts/generate-memory-client.ts",
|
|
23
|
+
"build": "tsup src/index.ts --format esm,cjs --dts",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"test": "node --test --import tsx \"test/**/*.test.ts\""
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"mcp-memory",
|
|
29
|
+
"memory-api",
|
|
30
|
+
"obsidian",
|
|
31
|
+
"vaults"
|
|
32
|
+
],
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "git+https://github.com/VilovietaSEO/mcpscraper-sdk.git",
|
|
36
|
+
"directory": "packages/memory"
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
}
|
|
41
|
+
}
|