Skip to main content
Glama
google-ai-history-mcp

google-ai-history-mcp

by travispflanz

google-ai-history-mcp — Google AI & Gemini Chat History Importer for Google Antigravity (MCP Server & CLI)

CI License: MIT MCP Server

google-ai-history-mcp is an open-source Model Context Protocol (MCP) server and CLI sync engine that brings all of your Google AI conversations, prompts, and search sessions onto your computer—indexed with SQLite FTS5 full-text search, mirrored as local Markdown files, and accessible by dropping any Google AI URL directly into chat—so you can continue sessions and build real projects from them inside Google Antigravity, Claude Code, Cursor, Windsurf, Cline, or Gemini CLI.


Why This Exists & How It Changes Your Workflow

1. Drop a URL & Say "Continue This Chat" or "Build a Project From This"

You don't even have to run a full sync first. You can paste a URL from gemini.google.com/app/..., a shared link (gemini.google.com/share/...), a Google Search AI Mode session (google.com/search?udm=50...), a Google AI Studio prompt (aistudio.google.com/prompts/...), or a NotebookLM notebook directly into Google Antigravity and say:

  • "I want to continue this chat: https://gemini.google.com/app/..."

  • "Build a project from this session: https://gemini.google.com/app/..."

  • "Start a new project in my workspace from this chat line: https://aistudio.google.com/prompts/..."

Antigravity automatically calls fetch_google_ai_chat_url, pulls every prompt, response, code block, and thinking trace from that URL, saves it locally as Markdown + SQLite FTS5, and picks up right where you left off.

2. Graduate a "Small One-Off Question" into a Full Project

Some of the best projects start by accident as a quick one-off interaction in the browser:

  • You do a Google Search, click "Show more" on the AI Overview, and start asking follow-up questions in "Ask anything" (AI Mode).

  • You brainstorm an app idea or debug a script in gemini.google.com on your phone or laptop.

  • You prototype a system prompt in Google AI Studio (aistudio.google.com).

When that "small one-off chat" turns into something bigger that needs real files, a Git repository, terminal execution, and autonomous subagents, you no longer have to copy-paste 30 turns of chat history or start from scratch. Just drop the URL (or search your synced history by keyword) in Google Antigravity and roll that conversation directly into a full engineering workspace.

3. New to Google Antigravity? Bring Your Entire Google AI History With You

When you start using Google Antigravity, months or years of your past conversations, architectural decisions, prompts, and research shouldn't stay trapped across disconnected web tabs (gemini.google.com, Google Search AI Mode, AI Studio, NotebookLM, Ask Maps, and YouTube AI). google-ai-history-mcp unifies all of your past Google AI interactions into a local, privacy-first knowledge base on your machine from day one.


Related MCP server: chatgpt-context-mcp

Supported Google AI Surfaces & Storage Locations

Google stores your AI interactions across one central activity hub (myactivity.google.com) plus four product-specific thread stores:

Google AI Surface

Where Google Stores It

How google-ai-history-mcp Pulls It In

source Tag

1. Direct URL Drop (Any Surface)

Live web session (gemini.google.com/app/..., /share/..., udm=50, aistudio.google.com/prompts/..., notebooklm.google.com/notebook/...)

Instant on-demand extraction via fetch_google_ai_chat_url(url) or google-ai-history fetch <url>

browser_gemini, url_gemini_share, browser_aistudio, etc.

2. Central Google My Activity Hub (myactivity.google.com)

Unified chronological log of Gemini Apps, Search AI Mode, Circle to Search, Google Lens, Ask Maps, YouTube AI, and Assistant

Live Chrome CDP sync (--target myactivity) or Google Takeout (My Activity .zip/.json/.html)

myactivity_gemini, myactivity_search_ai, takeout_*

3. Gemini Web App (gemini.google.com/app)

Multi-turn sidebar conversation threads

Live Chrome CDP sidebar sync (--target gemini) + Takeout (My Activity → Gemini Apps)

