meet-memory
Provides tools for searching, analyzing, and managing your Google Calendar history as a people CRM, including meeting statistics, relationship tracking, and organization views.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@meet-memoryWho do I meet with the most?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
meet-memory
Your Google Calendar is a CRM you've been filling out for years without knowing it.
meet-memory is a source-available MCP server that turns your Google Calendar history into a searchable people CRM β and lets you talk to it through Claude (or any MCP client):
"How many meetings did I have with Mariana in 2024 vs 2025?" "Who are the 10 people I meet with the most?" "Which relationships are going cold?" "Everyone from acmecorp.example I've ever met β and when we last talked." "How many hours of meetings per month over the last year?"
Existing calendar integrations manage your upcoming events. meet-memory is about the other direction: years of history, organized around people, not events.
π Local-first β OAuth credentials and the calendar database stay on your machine. meet-memory has no telemetry or hosted backend; it calls Google's API read-only and returns only the requested tool results to your MCP client.
π§ People-centric β attendees become contacts, email domains become organizations, meetings become relationship history.
β‘ Incremental β first sync backfills up to 10 years; after that, syncs are fast deltas.

Demo mode. Every name above is fabricated: --demo seeds a fake address book so the tool can be shown without exposing anyone.
Try it without a Google account
Demo mode seeds fake data so you can feel the product before touching OAuth. Build it once:
git clone https://github.com/arthurglv/meet-memory
cd meet-memory
npm install && npm run buildThen register it in Claude Code:
claude mcp add meet-memory -- node "$PWD/dist/index.js" --demoOr in Claude Desktop (claude_desktop_config.json), using the absolute path to the folder you cloned:
{
"mcpServers": {
"meet-memory": {
"command": "node",
"args": ["/absolute/path/to/meet-memory/dist/index.js", "--demo"]
}
}
}Now ask: "Who do I meet with the most?"
Not on npm yet, so there is no
npxone-liner. Building takes about a minute.
Related MCP server: workspace-mcp
Real setup (your calendar)
Create Google OAuth credentials (one time, ~5 minutes): follow docs/oauth-setup.md. You'll end up with a
client_secret_*.jsonfile. meet-memory only requests the read-only calendar scope.Configure your MCP client. In Claude Code, from the folder you cloned:
claude mcp add meet-memory --scope user --env GOOGLE_OAUTH_CREDENTIALS=$HOME/.meet-memory/client_secret.json -- node "$PWD/dist/index.js"Or in Claude Desktop:
{
"mcpServers": {
"meet-memory": {
"command": "node",
"args": ["/absolute/path/to/meet-memory/dist/index.js"],
"env": {
"GOOGLE_OAUTH_CREDENTIALS": "/absolute/path/to/client_secret.json"
}
}
}
}First run: ask Claude to run
sync_calendar. A browser tab opens for Google login; after that, the backfill runs (a couple of minutes for years of history). Subsequent syncs are incremental and take seconds.More than one account? Ask for
sync_calendarwithadd_accountand pick the other Google account. Then uselist_calendarsandset_calendar_roleto say which calendars hold meetings and which are to-do lists.
Tools
Tool | What it answers |
| Pulls your history into the local database (backfill, then incremental) |
| "Who do I meet with the most?" β the CRM view, filterable by period/org |
| Full profile: meetings, hours, first/last contact, per-year history |
| Find meetings by person, org, text, or date range |
| Company view: everyone you know at a domain |
| Meeting load per week/month/year (optionally including solo focus blocks) |
| People you used to see often but haven't lately |
| Addresses that look like the same person (suggestions only) |
| Confirm that two addresses are one person |
| Undo a merge |
| Write a Markdown report of everyone to a local file |
| Connected accounts and their calendars |
| Mark a calendar as meetings or tasks |
| Mark someone as personal, keeping them out of the work ranking |
| Database totals and auth state |
How it works
Google Calendar API ββread-onlyβββΆ sync engine βββΆ ~/.meet-memory/meet-memory.db (SQLite)
β²
Claude / MCP client ββββββββββ stdio ββ 15 query tools ββRead-only, permanently. The only Google endpoints called are
events.listandcalendarList.list; the test suite fails the build if a write call or a second OAuth scope ever appears. meet-memory cannot create, move or delete anything on your calendar.Several Google accounts. Each login gets its own token:
sync_calendarwithadd_accountconnects another one. Every calendar can be marked asmeetingsortasks; task calendars remain searchable and can be included in time stats, but do not feed the people ranking.Work and personal contacts can share a calendar. Marking someone personal preserves their history and keeps them searchable while excluding them from the professional ranking. Categories are always chosen by the user, never inferred.
Attendees are resolved into people by email; free-mail domains (gmail, outlookβ¦) are not treated as organizations.
One person often has several addresses (work, personal, their own company).
suggest_mergesproposes; nothing is ever merged without you confirming throughmerge_people.Only past events count. A backfill makes Google expand recurring series years ahead β those are appointments, not history.
Solo events (no other attendees) are excluded from meeting counts β they're time blocks, not meetings β but can be included in time stats with
include_solo.Cancelled events are dropped; recurring events are expanded into instances.
Env vars:
MEET_MEMORY_DB(db path),MEET_MEMORY_BACKFILL_YEARS(default 10),MEET_MEMORY_TOKENS(token path).
Privacy
meet-memory operates no hosted service, account system or telemetry pipeline. Your Google OAuth credentials, refresh tokens and SQLite database remain in ~/.meet-memory/ with owner-only permissions.
Tool results are delivered to the MCP client you configure. If that client uses a cloud-hosted model, the specific names, addresses, meeting titles or aggregates returned by a tool call may be processed by that model provider under its own privacy policy. Use a local model or avoid sensitive queries when that trust boundary is not acceptable.
The OAuth scope is read-only (calendar.readonly) and the sign-in flow uses PKCE β see SECURITY.md for the full threat model, guarantees and known limitations. Using the Calendar API is free: personal use stays far below Google's free quota.
Development
git clone https://github.com/arthurglv/meet-memory
cd meet-memory
npm install
npm run build
npm test # boots the server in demo mode and exercises every tool
npm run dev # run from source (tsx)npm test needs a prior npm run build: it spawns the compiled server, not the TypeScript.
Roadmap
Publish to npm, so setup is
npx meet-memoryinstead of clone and buildOutlook / iCloud providers
Meeting notes & transcript enrichment (Meet, Fathom, Circleback)
CSV export and HTML dashboards
Contributions welcome β open an issue first for anything non-trivial.
License
FSL-1.1-MIT β the Functional Source License, MIT Future License.
Use it, copy it, modify it, redistribute it, run it inside your company, build client work on top of it. The one thing you may not do is repackage it as a commercial product or service that competes with meet-memory. Two years after each release, that release converts automatically to the plain MIT license.
This is source-available, not OSI open source: the OSI definition does not allow restrictions on commercial use.
This server cannot be installed
Maintenance
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
- Alicense-qualityDmaintenanceA Model Context Protocol server that enables natural language interaction with Google Calendar, allowing users to view, create, update, and delete calendar events through context-aware operations.Last updated2161MIT
- AlicenseBqualityBmaintenanceFull natural language control over Google Calendar, Drive, Gmail, Docs, Sheets, Slides, Forms, Tasks, Contacts, and Chat through MCP clients.Last updated100MIT
- Alicense-qualityDmaintenanceUnified MCP server for calendar access connecting Exchange (EWS), Google Calendar, and CalDAV through a single MCP interface, enabling multi-calendar event management via natural language.Last updatedMIT
- Alicense-qualityDmaintenanceEnables natural language interaction with Google Calendar, including creating, updating, deleting events and managing recurring events through MCP.Last updated216MIT
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
People + life-in-days knowledge for AI agents. Public MCP; x402 on Base; OAuth for private tools.
The personal context layer for AI: your profile and files, read by any MCP client over OAuth.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/arthurglv/meet-memory'
If you have feedback or need assistance with the MCP directory API, please join our Discord server