MCP tools reference
Every tool Esment exposes over MCP, its main arguments, and how to reach the local and remote endpoints.
Endpoints
Esment is an MCP server on two transports. Both serve the same memory tools; the HTTP surface is a little smaller and its descriptions are written for remote clients.
- HTTP on the Mac. The engine serves Streamable HTTP at
http://127.0.0.1:8080/mcp. It listens on your Mac only, unless you turn on the tunnel in the app, which gives it a public https address ending in/mcp. - stdio on the Mac. The app bundles
esment-mcp, a local MCP server that apps such as Claude Desktop, Cursor and Codex start themselves. - Cloud. The hosted endpoint is a single
/mcpURL, shown on the Assistants page of the dashboard. It looks likehttps://cloud.esment.notas.ai/mcp.
The HTTP endpoint is stateless: each request is resolved to a workspace from its credential, and no session is needed for routing. POST carries JSON-RPC messages.
{
"mcpServers": {
"esment": {
"url": "http://127.0.0.1:8080/mcp",
"headers": { "Authorization": "Bearer <admin-token>" }
}
}
}# ~/.codex/config.toml
[mcp_servers.Esment]
command = "/Applications/Esment.app/Contents/MacOS/esment-mcp"
args = ["--config", "<path to config.toml in the .esment folder>"]The Assistants page of the Mac app shows these snippets filled in, under Any MCP client. The admin token is in Settings → Connection.
/v1, which the SDKs use. See API keys & SDK.Authentication
Every request to /mcp needs a bearer credential, and every tool call is scoped to one workspace. Two kinds are accepted.
- OAuth 2.1 access token. For web assistants. The flow is authorization code with mandatory PKCE (S256). Clients register dynamically or identify themselves with a client metadata document, and the token is bound to the
/mcpresource. - API key. Send it as
Authorization: Bearer <key>. On the cloud, create one in Settings → Workspace. On the Mac, use the admin token, or an extra key from Settings → Connection → API keys.
Without a valid credential the server answers 401 with a WWW-Authenticate header that points at the protected-resource metadata, which is how OAuth clients discover the sign-in. The metadata and sign-in routes are:
GET /.well-known/oauth-protected-resource
GET /.well-known/oauth-authorization-server
GET /oauth/jwks
POST /oauth/register
GET /authorize
POST /oauth/token
POST /oauth/revokeKeys carry a permission, read only, read write or admin, so a read-only key cannot call the write tools.
Tools
By default the server shows the personal profile: the everyday tools below. On the Mac, turn on Settings → Advanced → MCP tools → Advanced tools for the full profile, then restart the assistant. Two names are aliases: recall for search_context and remember for add_memory.
Start and recall
session_brief: loads the usage profile, Memory Blocks, pinned facts, per-entity summaries and recent work in one call. Call it once at the start of a chat. Arguments:input(the user’s message, adds a relevant-now section),budget_tokens.search_context(aliasrecall): searches memory. Arguments:query(required),top_k(default 20),space. Over HTTP alsotags(all must match) andsince(RFC 3339).get_context(stdio only): memory relevant to a message. Arguments:query(required),format(markdown,json,xmlorplain).list_memories: lists stored memories. Arguments:space,limit(default 50);memory_typeover HTTP,lifecycleover stdio.
Save and change
add_memory(aliasremember): saves a fact. Arguments:content;memory_type(episodic,semantic,proceduralorfact);tags;space;evergreen(pin it);voice_note_idandatto link a voice note. Over HTTP,factssaves several at once andreplaceslists ids of memories being corrected, which the user can undo.update_memory: replaces the text of a memory in place. Arguments:memory_id,content(the full new text).confirm_memory: the user restated a stored fact, so raise its importance instead of saving a duplicate. Argument:memory_id.forget_memory: expires a memory. Argument:memory_id.add_event: records a timestamped event. Arguments:content,event_type,source,importance.
space is one of user, session, agent, org or task. Each saved memory is also stamped with the assistant that wrote it, taken from the client name the connection announced. That is not a tool argument.
Memory Blocks and pages
get_memory_block: reads a block byname(soul,facts,persona,projector a custom one).update_memory_block: overwrites a block. Arguments:name,content(full text),kind,position,enabled.list_memory_blocks(stdio only): lists every block.list_pages: lists Library pages. Arguments:kind(authored,derivedorimported),limit.get_page: reads a page by wikipathsuch asentities/acme.provenance: trueadds the source memories of each sentence.
The block tools are hidden on plans without Memory Blocks (see Memory Blocks).
Voice notes
list_voice_notes: notes waiting to become memories. Arguments:status(pending,processedorall; defaultpending),query,limit.get_voice_note: one note’s timestamped transcript. Argument:id. The first memory saved with itsvoice_note_idmarks it processed.
Hidden on plans without voice notes (see Voice notes).
Statistics and audit (full profile)
get_stats: counts for the workspace.commit_history(limit),get_commit(hash),get_audit_trail(memory_id) anddiff_memory(from,to) read the change log of the store.time_travel_memory: memories valid at a past moment. Arguments:query,at(required),top_k.
Other stdio tools
Over stdio, get_memory_health, toggle_observational_memory, get_context_window and close_session manage Observational Memory sessions. The full profile adds get_entity_graph, sample_finetune_dataset and apply_lifecycle.
Which tools the hosted cloud endpoint advertises depends on its configuration, so check tools/list for the definitive list. Observational Memory is not described in the guide yet.