browser_gemini, takeout_gemini

4. Google Search "AI Mode" & AI Overviews (google.com/search?udm=50)

When you click "Show more" on an AI Overview and "Ask anything" to continue chatting in AI Mode (udm=50 history sidebar)

Live Chrome CDP AI Mode sync (--target aimode) + Takeout (My Activity → Search)

browser_search_ai_mode, takeout_search_ai_mode

5. Google AI Studio (aistudio.google.com)

Auto-saved as extensionless JSON files in Google Drive/Google AI Studio/ & aistudio.google.com/library

Direct folder/file import (chunkedPrompt & contents JSON, including thinking blocks) + Live Chrome sync (--target aistudio)

aistudio, browser_aistudio

6. NotebookLM (notebooklm.google.com)

NotebookLM notebooks, source summaries, and chat notes

Live Chrome sync (--target notebooklm) + Takeout NotebookLM folder import

browser_notebooklm, notebooklm

7. Ask Maps, YouTube AI & Assistant

Logged under My Activity → Maps / YouTube / Assistant

Takeout MyActivity.json / MyActivity.html importer

takeout_ask_maps, takeout_youtube_ai, takeout_assistant


MCP Tools Exposed to Google Antigravity & MCP Clients

MCP Tool Name

Parameters

What It Does

fetch_google_ai_chat_url

url, login_timeout_sec=45

Drop-a-URL tool: Pulls any single Google AI chat/session directly from its URL, saves it locally, and returns the full transcript so you can continue the chat or build a project from it.

get_google_ai_chat

chat_id, login_timeout_sec=45

Retrieves the full multi-turn conversation transcript and local .md file path by ID, partial title, or URL (automatically fetches live if the URL isn't cached yet).

search_google_ai_chats

query, limit=20

Runs a fast SQLite FTS5 full-text search across all prompts and responses with highlighted snippets.

list_google_ai_chats

limit=50, offset=0, source=None

Lists locally synced/imported Google AI chats (optionally filtered by source).

sync_google_ai_chats_from_browser

target="gemini", max_chats=50, login_timeout_sec=180

Attaches to Chrome over CDP (port 9222) and bulk-syncs threads from 'all', 'myactivity', 'gemini', 'aimode', 'aistudio', or 'notebooklm'.

import_google_ai_takeout_or_files

path

Imports a Google Takeout .zip, MyActivity.json, MyActivity.html, a Google AI Studio Drive folder, or exported JSON/Markdown files.


System Requirements & Expected First-Run Process (For Humans & AI Agents)

Additional Requirements (Beyond Google Antigravity)

To run google-ai-history-mcp on your computer, you need:

  1. Google Chrome or Microsoft Edge installed locally (used via Playwright over Chrome DevTools Protocol on 127.0.0.1:9222 for live URL fetching and browser syncing; not required for offline Takeout/Drive imports).

  2. uv (Astral uv) and Python 3.11+ (3.11, 3.12, or 3.13).

  3. A Google Account signed into your Google AI surfaces (gemini.google.com, myactivity.google.com, aistudio.google.com, etc.) — except when importing public gemini.google.com/share/... links or offline Takeout files, which require no login.

Expected Process: How First-Run Sign-In & Persistent Sync Works

Even if you are already signed into Google in your normal everyday Chrome window, Google Chrome v136+ blocks external debugging connections (--remote-debugging-port) on your default Chrome profile while Chrome is open. To keep your main browser safe and untouched, google-ai-history-mcp manages a dedicated, persistent Chrome sync profile at ~/.gemini/google_ai_history/chrome_profile:

  1. First Run (One-Time Google Sign-In):

    • The first time you ask Antigravity to import a URL or sync your history, google-ai-history-mcp launches a visible Chrome window on your desktop (--remote-debugging-port=9222 --user-data-dir=~/.gemini/google_ai_history/chrome_profile) and automatically clicks the "Sign in" button if you aren't logged into that profile yet.

    • Sign into your Google account once in that Chrome window.

    • As soon as sign-in finishes, google-ai-history-mcp automatically navigates back to your exact target URL (e.g., https://gemini.google.com/app/<id>), waits for the conversation turns to render, extracts the full chat, writes the Markdown file to ~/.gemini/google_ai_history/markdown/, and indexes it in ~/.gemini/google_ai_history/chats.db.

  2. All Subsequent Runs (Zero Sign-In Needed):

    • Because your login cookies are persisted inside ~/.gemini/google_ai_history/chrome_profile, every future URL drop or sync reuses that authenticated session automatically without asking you to log in again.

  3. Critical Execution Rule for AI Agents (Antigravity, Claude Code, Cursor):

    • Always invoke the MCP tools (fetch_google_ai_chat_url, get_google_ai_chat, sync_google_ai_chats_from_browser) directly instead of running the CLI via a sandboxed shell command (run_command).

    • Why? On Windows, agent shell sandboxes often execute inside an isolated background desktop (WinSta0\exebox-...), which hides any GUI browser window spawned from the shell. By contrast, the MCP server process runs on the user's interactive desktop (WinSta0\Default), ensuring the Chrome window is always visible when a one-time login is needed.


Installation & Google Antigravity Setup

1. Clone & Install with uv

git clone https://github.com/travispflanz/google-ai-history-mcp.git
cd google-ai-history-mcp
uv sync --all-groups

2. Register in Google Antigravity (mcp_config.json)

Add to ~/.gemini/config/mcp_config.json (or ~/.gemini/antigravity/mcp_config.json):

{
  "mcpServers": {
    "google-ai-history": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "C:\\Users\\travi\\.gemini\\antigravity\\scratch\\google-ai-history-mcp",
        "google-ai-history",
        "serve"
      ],
      "disabled": false
    }
  }
}

