Skip to content
Docs menu

Tool reference · Team server (remote)

New in 14.6.0

memory_report

Builds an activity report on the team server for your own memory, one department, or the whole company, with a contributors table.

team server /mcp
Caution. scope="team" requires the department head role for that team, company_viewer or superadmin; scope="company" requires company_viewer or superadmin. include_llm_summary uses the server's configured LLM.

When to use

  • An employee wants a summary of their own work this week (scope="personal").
  • A department head prepares a weekly or monthly department report (scope="team").
  • A company viewer or superadmin wants a company-wide overview (scope="company").

Parameters

NameTypeDefaultDescription
project string — (min length 1, max length 128)
period "day" | "week" | "month" | "all" | "custom" "week" —
since string — (max length 40)
until string — (max length 40)
offset integer 0 (min -520, max 0)
tz string — (min length 1, max length 64)
limit integer 20 (min 1, max 200)
scope "personal" | "team" | "company" "personal" personal = your own memory; team = one department (head, company viewer, superadmin); company = every department plus shared memory (company viewer, superadmin)
team_id string — Department ID for scope=team (pattern ^[a-zA-Z0-9_-]{1,64}$)
format "markdown" | "json" "markdown" markdown (readable) or json (structured)
include_llm_summary boolean false Add a paragraph from the server's LLM

Example

Arguments

{
  "scope": "team",
  "team_id": "eng",
  "period": "month",
  "format": "json"
}

Result shape

{
  "report": {
    "schema_version": 1,
    "project": null,
    "scope": "team:eng",
    "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": [
      {
        "user_id": "dina",
        "display_name": "Dina Developer",
        "saves": 12,
        "updates": 3,
        "deletes": 0,
        "confirms": 1
      }
    ],
    "llm_summary": null,
    "llm_summary_error": null
  },
  "saved_to": null
}

Personal memory never enters team or company reports. The dashboard's Reports page shows the same report with a period picker and a Markdown download.

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 period: today (period=day), this ISO week (week), this month (month), all time (all) or custom since/until; offset=-1 for the previous day/week/month. scope=personal reports your own memory; scope=team with team_id is the department report for its head, company viewers and superadmins; scope=company covers every department plus shared memory (company viewer, superadmin). Sections: numbers with deltas against the previous period, decisions with WHY, solutions, errors and recurring patterns, lessons, open next steps, files, entities, contributors and a daily timeline, each with record IDs for memory_get. Deterministic; include_llm_summary=true adds a paragraph from the server LLM.

Found a mistake? Open an issue on GitHub.

Search