Skip to main content
Agent Memory exposes 6 MCP resources under the agentmemory:// URI scheme. Agents can read these resources directly for structured, always-current data about memory state — without calling a tool or writing a query. Every resource returns a application/json body that reflects the live state of your memory server at the moment of the request.
Resources are read-only. To modify memory state — saving a memory, deleting an observation, triggering consolidation — use MCP tools instead.

Resources

agentmemory://status

Current health snapshot of the memory server. Returns:
FieldTypeDescription
sessionCountnumberTotal number of recorded sessions
memoryCountnumberTotal number of memories in the store
healthStatusstringavailable when health data exists, no-data otherwise
Example response:
{
  "sessionCount": 47,
  "memoryCount": 312,
  "healthStatus": "available"
}
Use this resource to quickly confirm that your memory server is running and has populated data before starting a session-intensive task.

agentmemory://project/{name}/profile

Profile for a named project — a distilled view of everything Agent Memory knows about how your agent works within this project. Path parameter:
ParameterDescription
nameThe project directory name or canonical project identifier. Use the same stable slug you pass to memory_save and memory_profile. Percent-encoding is supported.
Returns: A complete profile for the named project, including:
  • Top concepts extracted from sessions
  • Most-accessed and most-modified files
  • Learned conventions and preferences
  • Recurring patterns
  • Related session IDs
Example URI: agentmemory://project/my-api-service/profile
Use this resource at the start of a session to give your agent an instant orientation to a project — what files matter, what patterns exist, what decisions were already made.

agentmemory://project/{name}/recent

The 5 most recent session summaries for a project, sorted newest-first. Path parameter:
ParameterDescription
nameThe project identifier — must match the value used when sessions were recorded.
Returns: An array of up to 5 session summary objects, each containing:
FieldTypeDescription
sessionIdstringUnique session identifier
projectstringProject this session belongs to
createdAtstringISO 8601 timestamp when the session was recorded
summarystringLLM-generated narrative summary of the session
Example URI: agentmemory://project/my-api-service/recent Example response:
[
  {
    "sessionId": "sess_01J8X...",
    "project": "my-api-service",
    "createdAt": "2025-06-10T14:32:00Z",
    "summary": "Implemented JWT refresh token rotation. Fixed edge case where expired tokens were not invalidated on logout. Updated tests in test/auth.test.ts."
  },
  {
    "sessionId": "sess_01J8W...",
    "project": "my-api-service",
    "createdAt": "2025-06-09T10:15:00Z",
    "summary": "Added rate limiting middleware using express-rate-limit. Configured per-route limits for auth endpoints."
  }
]

agentmemory://memories/latest

The 10 most recently created or reinforced memories across all projects. Returns: An array of up to 10 Memory objects, each containing:
FieldTypeDescription
idstringUnique memory identifier
titlestringShort descriptive title
typestringMemory tier: working, episodic, semantic, or procedural
strengthnumberConsolidation strength (higher = more reinforced)
Example response:
[
  {
    "id": "mem_01J9A...",
    "title": "JWT middleware uses jose library in src/middleware/auth.ts",
    "type": "semantic",
    "strength": 0.87
  },
  {
    "id": "mem_01J9B...",
    "title": "Prefer edge-compatible jose over jsonwebtoken for auth",
    "type": "procedural",
    "strength": 0.74
  }
]
Reading agentmemory://memories/latest is a fast way to prime your agent with the most active context without running a full search query.

agentmemory://graph/stats

Knowledge graph statistics — a summary of entities and relationships currently in the graph. Returns:
FieldTypeDescription
totalNodesnumberTotal entity nodes in the graph
totalEdgesnumberTotal relationship edges in the graph
nodesByTypeobjectNode count broken down by entity type (e.g. file, concept, decision)
edgesByTypeobjectEdge count broken down by relationship type (e.g. references, depends_on, contradicts)
Example response:
{
  "totalNodes": 284,
  "totalEdges": 531,
  "nodesByType": {
    "file": 92,
    "concept": 141,
    "decision": 51
  },
  "edgesByType": {
    "references": 203,
    "depends_on": 178,
    "contradicts": 12,
    "supersedes": 38,
    "co_occurs_with": 100
  }
}
Requires GRAPH_EXTRACTION_ENABLED=true. Without it, both totalNodes and totalEdges return 0. Graph extraction runs automatically at session end when the flag is enabled.

agentmemory://team/{id}/profile

Shared team memory profile — an aggregate view of memories shared within a team namespace. Path parameter:
ParameterDescription
idThe TEAM_ID from your configuration. Must match the value set in ~/.agentmemory/.env.
Returns:
FieldTypeDescription
teamIdstringThe team identifier
sharedItemsnumberTotal number of items shared within this team namespace
Example URI: agentmemory://team/acme-engineering/profile Example response:
{
  "teamId": "acme-engineering",
  "sharedItems": 43
}
Requires TEAM_ID to be configured in ~/.agentmemory/.env. Without it, the resource returns 0 shared items. Use memory_team_share to add items to the team feed and memory_team_feed to read them back.

How Agents Use Resources

Agents access resources via MCP’s resources/read protocol. Most MCP clients surface resources as a special context source — separate from tool calls — that the model can reference without consuming tool-call budget.
1

Agent discovers available resources

On connection, the MCP client calls resources/list and receives the full list of agentmemory:// URIs. Your agent sees them as named context sources it can request at any time.
2

Agent reads a resource

When the agent needs project context, memory stats, or graph data, it issues a resources/read call with the target URI. The server returns the current snapshot instantly — no search, no LLM call.
3

Agent uses the data

The structured JSON response lands in the agent’s context window. The agent can reference it directly in its reasoning — for example, checking sessionCount before deciding whether to run a full recall, or scanning memories/latest to orient itself at the start of a task.

Example: Reading Status in Claude Code

You can ask your agent to read any resource directly in natural language:
Read agentmemory://status and summarize what you see
Claude will call resources/read with uri: "agentmemory://status" and return a human-readable summary of the current session count, memory count, and health state.

Reading a project profile

Read agentmemory://project/my-api-service/profile and tell me the top concepts and most-accessed files

Checking the knowledge graph

Read agentmemory://graph/stats — how many nodes does the knowledge graph have, and what types are most common?

Checking recent sessions before starting work

Before we begin, read agentmemory://project/my-api-service/recent so you know what happened in the last few sessions

Resource URI Reference

URIDescriptionRequires
agentmemory://statusServer health, session and memory countsAlways available
agentmemory://project/{name}/profileTop concepts, files, patterns for a projectPopulated after at least one session
agentmemory://project/{name}/recentLast 5 session summaries for a projectPopulated after at least one session
agentmemory://memories/latest10 most recently active memoriesPopulated after memory save/consolidation
agentmemory://graph/statsKnowledge graph node and edge countsGRAPH_EXTRACTION_ENABLED=true
agentmemory://team/{id}/profileTeam shared memory summaryTEAM_ID configured