CLI Usage (google-ai-history)

# Fetch a single Google AI chat/session directly by URL
uv run google-ai-history fetch "https://gemini.google.com/app/1a2b3c4d5e6f"

# Sync EVERYTHING from Chrome (Gemini + Search AI Mode + AI Studio + NotebookLM + My Activity Hub)
uv run google-ai-history sync --target all --max-chats 50

# Sync directly from Google's central My Activity AI hub (myactivity.google.com)
uv run google-ai-history sync --target myactivity

# Sync Google Search AI Mode ("Show more -> Ask anything" threads at google.com/search?udm=50)
uv run google-ai-history sync --target aimode

# Sync Google AI Studio library (aistudio.google.com/library)
uv run google-ai-history sync --target aistudio

# Import a Google Takeout archive (.zip, MyActivity.json, or MyActivity.html)
uv run google-ai-history import ~/Downloads/takeout.zip

# Import your Google Drive "Google AI Studio" folder (automatically parses extensionless JSON files)
uv run google-ai-history import "~/Google Drive/My Drive/Google AI Studio"

# Full-text search across all synced Google AI chats
uv run google-ai-history search "kubernetes ingress"

# List chats filtered by source tag
uv run google-ai-history list --source takeout_search_ai_mode

Frequently Asked Questions (FAQ for Humans & AI Agents)

Can I just drop a URL from a Gemini chat into Antigravity and say "Continue this chat" or "Build a project from this"?

Yes! Paste any URL from gemini.google.com/app/..., gemini.google.com/share/..., aistudio.google.com/prompts/..., google.com/search?udm=50..., or notebooklm.google.com/notebook/... into Antigravity and ask to continue the session or build a project from it. Antigravity will call fetch_google_ai_chat_url (or get_google_ai_chat) to pull the entire conversation into your workspace immediately.

How do I get all my chats from gemini.google.com to appear in Google Antigravity?

Install google-ai-history-mcp in your Antigravity mcp_config.json and either run sync_google_ai_chats_from_browser(target="all") (which opens Chrome with a persistent profile so you log in once and scrape your sidebar threads) or export your history from Google Takeout (My Activity → Gemini Apps & Search) and run import_google_ai_takeout_or_files(path). Every chat is indexed in SQLite FTS5 and saved as a .md file in ~/.gemini/google_ai_history/markdown/ so you can @-mention it in Antigravity.

