@coreidentitylabs/open-graph-memory-mcp 1.0.1

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.
Files changed (91) hide show
  1. package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
  2. package/.agents/skills/mcp-builder/SKILL.md +236 -0
  3. package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
  4. package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  5. package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  6. package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  7. package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
  8. package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
  9. package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  10. package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
  11. package/.env.example +26 -0
  12. package/Implementation Plan.md +358 -0
  13. package/README.md +187 -0
  14. package/dist/constants.d.ts +34 -0
  15. package/dist/constants.d.ts.map +1 -0
  16. package/dist/constants.js +40 -0
  17. package/dist/constants.js.map +1 -0
  18. package/dist/encoding/embedder.d.ts +12 -0
  19. package/dist/encoding/embedder.d.ts.map +1 -0
  20. package/dist/encoding/embedder.js +85 -0
  21. package/dist/encoding/embedder.js.map +1 -0
  22. package/dist/encoding/pipeline.d.ts +28 -0
  23. package/dist/encoding/pipeline.d.ts.map +1 -0
  24. package/dist/encoding/pipeline.js +146 -0
  25. package/dist/encoding/pipeline.js.map +1 -0
  26. package/dist/evolution/consolidator.d.ts +12 -0
  27. package/dist/evolution/consolidator.d.ts.map +1 -0
  28. package/dist/evolution/consolidator.js +212 -0
  29. package/dist/evolution/consolidator.js.map +1 -0
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +53 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/llm/openai-provider.d.ts +23 -0
  35. package/dist/llm/openai-provider.d.ts.map +1 -0
  36. package/dist/llm/openai-provider.js +141 -0
  37. package/dist/llm/openai-provider.js.map +1 -0
  38. package/dist/llm/prompts.d.ts +10 -0
  39. package/dist/llm/prompts.d.ts.map +1 -0
  40. package/dist/llm/prompts.js +63 -0
  41. package/dist/llm/prompts.js.map +1 -0
  42. package/dist/llm/provider.d.ts +7 -0
  43. package/dist/llm/provider.d.ts.map +1 -0
  44. package/dist/llm/provider.js +25 -0
  45. package/dist/llm/provider.js.map +1 -0
  46. package/dist/resources/context-resource.d.ts +8 -0
  47. package/dist/resources/context-resource.d.ts.map +1 -0
  48. package/dist/resources/context-resource.js +51 -0
  49. package/dist/resources/context-resource.js.map +1 -0
  50. package/dist/retrieval/search.d.ts +24 -0
  51. package/dist/retrieval/search.d.ts.map +1 -0
  52. package/dist/retrieval/search.js +143 -0
  53. package/dist/retrieval/search.js.map +1 -0
  54. package/dist/storage/factory.d.ts +10 -0
  55. package/dist/storage/factory.d.ts.map +1 -0
  56. package/dist/storage/factory.js +35 -0
  57. package/dist/storage/factory.js.map +1 -0
  58. package/dist/storage/json-store.d.ts +34 -0
  59. package/dist/storage/json-store.d.ts.map +1 -0
  60. package/dist/storage/json-store.js +248 -0
  61. package/dist/storage/json-store.js.map +1 -0
  62. package/dist/storage/neo4j-store.d.ts +31 -0
  63. package/dist/storage/neo4j-store.d.ts.map +1 -0
  64. package/dist/storage/neo4j-store.js +440 -0
  65. package/dist/storage/neo4j-store.js.map +1 -0
  66. package/dist/tools/memory-tools.d.ts +4 -0
  67. package/dist/tools/memory-tools.d.ts.map +1 -0
  68. package/dist/tools/memory-tools.js +873 -0
  69. package/dist/tools/memory-tools.js.map +1 -0
  70. package/dist/types.d.ts +129 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/types.js +5 -0
  73. package/dist/types.js.map +1 -0
  74. package/implementation_plan.md.resolved.md +322 -0
  75. package/package.json +43 -0
  76. package/src/constants.ts +52 -0
  77. package/src/encoding/embedder.ts +93 -0
  78. package/src/encoding/pipeline.ts +197 -0
  79. package/src/evolution/consolidator.ts +281 -0
  80. package/src/index.ts +67 -0
  81. package/src/llm/openai-provider.ts +208 -0
  82. package/src/llm/prompts.ts +66 -0
  83. package/src/llm/provider.ts +37 -0
  84. package/src/resources/context-resource.ts +74 -0
  85. package/src/retrieval/search.ts +203 -0
  86. package/src/storage/factory.ts +48 -0
  87. package/src/storage/json-store.ts +325 -0
  88. package/src/storage/neo4j-store.ts +564 -0
  89. package/src/tools/memory-tools.ts +1067 -0
  90. package/src/types.ts +207 -0
  91. package/tsconfig.json +21 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../../src/tools/memory-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Node types in the memory graph.
