Connect
Start a server using the quickstart, then configure your client’s HTTP MCP connection with:Authorization: Bearer <token> when authentication is enabled. The token
must authorize the requested operations. Send X-Space-Id to explicitly select
one authorized named space; a multi-space token does not select its first entry.
Current local grants intersect the signed ceiling on each request. In local
SKIP_AUTH mode, X-Space-Id selects the development principal’s space.
meerkat-recall serve runs an HTTP server. The separate elephant-local-helper is a
stdio service for client-side file ingestion. The server’s Full-profile file
tools read paths on the server; the helper reads paths on the client.
See ingesting data before choosing either path.
For remote connections, configure MCP_ALLOWED_HOSTS; browser clients may also
need MCP_ALLOWED_ORIGINS. These are transport protections, separate from data
authorization. See deployment.
Try calls from a terminal
The MCP Inspector CLI handles initialization and tool calls. Install Node.js 22.19 or newer, then define this helper. It uses the sameTOKEN as the HTTP examples; leave it
unset only for local SKIP_AUTH development.
result; inspect its error/content fields as described below. To call a
tool with an argument object, use --tool-args-json:
MCP_URL to the desired profile endpoint, then list its tools again.
These commands connect directly to your Meerkat Recall server; they do not require
an Inspector web session.
Choose a profile
A profile limits the available operations. It does not grant permission to perform them. Usetools/list on the connected endpoint to discover its current
schemas; runtime state and authorization can further restrict the surface.
The internal Pipeline profile provides work-queue operations to Rust callers;
there is no
/mcp/pipeline HTTP endpoint. Per-tool profile labels live in the
tool reference.
The Default get_provenance handler checks the complete authorized evidence
chain, including original assertions, revisions, nodes and parent documents.
Missing or inaccessible evidence refuses the request; it does not return a
partial chain. Raw excerpts require raw-document authority. See
security boundaries.
Check readiness before ingesting
Callget_runtime_status with {} first. It remains available even before
storage is configured.
Runtime environment settings such as
ELEPHANT_DB or SURREALDB_URL select
configured mode. They do not automatically make the extractor ready. If the
extractor connects to Meerkat Recall’s own /mcp/agent, startup retries after the
listener binds; a brief initial extractor_ready: false can be expected.
Ingest tools are hidden while semantic ingest is unavailable. Configuration
reads and writes have separate permission checks: get_runtime_config requires
system read or write permission, while configure_runtime and
initialize_runtime require system write permission (or development bypass).
The Agent profile only exposes runtime status.
Make a call and interpret the result
After MCP initialization, this is atools/call request body:
arguments object.
Meerkat Recall has several result layers. Check each layer instead of treating a
successful HTTP request as a successful operation:
- A transport or JSON-RPC error means the request failed before a usable tool result was returned.
- An MCP result with
isError: truemeans dispatch or execution failed. Read its content for the error. - Many core handlers return JSON in a text content block using the following
Meerkat Recall envelope. Check
okbefore consumingdata.
ok is
false and error contains the reason; do not require null-valued optional keys.
Runtime-control tools return their own JSON response directly; do not require
this envelope for get_runtime_status or configuration calls. Consult the
specific tool for its data shape.
Search results are scoped and filtered. An empty bucket can mean there is no
match visible to this principal. Unified search can also report per-bucket
errors; inspect them before interpreting an empty result as absence.
Use the Rust dispatcher
Embedded callers can invoke the same handlers without HTTP. They must supply a trusted principal and configured storage; these constructors do not authenticate users or supply the managed server’s runtime-control tools.create_agent_dispatcher,
create_maintenance_dispatcher, and create_dispatcher for the Full registry.
Continue with MCP workflows for complete tasks or use the
tool reference to look up arguments. Application code that needs
HTTP status codes, resource routes, or SSE can use the HTTP API.