MCP memory server for AI tools (Copilot, Kiro, Cursor) — persistent context across sessions, built in Kotlin.
Engram is a local MCP server that gives AI coding assistants a persistent memory layer. Any tool that supports MCP can call these 6 tools:
| Tool | Description |
|---|---|
memory_save |
Store or update a named memory entry (key/value + tags + project + TTL) |
memory_recall |
Retrieve a memory entry by exact key |
memory_search |
Full-text search across keys, values, and tags |
memory_forget |
Delete a memory entry by key |
memory_list |
List entries, filtered by project or source tool |
memory_summarize |
Condensed overview of stored memories for a project or session |
Memories are stored locally in SQLite — no cloud, no vendor lock-in.
- Java 21 (LTS) —
sdk use java 21.0.9-temvia SDKMAN
./gradlew shadowJarOutput: build/libs/marstech-engram-0.1.0.jar
java -jar build/libs/marstech-engram-0.1.0.jar{
"mcpServers": {
"marstech-engram": {
"command": "java",
"args": ["-jar", "/path/to/marstech-engram-0.1.0.jar"]
}
}
}{
"mcpServers": {
"marstech-engram": {
"command": "java",
"args": ["-jar", "/path/to/marstech-engram-0.1.0.jar"]
}
}
}{
"mcpServers": {
"marstech-engram": {
"command": "java",
"args": ["-jar", "/path/to/marstech-engram-0.1.0.jar"],
"env": {
"ENGRAM_DB_PATH": "/Users/yourname/.marstech-engram/engram.db"
}
}
}
}{
"mcpServers": {
"marstech-engram": {
"command": "java",
"args": ["-jar", "/path/to/marstech-engram-0.1.0.jar"]
}
}
}{
"mcpServers": {
"marstech-engram": {
"command": "java",
"args": ["-jar", "/path/to/marstech-engram-0.1.0.jar"]
}
}
}# Run tests
./gradlew test
# Build fat JAR
./gradlew shadowJar
# Run locally
./gradlew runNote: build requires Java 21. If your default JVM is newer, set:
export JAVA_HOME=$HOME/.sdkman/candidates/java/21.0.9-tem
./gradlew build- Package:
io.marstech.engram - Version:
0.1.0 - DB default:
~/.marstech-engram/engram.db - JAR:
marstech-engram-0.1.0.jar - YouTrack: MARSTECH-638
- GitHub: https://github.com/alkaphreak/marstech-engram
Apache 2.0
