Skip to main content
Glama
Daemon-Killer

google-activity-assistant

Google Activity Assistant

Local-first tools over your Google Takeout activity — keyword search in SQLite, MCP tools for any compatible client, and an optional local web dashboard.

Not a live Google API. You export Takeout once (or periodically), ingest locally, then query with Claude Desktop, Cursor, Grok, or gaa search.

License: MIT Python 3.12+

Doc

Use when

docs/HOW_TO.md

Full walkthrough: what it can/can’t do, Takeout, CLI, MCP, FAQ

docs/MCP_AND_TAKEOUT.md

Short MCP + export reference

SECURITY.md

Privacy / what not to commit

CONTRIBUTING.md

Dev setup & PRs


Why

Mainstream chatbots don’t have your Search/YouTube history. This project turns a Takeout export into:

  1. Structured + full-text search (SQLite + FTS5)

  2. MCP tools so agents can answer with citations from your real activity

  3. Optional local dashboard (timeline / journeys)

Privacy-first: processing stays on disk under data/ (gitignored).


Related MCP server: Hoard

Similar work & positioning

This is not “the only personal-data project” and not “the only MCP.” Adjacent work exists; the packaging here is specific.

Category

Examples / reality

Overlap with this repo

Google Takeout itself

Official takeout.google.com

Data source only

Offline Takeout parsers / privacy research

Scripts, blogs, personal-data tooling

Ingest inspiration

Personal RAG (“chat with my notes/PDFs”)

Common portfolio pattern

Same idea (local memory + LLM), different corpus

MCP for browser history

e.g. local browser-history MCP servers

Same shape (history → tools), not Google Takeout

Google Workspace / product MCPs

Gmail, Drive, Calendar, Looker, SecOps, etc.

Live product APIs — not My Activity dumps

Live “My Activity API” for third parties

Does not exist as a simple public stream

Why we use Takeout + local DB

What this project emphasizes

  • Takeout-first Search / YouTube history (JSON and HTML history files)

  • SQLite + FTS5 as system of record (portable, offline)

  • MCP tools so any compatible host can query your export with citations

  • Explicit honesty: no live My Activity sync, multi-GB media exports out of scope for v0.1

How to describe it (interviews / README pitch)

Prefer: “Most Google MCPs hit Drive/Gmail; this wires Takeout My Activity / YouTube history into a local index and MCP tools.”
Avoid: “Nobody has ever built personal history + AI.”


Features (v0.1)

Feature

Status

Ingest Takeout JSON (My Activity / YT history)

Ingest Takeout HTML watch/search history

Selective zip extract (skips huge media)

SQLite + FTS5 keyword search

CLI: ingest, status, search

MCP: search_activity, get_activity_stats, get_db_info

Local FastAPI + React dashboard (serve-ui)

Synthetic fixtures for demos/tests

Embeddings / hybrid RAG

🔜 Phase 2

Google Data Portability auto-sync

🔜 later


Quick start

Requirements

  • Python 3.12+

  • uv (recommended)

git clone https://github.com/Daemon-Killer/google-activity-assistant.git
cd google-activity-assistant
uv sync

Sample data (no Google account needed)

uv run gaa ingest-fixtures
uv run gaa status
uv run gaa search "React Server"

Your Takeout

  1. Open takeout.google.com

  2. Prefer My Activity (Search + YouTube) and/or YouTube → History, format JSON if available (HTML also works)

  3. Avoid exporting full Photos/video libraries if you only want activity search

  4. Ingest:

uv run gaa ingest /path/to/takeout.zip
# or extracted folder
uv run gaa ingest /path/to/Takeout
uv run gaa status

Real exports and data/activity.db are gitignored. Never commit them.


MCP (Claude / Cursor / Grok / …)

Start the stdio server:

uv run gaa serve-mcp

Grok Build (~/.grok/config.toml)

[mcp_servers.google_activity]
command = "uv"
args = [
  "run",
  "--directory",
  "/absolute/path/to/google-activity-assistant",
  "gaa",
  "serve-mcp",
]
enabled = true
startup_timeout_sec = 60

Claude Desktop

claude_desktop_config.json:

{
  "mcpServers": {
    "google-activity": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/google-activity-assistant",
        "gaa",
        "serve-mcp"
      ]
    }
  }
}

Tools

Tool

Purpose

search_activity

FTS search + optional product/date filters

get_activity_stats

Counts / date range

get_db_info

Local paths only

After ingest, ask: “Search my YouTube activity for Devdas and cite titles + dates.”

Full walkthrough (export, FAQ, demo script): docs/HOW_TO.md · MCP config short ref: docs/MCP_AND_TAKEOUT.md


Local dashboard

# If web/dist is missing:
cd web && npm install && npm run build && cd ..

uv run gaa serve-ui
# → http://127.0.0.1:8788

API routes under /api/* (stats, activity list, journeys). Binds to localhost by default.


Project layout

google-activity-assistant/
├── src/google_activity_assistant/
│   ├── cli.py            # gaa commands
│   ├── mcp_server.py     # FastMCP tools
│   ├── parse_takeout.py  # JSON + HTML parsers
│   ├── ingest.py
│   ├── db.py             # SQLite + FTS5
│   ├── search.py
│   ├── journeys.py       # search→watch proximity
│   └── api.py            # FastAPI dashboard API
├── web/                  # React + Vite dashboard
├── fixtures/             # synthetic Takeout samples
├── docs/
│   ├── HOW_TO.md         # full user guide
│   └── MCP_AND_TAKEOUT.md
├── tests/
└── data/                 # gitignored — your DB + exports

Development

uv sync --extra dev
uv run pytest

See CONTRIBUTING.md.


Privacy & license

Takeout is Google’s official data export. This project is unaffiliated with Google.


Roadmap

  1. Hybrid retrieval (embeddings + FTS)

  2. Better multi-product My Activity coverage

  3. Optional Data Portability OAuth re-import (bulk jobs, not live My Activity)

  4. Packaging / one-command installers

PRs welcome.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP server for AI dialogue using various LLM models via AceDataCloud

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Daemon-Killer/google-activity-assistant'

If you have feedback or need assistance with the MCP directory API, please join our Discord server