3
+ * - entity: People, tools, libraries, services
4
+ * - concept: Abstract ideas, patterns, paradigms
5
+ * - event: Something that happened (meeting, deployment, decision)
6
+ * - code_pattern: Recurring code structures, architectures
7
+ * - decision: Technical decisions and their rationale
8
+ * - conversation: Raw conversation history snapshot
9
+ */
10
+ export type NodeType = "entity" | "concept" | "event" | "code_pattern" | "decision" | "conversation";
11
+ export interface MemoryNode {
12
+ id: string;
13
+ name: string;
14
+ type: NodeType;
15
+ description: string;
16
+ embedding?: number[];
17
+ metadata: Record<string, unknown>;
18
+ createdAt: string;
19
+ updatedAt: string;
20
+ /** Bi-temporal: when the fact became true in the real world */
21
+ validFrom?: string;
22
+ /** Bi-temporal: when the fact ceased to be true */
23
+ validUntil?: string;
24
+ /** Origin of this memory */
25
+ source?: string;
26
+ /** Number of times this node was retrieved */
27
+ accessCount: number;
28
+ /** Last time this node was accessed */
29
+ lastAccessedAt?: string;
30
+ }
31
+ export interface MemoryEdge {
32
+ id: string;
33
+ /** Source node ID */
34
+ source: string;
35
+ /** Target node ID */
36
+ target: string;
37
+ /** Relationship type, e.g. "uses", "depends_on", "decided_to" */
38
+ relation: string;
39
+ /** Natural language description of the relationship */
40
+ description: string;
41
+ /** Confidence/strength weight (0-1) */
42
+ weight: number;
43
+ metadata: Record<string, unknown>;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ }
47
+ export interface ScoredNode {
48
+ node: MemoryNode;
49
+ score: number;
50
+ matchType: "semantic" | "text" | "graph";
51
+ }
52
+ export interface Subgraph {
53
+ nodes: MemoryNode[];
54
+ edges: MemoryEdge[];
55
+ }
56
+ export interface SearchResult {
57
+ nodes: ScoredNode[];
58
+ relatedEdges: MemoryEdge[];
59
+ totalNodes: number;
60
+ }
61
+ export interface NodeFilter {
62
+ type?: NodeType;
63
+ source?: string;
64
+ createdAfter?: string;
65
+ createdBefore?: string;
66
+ nameContains?: string;
67
+ }
68
+ export interface GraphStats {
69
+ totalNodes: number;
70
+ totalEdges: number;
71
+ nodesByType: Record<string, number>;
72
+ storageBackend: string;
73
+ lastConsolidated?: string;
74
+ memoryFilePath?: string;
75
+ }
76
+ export interface StorageBackend {
77
+ initialize(): Promise<void>;
78
+ addNode(node: MemoryNode): Promise<void>;
79
+ updateNode(id: string, updates: Partial<MemoryNode>): Promise<MemoryNode | null>;
80
+ deleteNode(id: string): Promise<boolean>;
81
+ getNode(id: string): Promise<MemoryNode | null>;
82
+ getNodeByName(name: string): Promise<MemoryNode | null>;
83
+ findNodes(filter: NodeFilter): Promise<MemoryNode[]>;
84
+ getAllNodes(limit: number, offset: number): Promise<{
85
+ nodes: MemoryNode[];
86
+ total: number;
87
+ }>;
88
+ findNodesByEmbedding(embedding: number[], topK: number): Promise<ScoredNode[]>;
89
+ addEdge(edge: MemoryEdge): Promise<void>;
90
+ updateEdge(id: string, updates: Partial<MemoryEdge>): Promise<MemoryEdge | null>;
91
+ deleteEdge(id: string): Promise<boolean>;
92
+ getEdge(id: string): Promise<MemoryEdge | null>;
93
+ getEdgesForNode(nodeId: string, direction?: "in" | "out" | "both"): Promise<MemoryEdge[]>;
94
+ getEdgesBetween(sourceId: string, targetId: string): Promise<MemoryEdge[]>;
95
+ getNeighborhood(nodeId: string, depth: number): Promise<Subgraph>;
96
+ getStats(): Promise<GraphStats>;
97
+ close(): Promise<void>;
98
+ }
99
+ export interface ExtractedEntity {
100
+ name: string;
101
+ type: NodeType;
102
+ description: string;
103
+ metadata?: Record<string, unknown>;
104
+ }
105
+ export interface ExtractedRelation {
106
+ source: string;
107
+ target: string;
108
+ relation: string;
109
+ description?: string;
110
+ weight?: number;
111
+ }
112
+ export interface ExtractionResult {
113
+ entities: ExtractedEntity[];
114
+ relations: ExtractedRelation[];
115
+ }
116
+ export interface LLMProvider {
117
+ extractEntitiesAndRelations(text: string, existingEntities: string[]): Promise<ExtractionResult>;
118
+ generateEmbedding(text: string): Promise<number[]>;
119
+ generateEmbeddingBatch(texts: string[]): Promise<number[][]>;
120
+ }
121
+ export interface ConsolidationResult {
122
+ mergedNodes: number;
123
+ resolvedConflicts: number;
124
+ inferredEdges: number;
125
+ prunedNodes: number;
126
+ duration: number;
127
+ }
128
+ export type ConsolidationStrategy = "full" | "merge_only" | "prune_only" | "infer_only";
129
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,cAAc,GACd,UAAU,GACV,cAAc,CAAC;AAMnB,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5B,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,UAAU,CACR,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAChD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACxD,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACrD,WAAW,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,oBAAoB,CAClB,SAAS,EAAE,MAAM,EAAE,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAGzB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,UAAU,CACR,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAChD,eAAe,CACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,GAChC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAG3E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAGlE,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAMD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAMD,MAAM,WAAW,WAAW;IAC1B,2BAA2B,CACzB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC9D;AAMD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,YAAY,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ // =============================================================================
2
+ // Open-Memory MCP Server — Core Type Definitions
3
+ // =============================================================================
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,iDAAiD;AACjD,gFAAgF"}
@@ -0,0 +1,322 @@
1
+ # Open-Memory MCP Server — Implementation Plan
2
+
3
+ A graph-based agent memory MCP server that **extends AI coding assistant memory** for developers using Google Antigravity or VS Code GitHub Copilot.
4
+
5
+ ## Problem
6
+
7
+ 1. **Context window loss** — AI coding assistants lose context as conversations grow; developers re-explain the same code changes repeatedly
8
+ 2. **Rapid code evolution** — frequent features/bug fixes make documentation outdated quickly
9
+ 3. **No persistent memory** — conversations are ephemeral; decisions, patterns, and context are lost between sessions
10
+
11
+ ## Solution
12
+
13
+ An MCP server that stores entities/relationships in a knowledge graph and provides relevant historical context back to the agent — giving AI assistants persistent project memory across sessions.
14
+
15
+ ---
16
+
17
+ ## Core Architecture Principle
18
+
19
+ > [!IMPORTANT]
20
+ > **Agent-Driven Design**: The AI agent in the chat window (Antigravity/Copilot) **IS the LLM**. It drives entity extraction, retrieval, and evolution directly through MCP tool calls. No separate LLM API key is required.
21
+ >
22
+ > The tools accept **structured data** (entities, relations) from the agent. The agent extracts entities from conversations using its own intelligence and passes them to the MCP for storage.
23
+ >
24
+ > An **optional** internal LLM provider exists for users who want server-side encoding (e.g., batch processing old conversations), but is not required for normal operation.
25
+
26
+ ```mermaid
27
+ graph TB
28
+ subgraph IDE["Chat Window"]
29
+ Agent["AI Agent - The LLM"]
30
+ end
31
+
32
+ subgraph MCP["open-memory-mcp-server"]
33
+ Tools["MCP Tools"]
34
+ Resources["MCP Resources"]
35
+ Store["Graph Store"]
36
+ Evolve["Evolution Engine"]
37
+ end
38
+
39
+ subgraph Backend["Storage"]
40
+ JSON["Local JSON"]
41
+ Neo4j["Neo4j"]
42
+ end
43
+
44
+ Agent -->|extract entities| Agent
45
+ Agent -->|save via stdio| Tools
46
+ Tools --> Store
47
+ Store --> JSON
48
+ Store --> Neo4j
49
+ Evolve --> Store
50
+ Resources -->|auto context| Agent
51
+ ```
52
+
53
+ ---
54
+
55
+ ## Tool Design: Agent-Driven API
56
+
57
+ ### Write Tools (agent passes structured data)
58
+
59
+ | Tool | Input | What It Does |
60
+ | -------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------- |
61
+ | `memory_add_entities` | `{ entities: [{ name, type, description, metadata? }] }` | Agent extracts entities and sends them; server stores + embeds |
62
+ | `memory_add_relations` | `{ relations: [{ source, target, relation, description? }] }` | Agent identifies relationships; server stores edges |
63
+ | `memory_save_conversation` | `{ messages: [{ role, content }], context?: string }` | Stores raw conversation as an event node for history |
64
+
65
+ ### Read Tools (agent retrieves context)
66
+
67
+ | Tool | Input | What It Does |
68
+ | ---------------------- | ------------------------------------- | --------------------------------------------------------------- |
69
+ | `memory_search` | `{ query, topK?, type?, timeRange? }` | Hybrid text + graph search; returns relevant entities + context |
70
+ | `memory_get_entity` | `{ name or id }` | Full entity details with all relationships |
71
+ | `memory_list_entities` | `{ type?, limit?, offset? }` | Paginated entity listing |
72
+ | `memory_get_relations` | `{ entity, relation?, direction? }` | Relationships for an entity |
73
+ | `memory_get_context` | `{ topic, maxTokens? }` | Retrieve summarized context ready for prompt injection |
74
+
75
+ ### Management Tools
76
+
77
+ | Tool | Input | What It Does |
78
+ | ---------------------- | ---------------- | ----------------------------------------------------- |
79
+ | `memory_delete_entity` | `{ id or name }` | Remove entity + edges |
80
+ | `memory_consolidate` | `{ strategy? }` | Merge duplicates, prune stale nodes, infer edges |
81
+ | `memory_status` | — | Node/edge counts, storage backend, last consolidation |
82
+
83
+ ### Optional: Server-Side Encoding (if LLM configured)
84
+
85
+ | Tool | Input | What It Does |
86
+ | -------------------- | ---------- | -------------------------------------------------------------------------- |
87
+ | `memory_encode_text` | `{ text }` | Server uses internal LLM to extract entities + store (requires LLM config) |
88
+
89
+ ---
90
+
91
+ ## Proposed Changes
92
+
93
+ ### 1. Project Scaffolding
94
+
95
+ #### [NEW] [package.json](file:///d:/Projects/open-memory/package.json)
96
+
97
+ - `@modelcontextprotocol/sdk`, `zod`, `neo4j-driver`, `uuid`, `dotenv`
98
+ - Optional: `openai` (only needed if internal LLM enabled)
99
+
100
+ #### [NEW] [tsconfig.json](file:///d:/Projects/open-memory/tsconfig.json)
101
+
102
+ #### [NEW] [.env.example](file:///d:/Projects/open-memory/.env.example)
103
+
104
+ #### [NEW] [README.md](file:///d:/Projects/open-memory/README.md)
105
+
106
+ ---
107
+
108
+ ### 2. Core Types
109
+
110
+ #### [NEW] [src/types.ts](file:///d:/Projects/open-memory/src/types.ts)
111
+
112
+ ```typescript
113
+ interface MemoryNode {
114
+ id: string;
115
+ name: string;
116
+ type:
117
+ | "entity"
118
+ | "concept"
119
+ | "event"
120
+ | "code_pattern"
121
+ | "decision"
122
+ | "conversation";
123
+ description: string;
124
+ embedding?: number[]; // generated server-side from description
125
+ metadata: Record<string, unknown>;
126
+ createdAt: string;
127
+ updatedAt: string;
128
+ validFrom?: string; // bi-temporal
129
+ validUntil?: string;
130
+ source?: string;
131
+ accessCount: number;
132
+ lastAccessedAt?: string;
133
+ }
134
+
135
+ interface MemoryEdge {
136
+ id: string;
137
+ source: string;
138
+ target: string;
139
+ relation: string;
140
+ description: string;
141
+ weight: number;
142
+ metadata: Record<string, unknown>;
143
+ createdAt: string;
144
+ updatedAt: string;
145
+ }
146
+
147
+ interface StorageBackend {
148
+ initialize(): Promise<void>;
149
+ // ... CRUD + search + traversal ops
150
+ close(): Promise<void>;
151
+ }
152
+
153
+ // Optional — only used if LLM_API_KEY is configured
154
+ interface LLMProvider {
155
+ extractEntitiesAndRelations(
156
+ text: string,
157
+ existing: string[],
158
+ ): Promise<ExtractionResult>;
159
+ generateEmbedding(text: string): Promise<number[]>;
160
+ }
161
+ ```
162
+
163
+ ---
164
+
165
+ ### 3. Storage Backends
166
+
167
+ #### [NEW] [src/storage/json-store.ts](file:///d:/Projects/open-memory/src/storage/json-store.ts)
168
+
169
+ Local JSON file backend — zero config, atomic writes, in-memory cosine similarity search.
170
+
171
+ #### [NEW] [src/storage/neo4j-store.ts](file:///d:/Projects/open-memory/src/storage/neo4j-store.ts)
172
+
173
+ Neo4j backend — Cypher queries, vector index, multi-hop traversal, auto-schema creation.
174
+
175
+ #### [NEW] [src/storage/factory.ts](file:///d:/Projects/open-memory/src/storage/factory.ts)
176
+
177
+ Factory: `STORAGE_BACKEND` env var → `"json"` (default) or `"neo4j"`.
178
+
179
+ ---
180
+
181
+ ### 4. Embedding Service
182
+
183
+ #### [NEW] [src/encoding/embedder.ts](file:///d:/Projects/open-memory/src/encoding/embedder.ts)
184
+
185
+ Simple text-to-vector using a lightweight approach:
186
+
187
+ - If LLM provider configured → use its embedding API
188
+ - Fallback → basic TF-IDF / character n-gram hashing (no external dependency, works offline)
189
+
190
+ This runs server-side whenever entities are added, so search works via cosine similarity without needing the agent to generate embeddings.
191
+
192
+ ---
193
+
194
+ ### 5. LLM Provider (Optional)
195
+
196
+ #### [NEW] [src/llm/provider.ts](file:///d:/Projects/open-memory/src/llm/provider.ts)
197
+
198
+ #### [NEW] [src/llm/openai-provider.ts](file:///d:/Projects/open-memory/src/llm/openai-provider.ts)
199
+
200
+ #### [NEW] [src/llm/prompts.ts](file:///d:/Projects/open-memory/src/llm/prompts.ts)
201
+
202
+ Only loaded if `LLM_API_KEY` is set. Powers `memory_encode_text` tool for server-side extraction.
203
+
204
+ ---
205
+
206
+ ### 6. Retrieval Engine
207
+
208
+ #### [NEW] [src/retrieval/search.ts](file:///d:/Projects/open-memory/src/retrieval/search.ts)
209
+
210
+ 1. Text match + cosine similarity on node descriptions (find anchors)
211
+ 2. Graph traversal from anchors (2-hop neighborhood)
212
+ 3. Temporal + access frequency ranking
213
+ 4. Format results as structured context
214
+
215
+ ---
216
+
217
+ ### 7. Evolution Engine
218
+
219
+ #### [NEW] [src/evolution/consolidator.ts](file:///d:/Projects/open-memory/src/evolution/consolidator.ts)
220
+
221
+ - Duplicate detection + merging
222
+ - Temporal invalidation for conflicting facts
223
+ - Transitive edge inference
224
+ - Stale node pruning
225
+
226
+ ---
227
+
228
+ ### 8. MCP Tools + Resources
229
+
230
+ #### [NEW] [src/tools/memory-tools.ts](file:///d:/Projects/open-memory/src/tools/memory-tools.ts)
231
+
232
+ All 11 tools registered with proper schemas and annotations.
233
+
234
+ #### [NEW] [src/resources/context-resource.ts](file:///d:/Projects/open-memory/src/resources/context-resource.ts)
235
+
236
+ `memory://context/recent` — auto-injectable recent context.
237
+
238
+ ---
239
+
240
+ ### 9. Entry Point
241
+
242
+ #### [NEW] [src/index.ts](file:///d:/Projects/open-memory/src/index.ts)
243
+
244
+ Load config → init storage → optionally init LLM → register tools/resources → stdio connect.
245
+
246
+ ---
247
+
248
+ ## File Tree
249
+
250
+ ```
251
+ open-memory/
252
+ ├── package.json
253
+ ├── tsconfig.json
254
+ ├── .env.example
255
+ ├── README.md
256
+ └── src/
257
+ ├── index.ts
258
+ ├── types.ts
259
+ ├── constants.ts
260
+ ├── storage/
261
+ │ ├── factory.ts
262
+ │ ├── json-store.ts
263
+ │ └── neo4j-store.ts
264
+ ├── encoding/
265
+ │ └── embedder.ts
266
+ ├── llm/ # optional
267
+ │ ├── provider.ts
268
+ │ ├── openai-provider.ts
269
+ │ └── prompts.ts
270
+ ├── retrieval/
271
+ │ └── search.ts
272
+ ├── evolution/
273
+ │ └── consolidator.ts
274
+ ├── tools/
275
+ │ └── memory-tools.ts
276
+ └── resources/
277
+ └── context-resource.ts
278
+ ```
279
+
280
+ ## Environment Configuration
281
+
282
+ ```env
283
+ # Storage (required)
284
+ STORAGE_BACKEND=json # "json" (default) or "neo4j"
285
+ MEMORY_STORE_PATH=./memory.json # for json backend
286
+
287
+ # Neo4j (only if STORAGE_BACKEND=neo4j)
288
+ NEO4J_URI=bolt://localhost:7687
289
+ NEO4J_USER=neo4j
290
+ NEO4J_PASSWORD=password
291
+
292
+ # LLM (OPTIONAL — only for server-side encoding via memory_encode_text)
293
+ LLM_API_KEY= # leave empty = agent-driven mode
294
+ LLM_BASE_URL=https://api.openai.com/v1
295
+ LLM_CHAT_MODEL=gpt-4o-mini
296
+ LLM_EMBEDDING_MODEL=text-embedding-3-small
297
+ ```
298
+
299
+ ---
300
+
301
+ ## Verification Plan
302
+
303
+ ### Build
304
+
305
+ ```bash
306
+ cd d:/Projects/open-memory && npm run build
307
+ ```
308
+
309
+ ### MCP Inspector
310
+
311
+ ```bash
312
+ npx @modelcontextprotocol/inspector node dist/index.js
313
+ ```
314
+
315
+ ### Smoke Test (Agent-Driven Flow)
316
+
317
+ 1. `memory_status` → `{ nodes: 0, edges: 0, storage: "json" }`
318
+ 2. `memory_add_entities` → `{ entities: [{ name: "React Query", type: "entity", description: "Data fetching library used in dashboard" }] }`
319
+ 3. `memory_add_relations` → `{ relations: [{ source: "dashboard", target: "React Query", relation: "uses" }] }`
320
+ 4. `memory_search` → `{ query: "data fetching" }` → returns React Query context
321
+ 5. `memory_get_entity` → `{ name: "React Query" }` → full details + relations
322
+ 6. `memory_consolidate` → runs without errors
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@coreidentitylabs/open-graph-memory-mcp",
3
+ "version": "1.0.1",
4
+ "description": "Graph-based agent memory MCP server — extends AI coding assistant memory with persistent knowledge graphs",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "@coreidentitylabs/open-graph-memory-mcp": "dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "start": "node dist/index.js",
12
+ "dev": "tsx watch src/index.ts",
13
+ "build": "tsc",
14
+ "prepare": "npm run build",
15
+ "clean": "rimraf dist"
16
+ },
17
+ "engines": {
18
+ "node": ">=18"
19
+ },
20
+ "keywords": [
21
+ "mcp",
22
+ "memory",
23
+ "graph",
24
+ "knowledge-graph",
25
+ "agent-memory",
26
+ "ai-coding-assistant"
27
+ ],
28
+ "license": "MIT",
29
+ "dependencies": {
30
+ "@modelcontextprotocol/sdk": "^1.6.1",
31
+ "dotenv": "^16.4.7",
32
+ "neo4j-driver": "^5.27.0",
33
+ "uuid": "^11.0.5",
34
+ "zod": "^3.23.8"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^22.10.0",
38
+ "@types/uuid": "^10.0.0",
39
+ "rimraf": "^6.0.1",
40
+ "tsx": "^4.19.2",
41
+ "typescript": "^5.7.2"
42
+ }
43
+ }
@@ -0,0 +1,52 @@
1
+ // =============================================================================
2
+ // Open-Memory MCP Server — Constants & Configuration
3
+ // =============================================================================
4
+
5
+ /** Maximum response size in characters to prevent overwhelming the agent */
6
+ export const CHARACTER_LIMIT = 25_000;
7
+
8
+ /** Default number of results in paginated responses */
9
+ export const DEFAULT_PAGE_SIZE = 20;
10
+
11
+ /** Maximum page size for list operations */
12
+ export const MAX_PAGE_SIZE = 100;
13
+
14
+ /** Default number of hops for graph neighborhood traversal */
15
+ export const DEFAULT_TRAVERSAL_DEPTH = 2;
16
+
17
+ /** Default number of results for semantic search */
18
+ export const DEFAULT_TOP_K = 10;
19
+
20
+ /** Similarity threshold for duplicate detection during consolidation */
21
+ export const DUPLICATE_SIMILARITY_THRESHOLD = 0.85;
22
+
23
+ /** Minimum edge weight to keep during pruning */
24
+ export const MIN_EDGE_WEIGHT = 0.1;
25
+
26
+ /** Maximum age (days) for stale node pruning — nodes not accessed in this period */
27
+ export const STALE_NODE_AGE_DAYS = 90;
28
+
29
+ /** Default storage file path */
30
+ export const DEFAULT_MEMORY_STORE_PATH = "./memory.json";
31
+
32
+ /** Server name for MCP registration */
33
+ export const SERVER_NAME = "open-memory-mcp-server";
34
+
35
+ /** Server version */
36
+ export const SERVER_VERSION = "1.0.0";
37
+
38
+ // -----------------------------------------------------------------------------
39
+ // Environment variable keys
40
+ // -----------------------------------------------------------------------------
41
+
42
+ export const ENV_KEYS = {
43
+ STORAGE_BACKEND: "STORAGE_BACKEND",
44
+ MEMORY_STORE_PATH: "MEMORY_STORE_PATH",
45
+ NEO4J_URI: "NEO4J_URI",
46
+ NEO4J_USER: "NEO4J_USER",
47
+ NEO4J_PASSWORD: "NEO4J_PASSWORD",
48
+ LLM_API_KEY: "LLM_API_KEY",
49
+ LLM_BASE_URL: "LLM_BASE_URL",
50
+ LLM_CHAT_MODEL: "LLM_CHAT_MODEL",
51
+ LLM_EMBEDDING_MODEL: "LLM_EMBEDDING_MODEL",
52
+ } as const;