@knowledgine/mcp-server 0.2.1 → 0.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/dist/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export { createKnowledgineMcpServer } from "./server.js";
3
3
  export type { McpServerOptions } from "./server.js";
4
4
  export { resolveConfig, initializeDependencies, formatToolResult, formatToolError, } from "./helpers.js";
5
5
  export { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
6
+ export { createRestApp } from "./rest-server.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import { createKnowledgineMcpServer } from "./server.js";
5
5
  export { createKnowledgineMcpServer } from "./server.js";
6
6
  export { resolveConfig, initializeDependencies, formatToolResult, formatToolError, } from "./helpers.js";
7
7
  export { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
8
+ export { createRestApp } from "./rest-server.js";
8
9
  async function main() {
9
10
  const config = resolveConfig();
10
11
  const { repository, embeddingProvider, graphRepository, feedbackRepository, db } = await initializeDependencies(config);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,EAAE,GAC9E,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,0BAA0B,CAAC;QACxC,UAAU;QACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,EAAE;KACH,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,0DAA0D;AAC1D,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACnF,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,EAAE,GAC9E,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,0BAA0B,CAAC;QACxC,UAAU;QACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,EAAE;KACH,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,0DAA0D;AAC1D,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACnF,IAAI,YAAY,EAAE,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MemoryManager } from "@knowledgine/core";
2
+ import type { MemoryProvider, MemoryStoreRequest, MemoryStoreResponse, MemoryRecallRequest, MemoryRecallResponse, MemoryUpdateRequest, MemoryUpdateResponse, MemoryForgetRequest, MemoryForgetResponse, MemoryProviderCapabilities } from "@knowledgine/mcp-memory-protocol";
3
+ import type Database from "better-sqlite3";
4
+ export declare class KnowledgineMemoryProvider implements MemoryProvider {
5
+ private readonly memoryManager;
6
+ private readonly db;
7
+ constructor(memoryManager: MemoryManager, db: Database.Database);
8
+ capabilities(): MemoryProviderCapabilities;
9
+ store(request: MemoryStoreRequest): Promise<MemoryStoreResponse>;
10
+ recall(request: MemoryRecallRequest): Promise<MemoryRecallResponse>;
11
+ update(request: MemoryUpdateRequest): Promise<MemoryUpdateResponse>;
12
+ forget(request: MemoryForgetRequest): Promise<MemoryForgetResponse>;
13
+ }
14
+ //# sourceMappingURL=memory-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-adapter.d.ts","sourceRoot":"","sources":["../src/memory-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAE3B,MAAM,kCAAkC,CAAC;AAO1C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AA6C3C,qBAAa,yBAA0B,YAAW,cAAc;IAE5D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE;gBADF,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAGxC,YAAY,IAAI,0BAA0B;IAWpC,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoChE,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuInE,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuFnE,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA0B1E"}
@@ -0,0 +1,258 @@
1
+ import { memoryNotFound, invalidContent, invalidLayer, capabilityNotSupported, } from "@knowledgine/mcp-memory-protocol";
2
+ const VALID_LAYERS = ["episodic", "semantic", "procedural"];
3
+ const DEFAULT_LAYER = "episodic";
4
+ const DEFAULT_LIMIT = 10;
5
+ const MAX_LIMIT = 100;
6
+ function rowToRecalled(row) {
7
+ return {
8
+ id: String(row.id),
9
+ content: row.content,
10
+ summary: row.summary ?? undefined,
11
+ layer: row.layer,
12
+ version: row.version ?? 1,
13
+ accessCount: row.access_count,
14
+ tags: row.tags_json ? JSON.parse(row.tags_json) : [],
15
+ metadata: row.metadata_json
16
+ ? JSON.parse(row.metadata_json)
17
+ : undefined,
18
+ createdAt: row.created_at,
19
+ updatedAt: row.updated_at ?? undefined,
20
+ lastAccessedAt: row.last_accessed_at ?? undefined,
21
+ };
22
+ }
23
+ export class KnowledgineMemoryProvider {
24
+ memoryManager;
25
+ db;
26
+ constructor(memoryManager, db) {
27
+ this.memoryManager = memoryManager;
28
+ this.db = db;
29
+ }
30
+ capabilities() {
31
+ return {
32
+ versioning: true,
33
+ semanticSearch: false,
34
+ layerPromotion: true,
35
+ temporalQuery: false,
36
+ ttl: false,
37
+ supportedLayers: ["episodic", "semantic", "procedural"],
38
+ };
39
+ }
40
+ async store(request) {
41
+ if (!request.content || request.content.trim() === "") {
42
+ throw invalidContent();
43
+ }
44
+ const layer = request.layer ?? DEFAULT_LAYER;
45
+ if (!VALID_LAYERS.includes(layer)) {
46
+ throw invalidLayer(layer);
47
+ }
48
+ const metadata = request.metadata;
49
+ const id = this.memoryManager.store(layer, request.content, undefined, metadata);
50
+ if (request.tags && request.tags.length > 0) {
51
+ this.db
52
+ .prepare("UPDATE memory_entries SET tags_json = ? WHERE id = ?")
53
+ .run(JSON.stringify(request.tags), id);
54
+ }
55
+ const row = this.db.prepare("SELECT created_at FROM memory_entries WHERE id = ?").get(id);
56
+ return {
57
+ id: String(id),
58
+ layer,
59
+ version: 1,
60
+ createdAt: row?.created_at ?? new Date().toISOString(),
61
+ };
62
+ }
63
+ async recall(request) {
64
+ if (request.asOf !== undefined) {
65
+ throw capabilityNotSupported("temporal_query");
66
+ }
67
+ const limit = Math.min(request.limit ?? DEFAULT_LIMIT, MAX_LIMIT);
68
+ const filter = request.filter;
69
+ const includeVersionHistory = request.includeVersionHistory ?? false;
70
+ const conditions = ["deleted = 0"];
71
+ const params = [];
72
+ if (!includeVersionHistory) {
73
+ // exclude deprecated (soft-deleted via forget_memory soft) entries are handled via deleted=0
74
+ // version history entries don't apply here since we implement versioning via new rows
75
+ }
76
+ if (filter?.layer) {
77
+ conditions.push("layer = ?");
78
+ params.push(filter.layer);
79
+ }
80
+ if (filter?.createdAfter) {
81
+ conditions.push("created_at >= ?");
82
+ params.push(filter.createdAfter);
83
+ }
84
+ if (filter?.createdBefore) {
85
+ conditions.push("created_at <= ?");
86
+ params.push(filter.createdBefore);
87
+ }
88
+ if (filter?.memoryIds && filter.memoryIds.length > 0) {
89
+ const placeholders = filter.memoryIds.map(() => "?").join(",");
90
+ conditions.push(`id IN (${placeholders})`);
91
+ params.push(...filter.memoryIds.map((id) => Number(id)));
92
+ }
93
+ if (filter?.tags && filter.tags.length > 0) {
94
+ // AND semantics: each tag must be present in tags_json
95
+ for (const tag of filter.tags) {
96
+ conditions.push(`tags_json LIKE ?`);
97
+ params.push(`%${tag}%`);
98
+ }
99
+ }
100
+ const where = conditions.join(" AND ");
101
+ let rows;
102
+ if (request.query && request.query.trim() !== "") {
103
+ // FTS search
104
+ const entries = this.memoryManager.search(request.query.trim(), filter?.layer);
105
+ const searched = entries
106
+ .filter((e) => {
107
+ const id = e.id;
108
+ if (!id)
109
+ return false;
110
+ const row = this.db
111
+ .prepare(`SELECT * FROM memory_entries WHERE id = ? AND ${where}`)
112
+ .get(id, ...params);
113
+ return !!row;
114
+ })
115
+ .slice(0, limit);
116
+ rows = searched
117
+ .map((e) => {
118
+ if (!e.id)
119
+ return null;
120
+ return this.db
121
+ .prepare("SELECT * FROM memory_entries WHERE id = ?")
122
+ .get(e.id);
123
+ })
124
+ .filter((r) => r !== null);
125
+ }
126
+ else {
127
+ // Count for totalCount / hasMore
128
+ const countRow = this.db
129
+ .prepare(`SELECT COUNT(*) as cnt FROM memory_entries WHERE ${where}`)
130
+ .get(...params);
131
+ rows = this.db
132
+ .prepare(`SELECT * FROM memory_entries WHERE ${where}
133
+ ORDER BY COALESCE(last_accessed_at, created_at) DESC
134
+ LIMIT ?`)
135
+ .all(...params, limit);
136
+ const totalCount = countRow.cnt;
137
+ const memories = rows.map(rowToRecalled);
138
+ // Increment access_count
139
+ if (rows.length > 0) {
140
+ const now = new Date().toISOString();
141
+ const ids = rows.map((r) => r.id);
142
+ const ph = ids.map(() => "?").join(",");
143
+ this.db
144
+ .prepare(`UPDATE memory_entries SET access_count = access_count + 1, last_accessed_at = ? WHERE id IN (${ph})`)
145
+ .run(now, ...ids);
146
+ }
147
+ return {
148
+ memories,
149
+ totalCount,
150
+ hasMore: totalCount > limit,
151
+ };
152
+ }
153
+ // query-based path: count separately
154
+ const countRow = this.db
155
+ .prepare(`SELECT COUNT(*) as cnt FROM memory_entries WHERE ${where}`)
156
+ .get(...params);
157
+ const memories = rows.map(rowToRecalled);
158
+ if (rows.length > 0) {
159
+ const now = new Date().toISOString();
160
+ const ids = rows.map((r) => r.id);
161
+ const ph = ids.map(() => "?").join(",");
162
+ this.db
163
+ .prepare(`UPDATE memory_entries SET access_count = access_count + 1, last_accessed_at = ? WHERE id IN (${ph})`)
164
+ .run(now, ...ids);
165
+ }
166
+ return {
167
+ memories,
168
+ totalCount: countRow.cnt,
169
+ hasMore: countRow.cnt > limit,
170
+ };
171
+ }
172
+ async update(request) {
173
+ if (request.content !== undefined && request.content.trim() === "") {
174
+ throw invalidContent();
175
+ }
176
+ const numId = Number(request.id);
177
+ const existing = this.db
178
+ .prepare("SELECT * FROM memory_entries WHERE id = ? AND deleted = 0")
179
+ .get(numId);
180
+ if (!existing)
181
+ throw memoryNotFound(request.id);
182
+ const createVersion = request.createVersion ?? true;
183
+ const now = new Date().toISOString();
184
+ if (!createVersion) {
185
+ // In-place update
186
+ this.memoryManager.update(numId, {
187
+ content: request.content,
188
+ summary: request.summary,
189
+ metadata: request.metadata,
190
+ });
191
+ if (request.tags !== undefined) {
192
+ this.db
193
+ .prepare("UPDATE memory_entries SET tags_json = ? WHERE id = ?")
194
+ .run(JSON.stringify(request.tags), numId);
195
+ }
196
+ return {
197
+ id: request.id,
198
+ version: existing.version ?? 1,
199
+ updatedAt: now,
200
+ };
201
+ }
202
+ // Versioned update: atomic deprecate old + create new
203
+ const oldVersion = existing.version ?? 1;
204
+ const transaction = this.db.transaction(() => {
205
+ // Deprecate old entry
206
+ this.db
207
+ .prepare("UPDATE memory_entries SET deleted = 1, deleted_at = ?, delete_reason = ? WHERE id = ?")
208
+ .run(now, "superseded by new version", numId);
209
+ // Build new entry values
210
+ const newContent = request.content ?? existing.content;
211
+ const newSummary = request.summary ?? existing.summary;
212
+ const newMetadata = request.metadata
213
+ ? JSON.stringify({
214
+ ...(existing.metadata_json
215
+ ? JSON.parse(existing.metadata_json)
216
+ : {}),
217
+ ...request.metadata,
218
+ })
219
+ : existing.metadata_json;
220
+ const newTags = request.tags !== undefined ? JSON.stringify(request.tags) : existing.tags_json;
221
+ const result = this.db
222
+ .prepare(`INSERT INTO memory_entries
223
+ (layer, content, summary, access_count, created_at, metadata_json, tags_json, version, supersedes_memory_id)
224
+ VALUES (?, ?, ?, 0, ?, ?, ?, ?, ?)`)
225
+ .run(existing.layer, newContent, newSummary, now, newMetadata, newTags, oldVersion + 1, numId);
226
+ return Number(result.lastInsertRowid);
227
+ });
228
+ const newId = transaction();
229
+ return {
230
+ id: String(newId),
231
+ version: oldVersion + 1,
232
+ previousVersion: oldVersion,
233
+ updatedAt: now,
234
+ };
235
+ }
236
+ async forget(request) {
237
+ const numId = Number(request.id);
238
+ const existing = this.db.prepare("SELECT id FROM memory_entries WHERE id = ?").get(numId);
239
+ if (!existing)
240
+ throw memoryNotFound(request.id);
241
+ const hard = request.hard ?? false;
242
+ if (hard) {
243
+ this.memoryManager.remove(numId);
244
+ }
245
+ else {
246
+ const now = new Date().toISOString();
247
+ this.db
248
+ .prepare("UPDATE memory_entries SET deleted = 1, deleted_at = ?, delete_reason = ? WHERE id = ?")
249
+ .run(now, request.reason ?? null, numId);
250
+ }
251
+ return {
252
+ id: request.id,
253
+ forgotten: true,
254
+ method: hard ? "hard" : "soft",
255
+ };
256
+ }
257
+ }
258
+ //# sourceMappingURL=memory-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-adapter.js","sourceRoot":"","sources":["../src/memory-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { MemoryProvider } from "@knowledgine/mcp-memory-protocol";
3
+ export declare function registerMemoryTools(server: McpServer, provider: MemoryProvider): void;
4
+ //# sourceMappingURL=memory-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../src/memory-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAWvE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAuKrF"}
@@ -0,0 +1,159 @@
1
+ import { z } from "zod";
2
+ import { MemoryProtocolError } from "@knowledgine/mcp-memory-protocol";
3
+ import { formatToolResult, formatToolError } from "./helpers.js";
4
+ function handleMemoryError(error) {
5
+ if (error instanceof MemoryProtocolError) {
6
+ return formatToolError(error.message);
7
+ }
8
+ return formatToolError(error instanceof Error ? error.message : String(error));
9
+ }
10
+ export function registerMemoryTools(server, provider) {
11
+ // store_memory
12
+ server.registerTool("store_memory", {
13
+ description: "Store a new memory entry. Supports episodic (short-term), semantic (mid-term), and procedural (long-term) layers.",
14
+ inputSchema: {
15
+ content: z.string().describe("Memory content to store (required, non-empty)"),
16
+ layer: z
17
+ .string()
18
+ .optional()
19
+ .describe("Memory layer: episodic (default), semantic, or procedural"),
20
+ tags: z.array(z.string()).optional().describe("Classification tags"),
21
+ metadata: z
22
+ .object({
23
+ source: z.string().nullable().optional(),
24
+ project: z.string().nullable().optional(),
25
+ sessionId: z.string().nullable().optional(),
26
+ confidence: z.number().min(0).max(1).nullable().optional(),
27
+ })
28
+ .passthrough()
29
+ .optional()
30
+ .describe("Optional metadata"),
31
+ ttl: z.number().int().positive().optional().describe("Time-to-live in seconds (optional)"),
32
+ },
33
+ }, async (input) => {
34
+ try {
35
+ const result = await provider.store({
36
+ content: input.content,
37
+ layer: input.layer,
38
+ tags: input.tags,
39
+ metadata: input.metadata,
40
+ ttl: input.ttl,
41
+ });
42
+ return formatToolResult(result);
43
+ }
44
+ catch (error) {
45
+ return handleMemoryError(error);
46
+ }
47
+ });
48
+ // recall_memory
49
+ server.registerTool("recall_memory", {
50
+ description: "Retrieve memory entries. Optionally filter by layer, tags, date range, or specific IDs. Omit query for recent entries.",
51
+ inputSchema: {
52
+ query: z.string().optional().describe("Full-text search query (omit for recent entries)"),
53
+ filter: z
54
+ .object({
55
+ layer: z
56
+ .enum(["episodic", "semantic", "procedural"])
57
+ .optional()
58
+ .describe("Filter by layer"),
59
+ tags: z.array(z.string()).optional().describe("Filter by tags (AND)"),
60
+ createdAfter: z.string().optional().describe("ISO 8601 lower bound for createdAt"),
61
+ createdBefore: z.string().optional().describe("ISO 8601 upper bound for createdAt"),
62
+ memoryIds: z.array(z.string()).optional().describe("Explicit memory IDs to retrieve"),
63
+ })
64
+ .optional()
65
+ .describe("Filter conditions"),
66
+ limit: z
67
+ .number()
68
+ .int()
69
+ .min(1)
70
+ .max(100)
71
+ .optional()
72
+ .describe("Max results (default: 10, max: 100)"),
73
+ includeVersionHistory: z
74
+ .boolean()
75
+ .optional()
76
+ .describe("Include deprecated/versioned entries (default: false)"),
77
+ asOf: z
78
+ .string()
79
+ .optional()
80
+ .describe("Point-in-time query (ISO 8601). Requires temporal_query capability."),
81
+ },
82
+ }, async (input) => {
83
+ try {
84
+ const result = await provider.recall({
85
+ query: input.query,
86
+ filter: input.filter,
87
+ limit: input.limit,
88
+ includeVersionHistory: input.includeVersionHistory,
89
+ asOf: input.asOf,
90
+ });
91
+ return formatToolResult(result);
92
+ }
93
+ catch (error) {
94
+ return handleMemoryError(error);
95
+ }
96
+ });
97
+ // update_memory
98
+ server.registerTool("update_memory", {
99
+ description: "Update an existing memory entry. By default creates a new version (immutable history). Set createVersion=false for in-place update.",
100
+ inputSchema: {
101
+ id: z.string().min(1).describe("Memory entry ID"),
102
+ content: z.string().optional().describe("New content"),
103
+ summary: z.string().optional().describe("New summary"),
104
+ tags: z.array(z.string()).optional().describe("Replace tags"),
105
+ metadata: z
106
+ .object({
107
+ source: z.string().nullable().optional(),
108
+ project: z.string().nullable().optional(),
109
+ sessionId: z.string().nullable().optional(),
110
+ confidence: z.number().min(0).max(1).nullable().optional(),
111
+ })
112
+ .passthrough()
113
+ .partial()
114
+ .optional()
115
+ .describe("Metadata to merge"),
116
+ createVersion: z.boolean().optional().describe("Create new version (default: true)"),
117
+ },
118
+ }, async (input) => {
119
+ try {
120
+ const result = await provider.update({
121
+ id: input.id,
122
+ content: input.content,
123
+ summary: input.summary,
124
+ tags: input.tags,
125
+ metadata: input.metadata,
126
+ createVersion: input.createVersion,
127
+ });
128
+ return formatToolResult(result);
129
+ }
130
+ catch (error) {
131
+ return handleMemoryError(error);
132
+ }
133
+ });
134
+ // forget_memory
135
+ server.registerTool("forget_memory", {
136
+ description: "Delete a memory entry. Soft delete (default) marks as deprecated and keeps data recoverable. Hard delete physically removes it.",
137
+ inputSchema: {
138
+ id: z.string().min(1).describe("Memory entry ID"),
139
+ reason: z.string().optional().describe("Deletion reason (for audit log)"),
140
+ hard: z
141
+ .boolean()
142
+ .optional()
143
+ .describe("Physical delete if true (default: false = soft delete)"),
144
+ },
145
+ }, async (input) => {
146
+ try {
147
+ const result = await provider.forget({
148
+ id: input.id,
149
+ reason: input.reason,
150
+ hard: input.hard,
151
+ });
152
+ return formatToolResult(result);
153
+ }
154
+ catch (error) {
155
+ return handleMemoryError(error);
156
+ }
157
+ });
158
+ }
159
+ //# sourceMappingURL=memory-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../src/memory-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Hono } from "hono";
2
+ import type { KnowledgeService } from "@knowledgine/core";
3
+ export declare function createRestApp(service: KnowledgeService, version: string): Hono;
4
+ //# sourceMappingURL=rest-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-server.d.ts","sourceRoot":"","sources":["../src/rest-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA0D9E"}
@@ -0,0 +1,58 @@
1
+ import { Hono } from "hono";
2
+ import { cors } from "hono/cors";
3
+ export function createRestApp(service, version) {
4
+ const app = new Hono();
5
+ // CORS: localhostのみ許可
6
+ app.use("*", cors());
7
+ // GET /health
8
+ app.get("/health", (c) => {
9
+ const stats = service.getStats(); // sync
10
+ return c.json({ ok: true, version, notes: stats.totalNotes });
11
+ });
12
+ // GET /search?q=...&mode=keyword&limit=20
13
+ app.get("/search", async (c) => {
14
+ const q = c.req.query("q");
15
+ if (!q)
16
+ return c.json({ error: "q parameter is required" }, 400);
17
+ const mode = c.req.query("mode") ?? "keyword";
18
+ const limit = parseInt(c.req.query("limit") ?? "20", 10);
19
+ if (isNaN(limit) || limit < 1)
20
+ return c.json({ error: "Invalid limit" }, 400);
21
+ const start = Date.now();
22
+ const result = await service.search({
23
+ query: q,
24
+ limit,
25
+ mode: mode,
26
+ }); // async
27
+ return c.json({ ...result, took_ms: Date.now() - start });
28
+ });
29
+ // GET /stats
30
+ app.get("/stats", (c) => {
31
+ return c.json(service.getStats()); // sync
32
+ });
33
+ // GET /entities?q=...&limit=20
34
+ app.get("/entities", (c) => {
35
+ const q = c.req.query("q") ?? "";
36
+ const limit = parseInt(c.req.query("limit") ?? "20", 10);
37
+ return c.json(service.searchEntities({ query: q, limit })); // sync
38
+ });
39
+ // GET /entities/:name/graph
40
+ app.get("/entities/:name/graph", (c) => {
41
+ const name = decodeURIComponent(c.req.param("name"));
42
+ const result = service.getEntityGraph({ entityName: name }); // sync
43
+ if (!result)
44
+ return c.json({ error: "Entity not found" }, 404);
45
+ return c.json(result);
46
+ });
47
+ // GET /related/:noteId?limit=5
48
+ app.get("/related/:noteId", async (c) => {
49
+ const noteId = parseInt(c.req.param("noteId"), 10);
50
+ if (isNaN(noteId))
51
+ return c.json({ error: "Invalid noteId" }, 400);
52
+ const limit = parseInt(c.req.query("limit") ?? "5", 10);
53
+ const result = await service.findRelated({ noteId, limit }); // async
54
+ return c.json(result);
55
+ });
56
+ return app;
57
+ }
58
+ //# sourceMappingURL=rest-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-server.js","sourceRoot":"","sources":["../src/rest-server.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { GraphRepository, MemoryManager } from "@knowledgine/core";
2
3
  import type { KnowledgeRepository, EmbeddingProvider } from "@knowledgine/core";
3
- import type { GraphRepository, FeedbackRepository } from "@knowledgine/core";
4
+ import type { FeedbackRepository } from "@knowledgine/core";
4
5
  import type Database from "better-sqlite3";
5
6
  export interface McpServerOptions {
6
7
  repository: KnowledgeRepository;
@@ -9,6 +10,7 @@ export interface McpServerOptions {
9
10
  graphRepository?: GraphRepository;
10
11
  feedbackRepository?: FeedbackRepository;
11
12
  db?: Database.Database;
13
+ memoryManager?: MemoryManager;
12
14
  }
13
15
  export declare function createKnowledgineMcpServer(options: McpServerOptions): McpServer;
14
16
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACxB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAgP/E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAIL,eAAe,EACf,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAsQ/E"}
package/dist/server.js CHANGED
@@ -1,13 +1,15 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { z } from "zod";
3
- import { KnowledgeService, VERSION } from "@knowledgine/core";
3
+ import { KnowledgeService, VERSION, IncrementalExtractor, GraphRepository, MemoryManager, } from "@knowledgine/core";
4
4
  import { formatToolResult, formatToolError } from "./helpers.js";
5
+ import { KnowledgineMemoryProvider } from "./memory-adapter.js";
6
+ import { registerMemoryTools } from "./memory-tools.js";
5
7
  export function createKnowledgineMcpServer(options) {
6
8
  const server = new McpServer({ name: "knowledgine", version: VERSION });
7
9
  const service = new KnowledgeService(options);
8
10
  // Tool 1: search_knowledge
9
11
  server.registerTool("search_knowledge", {
10
- description: "Full-text and semantic search across notes in the knowledge base. Use mode='keyword' for exact matches, 'semantic' for conceptual similarity, or 'hybrid' to combine both.",
12
+ description: "Full-text and semantic search across notes in the knowledge base. Use mode='keyword' for exact matches, 'semantic' for conceptual similarity, or 'hybrid' to combine both. Set agentic=true (or includeDeprecated=true) to include deprecated notes.",
11
13
  inputSchema: {
12
14
  query: z.string().describe("Search query"),
13
15
  limit: z.number().int().positive().optional().describe("Maximum number of results"),
@@ -15,6 +17,14 @@ export function createKnowledgineMcpServer(options) {
15
17
  .enum(["keyword", "semantic", "hybrid"])
16
18
  .optional()
17
19
  .describe("Search mode (default: keyword)"),
20
+ agentic: z
21
+ .boolean()
22
+ .optional()
23
+ .describe("Include deprecated notes (agentic mode, default: false)"),
24
+ includeDeprecated: z
25
+ .boolean()
26
+ .optional()
27
+ .describe("Include deprecated notes (default: false)"),
18
28
  },
19
29
  }, async (input) => {
20
30
  try {
@@ -22,6 +32,8 @@ export function createKnowledgineMcpServer(options) {
22
32
  query: input.query,
23
33
  limit: input.limit ?? 20,
24
34
  mode: input.mode ?? "keyword",
35
+ agentic: input.agentic,
36
+ includeDeprecated: input.includeDeprecated,
25
37
  });
26
38
  const warningMsg = result.results
27
39
  ?.find((r) => r.matchReason?.some((m) => m.startsWith("Warning:")))
@@ -194,6 +206,10 @@ export function createKnowledgineMcpServer(options) {
194
206
  },
195
207
  };
196
208
  const result = writer.writeEvent(event);
209
+ // 増分抽出(capture したノートのみ対象)
210
+ const graphRepo = options.graphRepository ?? new GraphRepository(options.db);
211
+ const extractor = new IncrementalExtractor(options.repository, graphRepo);
212
+ await extractor.process([result.noteId]);
197
213
  return formatToolResult({
198
214
  id: result.id,
199
215
  title,
@@ -205,6 +221,11 @@ export function createKnowledgineMcpServer(options) {
205
221
  return formatToolError(error instanceof Error ? error.message : String(error));
206
222
  }
207
223
  });
224
+ // Memory tools (optional: requires memoryManager + db)
225
+ if (options.memoryManager && options.db) {
226
+ const memoryProvider = new KnowledgineMemoryProvider(options.memoryManager, options.db);
227
+ registerMemoryTools(server, memoryProvider);
228
+ }
208
229
  return server;
209
230
  }
210
231
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowledgine/mcp-server",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -14,10 +14,13 @@
14
14
  "knowledgine-mcp": "./dist/index.js"
15
15
  },
16
16
  "dependencies": {
17
+ "@hono/node-server": "^1.19.11",
17
18
  "@modelcontextprotocol/sdk": "^1.27.1",
19
+ "hono": "^4.12.9",
18
20
  "zod": "^4.3.6",
19
- "@knowledgine/ingest": "0.2.1",
20
- "@knowledgine/core": "0.2.1"
21
+ "@knowledgine/core": "0.4.0",
22
+ "@knowledgine/ingest": "0.4.0",
23
+ "@knowledgine/mcp-memory-protocol": "0.3.0"
21
24
  },
22
25
  "files": [
23
26
  "dist"