For agents
The memory layer your agents need
Ela exposes your notes through MCP, the protocol agents already speak. Search returns structured handles with provenance, not raw file dumps. Coverage metadata on every response.
MCP exposes read tools only. Agent writes go through the HTTP API, CLI --remote, or the web review queue.
Local vs cloud
Two endpoints, one retrieval model
Local runs on your machine with full folder access, including Private. Cloud serves AI running anywhere and does not return Private notes. A library (`vault_id` in the API) comes from the credential.
Desktop search is lexical-only. Semantic search is opt-in on local MCP and hybrid on cloud with Pro.
Ranked search
Lexical ranking always. Semantic is opt-in on local (ELANOTES_EMBEDDINGS=1, one-time model download) and hybrid on cloud.
Citations on every result
The note, the heading, the dates. Answers with receipts.
Coverage reporting
Know what was searched and what was excluded
Private folder access
Cloud agents do not receive these notes. Local MCP does, after unlock.
Offline operation
Works without internet, entirely on your hardware
Remote agent access
An endpoint for AI running anywhere
MCP tools
Everything an agent needs to know you
A complete read surface: search, browse, follow connections, catch up on changes. Every response comes with citations and coverage.
MCP tools are read-only. Agents write through the HTTP API, CLI --remote, or the web review queue.
search_notesRanked search that returns citations, not walls of text.
grep_notesExact-match search that always works, even on a note saved a second ago.
read_noteFetch a note, or just the lines needed. Never a context-window blowout.
list_notesBrowse folders so an agent can see what is in the library.
get_linksFollow backlinks, tags, and related notes.
recent_changesCatch up on what changed since the agent last looked.
index_statusCheck how fresh the index is before trusting it.
vault_infoWhat this library contains, and what the caller is allowed to see.
Setup
Connect in minutes
Build the package from a clone first. The server is not published to npm.
Run the local MCP server
pnpm --filter @elanotes/mcp-local build
{
"mcpServers": {
"elanotes": {
"command": "node",
"args": [
"/ABS/PATH/TO/elanotes/packages/mcp-local/dist/cli.js",
"--vault",
"/ABS/PATH/TO/your/vault"
]
}
}
}VAULT_PATH is the env equivalent of --vault.
Or connect Cloud MCP with Pro
Create an access token in Settings. Ela shows the Cloud MCP URL and a config to paste into your client, once. Cloud MCP does not return Private notes.
Design principles
Built for agents that need to trust results
These hold at every layer. They are what make Ela memory instead of just search.
These invariants apply to every retrieval path, local or cloud.
Citations, not dumps
Search returns pointers with provenance. Agents fetch only what they need. Less token waste, less room to hallucinate.
Coverage on every response
Every answer says what was searched, what was excluded, and why. Silent gaps are the worst failure mode. Ela does not have them.
Same question, same answer
Results are reproducible, not a slot machine. An agent that asks twice gets the same truth twice.
One library on the credential
A library (`vault_id` in the API) comes from the token, not the URL. Sign-in still joins one shared library. A library per person is not shipped yet.
Zero is a valid answer
Ela returns nothing, with an explanation, rather than padding results with noise. Agents learn when to say "I don't know."
Private is ciphertext
Local setup can read Private after unlock. Cloud search and cloud MCP exclude it and say so. Sync stores ciphertext, plus the slug, size, and timing.
Point it at a folder. Start asking.
Keep the notes you have. The notes app is free. Pro is $4 a month.
The web and desktop apps work today. Desktop builds are not code-signed yet.