Skip to content

MCP reference

Engram exposes MCP tools, resources, and prompts at /mcp (Streamable HTTP). All operate on the same vault as the REST API. Authenticate with your ENGRAM_AUTH_TOKEN via your client's standard MCP auth mechanism (sent as Authorization: Bearer). To connect from claude.ai (Web), which requires OAuth instead of a static token, enable the embedded OAuth server — see Configuration → OAuth for claude.ai.

Notes are addressed by their vault-relative path (the canonical handle), not by an id. The tool descriptions below are written for LLM consumption and mirror what the running server advertises.

Tools

Notes

save_note

Save a new note to the vault — a fact, a snippet, a link, a decision. Provide the body as Markdown and an optional short title; add tags to make it findable. Returns the note's path.

save_note(title="Postgres backup cmd", body="`pg_dump …`", tags=["ops","postgres"])

read_note

Read one note in full by its path (obtained from search_notes or list_notes). Returns title, tags, and the full Markdown body.

read_note(path="ops/postgres-backup-cmd.md")

get_note_by_title

Read a note by its exact title when you don't know its path.

get_note_by_title(title="Postgres backup cmd")

list_notes

List recent notes (newest first) as path + title + tags, optionally filtered by tag. Use this to browse when you don't have a search term.

list_notes(tag="ops", limit=20)

update_note

Replace a note's body in place by path. Use this to revise an existing note rather than creating a duplicate.

update_note(path="ops/postgres-backup-cmd.md", body="updated Markdown …")

append_to_note

Append text to the end of an existing note by path.

append_to_note(path="ops/postgres-backup-cmd.md", text="\n- also: --jobs=4")

patch_section

Replace the content under a given heading in a note, leaving the rest untouched.

patch_section(path="ops/runbook.md", heading="Rollback", content="1. …")

append_to_daily_note

Append text to today's daily note (created if needed, in the configured daily-note folder).

append_to_daily_note(text="- shipped the v2 docs")

delete_note

Move a note to the trash by path (soft-delete; restorable for 30 days). Confirm with the user before deleting.

delete_note(path="ops/postgres-backup-cmd.md")

Search & graph

search_notes

Search the vault by keyword and return the best matches with a snippet and path. Use this before answering from memory, to ground answers in what was actually saved.

search_notes(query="postgres backup")

List the notes that link to a given note (by path).

get_backlinks(path="ops/postgres-backup-cmd.md")

List the outbound links from a note (wikilinks, embeds, and Markdown links).

get_links(path="ops/runbook.md")

List notes related to a given note via the link graph.

get_related(path="ops/runbook.md")

get_graph

Return the link neighbourhood around a note out to a given depth.

get_graph(path="ops/runbook.md", depth=2)

list_folders

List the folders present in the vault.

list_folders()

list_tags

List the tags in the vault (the union of frontmatter and inline #tags).

list_tags()

Attachments

list_attachments

List the files in the configured attachment store.

list_attachments()

read_attachment

Read an attachment's bytes by path.

read_attachment(path="attachments/diagram.png")

Resources

  • engram://note/{path} — a single note addressed by its vault-relative path.
  • engram://notes — the collection of notes in the vault.

Prompts

  • summarize_note — summarize a note.
  • find_related — find notes related to a given note.
  • daily_review — review recent activity / the daily note.

Testing

Use the MCP Inspector to explore the tools, resources, and prompts against a running server:

npx @modelcontextprotocol/inspector