# ContextCore MCP
A personal AI assistant built with Python and Groq that acts as an external memory layer for developers. Connects git history, Gmail, Google Calendar, and Google Drive into one intelligent daily briefing — powered by function calling and the Model Context Protocol (MCP).
> Built as a learning project to explore MCP architecture, Google APIs, LLM function calling, and agentic AI patterns.
---
## What it does
Every morning you context-switch between your email, calendar, and code just to figure out where you left off. ContextCore collapses that into one command.
**`/today`** — Good morning briefing:
- What you were coding yesterday (git commits + uncommitted changes)
- Email intelligence (categorized, prioritized, 5 mandatory counts)
- Today's calendar events
- Auto-generated action list injected into Google Calendar
**`/eod`** — End of day wrap:
- Synthesizes your day into a structured daily log saved to `memory/daily_log.md`
- Reviews incomplete calendar tasks and asks about carry over
- Briefs tomorrow's outlook
**On demand** — Ask anything:
- "Search my logs for OAuth bug" → searches daily_log.md
- "Update today's summary to sheet" → writes to Google Sheets
- "Find this file on Drive" → searches Google Drive
- "Add a reminder for my interview tomorrow" → creates Calendar event
---
## Architecture
User Input↓Groq (Llama) — reasons about which tools to call↓Tool Execution Layer — 13 tools across 5 domains↓Google APIs + Local Git + Memory Files↓Synthesized Response
**13 Tools across 5 domains:**
| Domain | Tools |
|--------|-------|
| Git | git_summary, git_current_work_status |
| Gmail | google_gmails_get, google_gmails_get_counts |
| Calendar | get/create/update/delete events |
| Drive & Sheets | get_sheet_data, write_sheet_data, manage_drive_file |
| Memory | write_day_log_summary, search_log_memory |
---
## Tech Stack
- **Python 3.12**
- **Groq API** (Llama 4 Scout — free tier)
- **FastMCP** — MCP server framework
- **Google APIs** — Gmail, Calendar, Drive, Sheets
- **GitPython** — local git history
- **Model Context Protocol (MCP)** — tool orchestration
---
## Project Structure
contextcore_mcp/├── client/ # Groq client + system prompt├── server/ # FastMCP server + tool registration├── tools/ # 13 tool implementations│ ├── gmail.py│ ├── calendar.py│ ├── drive.py│ ├── git_tools.py│ ├── daily_logger.py│ └── memory.py├── shared/ # Google OAuth shared auth├── memory/ # daily_log.md persistent memory└── config/ # .env secrets
---
## Setup
**1. Clone the repo**
```bash
git clone https://github.com/rkpraveendev/contextcore-mcp.git
cd contextcore-mcp
2. Install dependencies
uv sync
3. Google Cloud setup
- Create a Google Cloud project
- Enable: Gmail API, Google Calendar API, Google Drive API, Google Sheets API, Google Docs API
- Create OAuth 2.0 credentials (Desktop app)
- Download as
config/credentials.json - Add yourself as a test user in OAuth consent screen
4. Configure environment
# config/.env
CONTEXTCORE_GROQ_API_KEY=your_groq_key
GOOGLE_SHEET_ID=your_sheet_id
5. Setup Google Sheets
python -c "from tools.drive import setup_sheets; print(setup_sheets())"
6. Run
python -m main
Usage
Enter your query: today
Enter your query: eod
Enter your query: search my logs for OAuth
Enter your query: update today's summary to sheet
Enter your query: add reminder for interview tomorrow at 2pm
Enter your query: exit
What I learned
- MCP protocol internals and how it differs from standard API integrations
- Google OAuth 2.0 — all four token states (valid, expired, refreshable, revoked)
- LLM function calling — tool schemas, argument parsing, multi-turn tool loops
- Agentic AI patterns — when to put logic in prompts vs code
- Python async patterns for MCP tool registration
- GitPython for reading local repository state
Phase 2 Plans
- Google Tasks integration with checkbox completion
- Finance tracking
- Multi-repo support
- Web UI instead of terminal
- Notion integration
Note
This is a personal learning project built to understand MCP architecture, agentic AI, and Google Workspace APIs. Not intended for production use.