Tool reference · Edit, history & reports
New in 14.6.0memory_report
Builds an activity report for a project (or all projects) over a day, week, month, all time or custom dates: decisions with their reasons, fixes, errors, lessons, open next steps, files and a daily timeline.
local stdio server writes idempotent
Caution. Deterministic and local by default. include_llm_summary=true sends the report's headline items to the configured LLM provider to write one paragraph; the report stays complete if that fails.
When to use
- Someone asks "what happened this week on my-api?" or wants a status update.
- Preparing a weekly summary, a sprint review or a retrospective (offset=-1 for last week or last month).
- Handing a project over and you want the key decisions and open items in one place.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
project | string | — | Project name; omit for all projects (min length 1, max length 128) |
period | "day" | "week" | "month" | "all" | "custom" | "week" | day = today, week = this ISO week, month = this calendar month, all = since the first record, custom = since/until |
since | string | — | custom only: first day YYYY-MM-DD (inclusive) or an ISO date-time (max length 40) |
until | string | — | custom only: last day YYYY-MM-DD (inclusive) or an ISO date-time (exclusive); default today (max length 40) |
offset | integer | 0 | day/week/month only: 0 = current, -1 = previous (yesterday, last week, last month) (min -520, max 0) |
tz | string | — | IANA timezone for period boundaries, e.g. Europe/Berlin; default: MEMORY_REPORT_TZ, TZ or the system zone (min length 1, max length 64) |
limit | integer | 20 | Maximum items per section (min 1, max 200) |
format | "markdown" | "json" | "markdown" | markdown (readable) or json (structured) |
include_llm_summary | boolean | false | Add an LLM-written paragraph (needs a configured LLM) |
save | boolean | false | Also write the Markdown under <memory dir>/reports/ |
Example
Arguments
{
"project": "my-api",
"period": "week",
"offset": -1,
"format": "json"
} Result shape
{
"report": {
"schema_version": 1,
"project": "my-api",
"scope": null,
"window": {
"kind": "week",
"label": "ISO week 2026-W39 (2026-09-21 – 2026-09-27)",
"timezone": "Europe/Berlin",
"start": "2026-09-21T00:00:00+02:00",
"end": "2026-09-28T00:00:00+02:00",
"start_utc": "2026-09-20T22:00:00Z",
"end_utc": "2026-09-27T22:00:00Z",
"first_day": "2026-09-21",
"last_day": "2026-09-27",
"days": 7,
"in_progress": true
},
"generated_at": "2026-09-25T15:02:11Z",
"empty": false,
"summary": {
"records": 18,
"records_by_type": {
"decision": 3,
"solution": 5,
"fact": 10
},
"new": 15,
"updated": 3,
"confirmed": 1,
"superseded": 1,
"errors": 4,
"session_summaries": 3,
"sessions": 6,
"active_days": 4
},
"previous": null,
"changes": [
{
"key": "records",
"label": "Records",
"current": 18,
"previous": 11,
"delta": 7,
"change_pct": 63.6
}
],
"decisions": {
"total": 3,
"items": [
{
"title": "Use pgvector instead of ChromaDB",
"type": "decision",
"at": "2026-09-22T10:14:00Z",
"status": "active",
"why": "Per-tenant row-level security in one Postgres",
"sources": [
{
"kind": "knowledge",
"id": 412
}
]
}
]
},
"solutions": {
"total": 5,
"items": []
},
"errors": {
"total": 4,
"items": []
},
"lessons": {
"total": 1,
"items": []
},
"error_patterns": [
{
"pattern": "test DB not migrated",
"count": 2,
"total": 5,
"recurring": true,
"first_seen": "2026-08-30",
"last_seen": "2026-09-24",
"sources": []
}
],
"open_items": {
"total": 2,
"items": [
{
"kind": "next_step",
"text": "Update the OpenAPI spec",
"at": "2026-09-24T18:40:00Z",
"occurrences": 1,
"picked_up": false,
"sources": []
}
]
},
"files": {
"total": 7,
"items": [
{
"name": "src/auth/middleware.go",
"kind": "file",
"count": 4,
"sources": []
}
]
},
"entities": {
"total": 5,
"items": []
},
"tags": {
"total": 6,
"items": []
},
"timeline": [
{
"date": "2026-09-22",
"weekday": "Mon",
"records": 6,
"by_type": {
"decision": 1,
"fact": 5
},
"errors": 1,
"sessions": 2,
"summaries": 1,
"entries": [],
"more": 0
}
],
"contributors": [],
"llm_summary": null,
"llm_summary_error": null
},
"saved_to": null
} With format="markdown" (the default) the same data comes back as a readable report. Every item carries record IDs for memory_get. save=true also writes the Markdown to <memory dir>/reports/<project>/<period>-<date>.md.
Values are illustrative; the keys follow the server's handler. MCP clients receive the result as JSON text content.
Server description
The description the server sends to your agent in tools/list, captured from the v14.7.0 source:
Activity report for a project (or all projects) over a period: today (period=day), this week (week, ISO Monday-Sunday), this month (month), all time (all) or custom since/until dates; offset=-1 gives the previous day/week/month ('last week'). Sections: summary numbers with deltas against the previous equal period, key decisions with their WHY, solutions and fixes, errors with recurring patterns and lessons, open next steps and pitfalls from session summaries, most touched files, entities/technologies, and a day-by-day timeline. Every item carries source IDs (#id -> memory_get). Built deterministically from stored records, no LLM; include_llm_summary=true adds an optional paragraph from the configured LLM. Periods use the local timezone (or tz). save=true writes the Markdown to <memory dir>/reports/<project>/<period>-<date>.md. Use it when the user asks what happened, for a status/progress report, a weekly summary or a retrospective.