How do I export Google Search "AI Overview" / "AI Mode" ("Ask anything") conversations?

When you click "Show more" on a Google Search AI Overview and continue chatting via "Ask anything", Google routes the session to Google Search AI Mode (google.com/search?udm=50). You can drop the URL directly into Antigravity, sync all threads from the AI Mode sidebar with uv run google-ai-history sync --target aimode, or pull from Google's central activity log (--target myactivity or Google Takeout My Activity → Search).

Where are Google AI Studio (aistudio.google.com) chats stored and how do I import them?

Google AI Studio automatically saves your prompts and chat histories as extensionless JSON files inside a Google AI Studio folder in your Google Drive. Point import_google_ai_takeout_or_files at that folder (or drop an aistudio.google.com/prompts/... URL / run --target aistudio), and google-ai-history-mcp extracts the runSettings, systemInstruction, thinking traces (isThought), and chunkedPrompt.chunks into searchable Markdown and SQLite FTS5 records.


Development & Continuous Integration (CI)

This repository uses Ruff (linting & formatting), Mypy (static type checking), and Pytest (85%+ coverage gate) enforced via GitHub Actions across Ubuntu and Windows (Python 3.11, 3.12, 3.13).

uv run ruff check .
uv run ruff format --check .
uv run mypy src
uv run pytest --cov=google_ai_history --cov-report=term-missing --cov-fail-under=85

Available Tools

6 tools
fetch_google_ai_chat_urlFetch Google Ai Chat UrlC

Pull a Google AI chat/session directly from a URL to continue or build from it.

NameRequiredDescriptionDefault
urlYes
login_timeout_secNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. It does not disclose that the operation likely requires an authenticated browser session (only hinted at obliquely by the login_timeout_sec parameter), whether the fetched chat is persisted locally or returned transiently, or what happens if the URL is inaccessible or the login times out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no filler, so it is concise and front-loaded. However, the brevity comes at the cost of specification rather than by eliminating redundancy — the second half of the sentence ("to continue or build from it") adds ambiguity instead of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the definition still omits authentication behavior, URL format expectations, side effects (whether a local record is created), and error conditions. For a two-parameter network-bound fetch tool with zero annotation coverage, this leaves too much for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not close the gap. "From a URL" loosely maps to the required url parameter but says nothing about accepted URL formats (share links vs. session URLs), and login_timeout_sec — clearly behaviorally significant at a 45s default — is never mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Pull a Google AI chat/session directly from a URL" gives a rough verb+resource, but the verb "pull" is ambiguous (network fetch? import? local copy?) and the trailing "to continue or build from it" muddies rather than sharpens intent. It also never distinguishes itself from the closest siblings get_google_ai_chat (fetch by ID) and sync_google_ai_chats_from_browser, so an agent cannot confidently route between them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage signal is the prepositional phrase "from a URL," which implies the trigger condition but is never stated as such. There is no when-to-use/when-not guidance, no mention of the alternatives (import from Takeout files, browser sync, list/search/get by ID), and no prerequisites listed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_google_ai_chatGet Google Ai ChatB

Retrieve a full Google AI conversation by chat ID, title, or direct URL.

