MCP App Store
by KeenEthics
Engram AI Memory icon

Engram AI Memory

By Engram

Get New App Alerts

Overview

Engram is AI memory you can read and edit. What you save in one conversation is there to recall in the next. That memory is plain markdown notes. The memory is the note itself, so you can read exactly what is remembered, and when something is wrong, you fix the line and the fix is what gets recalled. Read and edit your memory in Obsidian, where the Engram plugin syncs it in real time, in the Engram web app, or on your phone. It works with Obsidian closed. Search combines keyword and semantic matching, so an exact string like an error message, a config key or an ID is findable, not just something similar. Notes are encrypted at rest with a per-user key. Sign-in is OAuth, and you can revoke access from your account.

Tools

append_to_note

ChatGPT
Add text to the end of a note. Existing text is kept. If the note does not exist it is created with a # <name> title line first. Use for logs, journals and running lists. Set position to start to insert at the top (after any frontmatter) instead. To change existing text use edit_note. To replace the whole note use write_note.

create_folder

ChatGPT
Create an explicit empty folder in the personal knowledge base. Use to scaffold folder structure before placing notes. Idempotent: calling with an existing folder name succeeds without creating duplicates.

create_note

ChatGPT
Create a new note with automatic folder placement. If suggested_folder is omitted, the note is placed automatically. Never overwrites: fails if a note already exists at the resulting path.

delete_attachment

ChatGPT
Permanently delete a single attachment (image, PDF, or other binary file) by path; the stored file is removed and cannot be restored. Syncs the delete to all connected Obsidian devices. Deleting a path with no attachment succeeds and reports deleted: false. For notes use delete_note; to remove a whole folder use delete_folder.

delete_folder

ChatGPT
Delete a folder. Empty-only by default: if the folder contains notes or attachments, the call is refused and reports the counts. Pass recursive: true to delete the folder and everything under it. Syncs to all connected devices.

delete_note

ChatGPT
Permanently delete one note by path; the deletion syncs to all connected Obsidian devices. Deleting a path that holds no note succeeds and reports deleted: false. To remove a whole folder use delete_folder. To move a note instead use rename_note. For an image, PDF, or other binary file use delete_attachment.

edit_note

ChatGPT
Change part of an existing note. mode replace_text finds exact text and replaces it (first occurrence by default); mode replace_section replaces everything under one heading; mode insert_section adds content under a heading, at the start or end of that section, keeping what is there. Fails without writing if the text or heading is not found, or if expected_replacements does not match. To add text at the top or bottom of the note use append_to_note. To rewrite the whole note use write_note.

get_attachment_upload_target

ChatGPT
Get the endpoint and this account's limits for uploading an attachment (image, PDF, audio, video). Returns a URL to POST the file to yourself using the credential already authorizing this connection; the bytes do not pass through this tool. Call before uploading to learn the size cap and which file types the plan allows.

get_notes

ChatGPT
Retrieve the full content of multiple notes in one call (1-20 paths). Also reads a single note: pass one path. Use to inventory a folder (list_folder then get_notes) or to read a batch of search results without N round-trips. Missing paths are reported inline. To save tokens on long notes, pass outline: true for the heading list only, or section with one path to read just that heading's section. Pass include_links: true to also get, per note, the notes linking to it, the notes it links to, and its links that point at no existing note.

list_fields

ChatGPT
List every frontmatter field used in the vault: its name, value kinds (string, boolean, number, date), how many notes carry it, whether notes hold a list of values, the number or date range, and the most used values with counts. Call this before filtering search_notes by frontmatter: pass a field's name as the key of a search_notes fields filter, with one of its values (exact match) or a bound inside its range.

list_folder

ChatGPT
List the notes, attachments, and subfolders directly inside one folder. Pass an empty string for the vault root. Set recursive: true to list every descendant folder (with note counts) instead of just the direct ones. To see every folder in the vault with counts call list_folder with recursive: true on the root. To find notes by content use search_notes.

list_tags

ChatGPT
List all tags in the personal knowledge base with document counts. Use to explore what topics exist in the vault.

list_vaults

ChatGPT
List your vaults with their IDs, names and slugs. Call this first when you own more than one vault: every other vault-scoped tool needs a vault_id (a name or ID from this list) to know which vault to act on. search_notes without one searches all vaults.

move_attachment

ChatGPT
Move or rename a single attachment (image, PDF, or other binary file) to a new path. Syncs to all connected Obsidian devices. The file's content is unchanged; only its path moves.

rename_folder

ChatGPT
Rename or move a folder, including every note, attachment and subfolder inside it. All affected notes are reindexed and synced. To move a single note use rename_note.

rename_note

ChatGPT
Rename or move one note to a new path; the change syncs to all Obsidian devices and links pointing at it are rewritten in the background. Fails if a note already exists at the new path. To move a whole folder use rename_folder. To move an image or PDF use move_attachment.

restore_deleted

ChatGPT
Undo a delete_note, delete_folder or delete_attachment call: pass the delete_op_id it returned and everything that call removed comes back at its old path, while still in trash. An item whose path is now taken by another file, or whose trash window has passed, is skipped and listed. Safe to repeat: a second call restores nothing more. Refused if restoring would pass a plan limit.

search_notes

ChatGPT
Search your personal knowledge base. Finds relevant notes using semantic search. Searches across ALL your vaults by default; pass vault_id to limit to one. Omit query to list the most recently updated notes instead. Pass similar_to with a note path, instead of query, to find notes like that one. Use when the user asks about their notes, vault, knowledge, or memory.

send_feedback

ChatGPT
Send feedback to the Engram team: a bug, an idea, something confusing, something that works well, or a capability Engram lacks. Use it when the user asks to send feedback, or on your own when an Engram tool failed, gave a poor result, or could not do what was needed. Never include note content, note titles, file paths or personal data: describe the problem in general terms.

suggest_folder

ChatGPT
Find the best existing folder for a new note based on a description of its content. Call before create_note when the right folder is unclear.

write_note

ChatGPT
Replace a note's entire content, or create the note if it does not exist. Saves, indexes for search, and syncs to Obsidian. Overwrites whatever the note held. To add text without touching existing content use append_to_note. To change one passage, or one heading's section, use edit_note. To create a note with no risk of overwriting an existing one use create_note; create_note takes a title and picks the folder, not a path.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps