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:
| Field | Type | Description |
|---|
sessionCount | number | Total number of recorded sessions |
memoryCount | number | Total number of memories in the store |
healthStatus | string | available 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:
| Parameter | Description |
|---|
name | The 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:
| Parameter | Description |
|---|
name | The project identifier — must match the value used when sessions were recorded. |
Returns: An array of up to 5 session summary objects, each containing:
| Field | Type | Description |
|---|
sessionId | string | Unique session identifier |
project | string | Project this session belongs to |
createdAt | string | ISO 8601 timestamp when the session was recorded |
summary | string | LLM-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:
| Field | Type | Description |
|---|
id | string | Unique memory identifier |
title | string | Short descriptive title |
type | string | Memory tier: working, episodic, semantic, or procedural |
strength | number | Consolidation 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:
| Field | Type | Description |
|---|
totalNodes | number | Total entity nodes in the graph |
totalEdges | number | Total relationship edges in the graph |
nodesByType | object | Node count broken down by entity type (e.g. file, concept, decision) |
edgesByType | object | Edge 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:
| Parameter | Description |
|---|
id | The TEAM_ID from your configuration. Must match the value set in ~/.agentmemory/.env. |
Returns:
| Field | Type | Description |
|---|
teamId | string | The team identifier |
sharedItems | number | Total 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.
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.
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.
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
| URI | Description | Requires |
|---|
agentmemory://status | Server health, session and memory counts | Always available |
agentmemory://project/{name}/profile | Top concepts, files, patterns for a project | Populated after at least one session |
agentmemory://project/{name}/recent | Last 5 session summaries for a project | Populated after at least one session |
agentmemory://memories/latest | 10 most recently active memories | Populated after memory save/consolidation |
agentmemory://graph/stats | Knowledge graph node and edge counts | GRAPH_EXTRACTION_ENABLED=true |
agentmemory://team/{id}/profile | Team shared memory summary | TEAM_ID configured |