NameRequiredDescriptionDefault
chat_idYes
login_timeout_secNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden and does little: 'Retrieve' implies a read, but nothing is said about authentication/browser login needs, though the undocumented login_timeout_sec parameter strongly implies a login flow. It also says nothing about failure modes for unknown chat IDs or size/truncation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler, leading with the verb and resource. Nothing is wasted, though brevity comes at the cost of the missing detail noted elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the description adequately conveys the core lookup. The remaining gap is the undocumented login_timeout_sec and the undefined boundary with fetch_google_ai_chat_url.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds real value by revealing that the required string chat_id accepts a chat ID, a title, or a direct URL, but it never explains login_timeout_sec (default 45), so one of only two parameters remains fully opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Retrieve a full Google AI conversation'), which is clearer than the tautological title. However, it does not distinguish itself from the sibling fetch_google_ai_chat_url, and claiming it can retrieve by 'direct URL' directly overlaps with that sibling's apparent purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage in that it accepts three lookup key forms (ID, title, URL), which hints at when it applies. But it gives no explicit when-to-use versus list_google_ai_chats, search_google_ai_chats, or fetch_google_ai_chat_url, leaving the agent to guess which retrieval tool to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_google_ai_takeout_or_filesImport Google Ai Takeout Or FilesB

Import Google AI chats from Takeout, AI Studio Drive folder, NotebookLM, or JSON/MD.

NameRequiredDescriptionDefault
pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden, and it discloses almost nothing: not whether the import writes into a local store, whether existing chats are deduplicated or overwritten, whether re-running is safe, or whether it requires authentication. For a data-ingesting mutation tool, this is a substantial gap, with only the source enumeration adding any context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler and the source list placed immediately after the verb. It is efficiently sized, though its terseness is part of why behavioral and parameter detail is missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a one-parameter ingest tool with zero annotation coverage the description leaves the write behavior, path expectations, and re-import semantics undefined. An agent could not confidently predict the effect of calling it beyond 'something gets imported.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single 'path' parameter, so the description must compensate. The source enumeration partially does so by indicating that the path may point at a Takeout archive, a Drive folder, or JSON/MD files, but it never says whether a file or directory is expected, which formats/extensions are valid, or whether paths are absolute or relative.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Import') plus resource ('Google AI chats') and an enumerated set of accepted sources (Takeout, AI Studio Drive folder, NotebookLM, JSON/MD). This implicitly separates it from the sibling sync_google_ai_chats_from_browser, but it never names that sibling or states the distinction explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Listing the supported source types implies the situation in which to use it (you already have an export/archive), which is more than nothing. However, there is no explicit guidance on when to prefer this over sync_google_ai_chats_from_browser, no prerequisites, and no exclusions or re-import caveats.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_google_ai_chatsList Google Ai ChatsB

List locally stored Google AI chats (Gemini, Search AI Mode, AI Studio, Ask Maps, etc.).

NameRequiredDescriptionDefault
limitNo
offsetNo
sourceNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. "Locally stored" usefully discloses that results come from a local store rather than a live service, implying prior import/sync, but it says nothing about pagination defaults, ordering, empty-result behavior, or result size limits for a 3-parameter listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence that front-loads the verb and resource with the scope qualifier immediately after. Nothing is wasted, though the extreme brevity leaves gaps that a second sentence could have cheaply filled.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and the tool is conceptually simple. Still, for a paginated list tool with zero-documented parameters and no annotations, the definition leaves the agent guessing about page size behavior and how to narrow by source.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does not. The enumerated sources (Gemini, Search AI Mode, AI Studio, Ask Maps) loosely suggest what the `source` filter accepts, but it never maps them to that parameter or gives exact string values, and `limit`/`offset` are entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List ... Google AI chats") and adds qualifying scope with "locally stored" plus a concrete enumeration of sources (Gemini, Search AI Mode, AI Studio, Ask Maps). This is enough to distinguish it from the more investigative sibling search_google_ai_chats, though it never names the sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word "List" plus "locally stored" implies a browse-all operation rather than a query, which hints at when to prefer it over search_google_ai_chats or get_google_ai_chat. However, there is no explicit when-to-use/when-not statement, no mention of prerequisites such as importing or syncing data first, and no routing to any of the five siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_google_ai_chatsSearch Google Ai ChatsB

Full-text search (SQLite FTS5) across all synced Google AI prompts and responses.

NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. It usefully discloses that matching is SQLite FTS5 (so query text is interpreted as full-text syntax, not substring matching) and that both prompts and responses are indexed, but it says nothing about read-only safety, ranking/ordering, or whether the default limit truncates results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the FTS5 parenthetical earns its place by signaling query syntax. It is very short, though, so the efficiency comes at the cost of the missing usage and parameter detail noted above.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, and the tool is simple (two parameters, one required). Still, for a search tool with no annotations and zero schema coverage, an agent gets no guidance on query syntax, result ordering, or limit behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both parameters. The description compensates partly by implying 'query' is a full-text expression searched over both prompts and responses, but it never explains 'limit', its default of 20, or any maximum, leaving half the parameters undocumented everywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Full-text search') and a specific resource ('all synced Google AI prompts and responses'), which is enough to distinguish it from the list/get siblings by intent. It stops short of naming those siblings explicitly, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance: nothing says to search by keyword rather than enumerate with list_google_ai_chats, or to use get_google_ai_chat once a chat is identified. The phrase 'across all synced' weakly implies global scope, but no alternative or exclusion is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_google_ai_chats_from_browserSync Google Ai Chats From BrowserC

Sync Google AI chats via Chrome ('all', 'myactivity', 'gemini', 'aimode', 'aistudio').

NameRequiredDescriptionDefault
targetNogemini
max_chatsNo
login_timeout_secNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses almost nothing. It omits that this drives a Chrome browser session, likely requires an interactive Google login (implied only by the parameter name login_timeout_sec), and says nothing about duration, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with zero padding, front-loading the action and resource before the option list. It says as much as it can within its limited scope, though the scope itself is thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but a browser-automation sync tool with a login timeout and three undocumented parameters needs more than one line. Nothing explains the interactive-login flow or what the sync actually does to existing data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does add real value by enumerating the accepted target values ('all', 'myactivity', 'gemini', 'aimode', 'aistudio'), but it never says which parameter those map to and leaves max_chats and login_timeout_sec entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Sync Google AI chats via Chrome") and enumerates the target scopes, so the agent knows this pulls chats through a browser. It does not differentiate itself from siblings like import_google_ai_takeout_or_files, which is why it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus the import, list, search, or fetch siblings. The target-value list implies supported sources but never states a selection condition or any when-not-to-use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.2.0
    • First observedfetch_google_ai_chat_url
    • First observedget_google_ai_chat
    • First observedimport_google_ai_takeout_or_files
    • First observedlist_google_ai_chats
    • First observedsearch_google_ai_chats
    • First observedsync_google_ai_chats_from_browser

TDQS

B3.1/5.0

Scored across 6 tools

Disambiguation3/5

The three ingestion tools (import from files, sync from browser, fetch from URL) are distinguished by their source, and the descriptions do explain the differences. However, get_google_ai_chat explicitly accepts a 'direct URL' while fetch_google_ai_chat_url also pulls a chat by URL, creating a genuine overlap that could cause misselection.

Naming Consistency4/5

All tools use snake_case with a verb_noun pattern (import_*, sync_*, list_*, search_*, get_*, fetch_*). The two ingestion names are unusually long and tack on qualifiers ('_or_files', '_from_browser'), but the convention itself is readable and consistent.

Tool Count4/5

Six tools is a reasonable scope for a chat-archive server covering ingest, list, search, and retrieve. Nothing feels redundant in count, though the two URL/file ingestion paths could arguably be folded into fewer tools.

Completeness4/5

The ingestion-plus-retrieval lifecycle is well covered: import, sync, list, search, get, fetch. There are no delete, export, or tagging/metadata operations, but these are minor gaps an agent can work around outside the server.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A remote MCP server that enables AI coding agents to search and retrieve context from imported AI chat history (ChatGPT, Claude, Codex, Claude Code) stored in Google Drive, with zero server-side storage and OAuth-based privacy.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for querying your local Google Takeout activity (Search/YouTube history) via SQLite/FTS5. Provides tools for keyword search, activity stats, and database info, enabling AI assistants to cite your personal history.
    3
    MIT