freshcrate
Skin:/
Home > MCP Servers > PersonalAIEmployee

PersonalAIEmployee

Hybrid cloud-local AI Employee that runs 24/7 on a cloud VM, monitors Gmail/WhatsApp, drafts responses, and queues approvals via git-synced Obsidian vault. Human-in-the-loop safety gates for email, so

Why this rank:Release freshnessStrong adoptionHealthy release cadence

Description

Hybrid cloud-local AI Employee that runs 24/7 on a cloud VM, monitors Gmail/WhatsApp, drafts responses, and queues approvals via git-synced Obsidian vault. Human-in-the-loop safety gates for email, social media, and Odoo ERP. Platinum tier.

README

Personal AI Employee

Hackathon Tier: Platinum | All 7 Capabilities Live

A hybrid cloud-local autonomous AI agent that monitors multiple sources (filesystem, Gmail, WhatsApp), processes tasks through a git-synced Obsidian vault pipeline, and executes actions via MCP servers with human-in-the-loop safety gates. The cloud VM (Ubuntu 24.04) works 24/7 even when your laptop is off โ€” detecting events, drafting responses, and queueing approval requests. When you come back online, review and approve with a single file move. Built for the 2026 Personal AI Employee Hackathon.

Live Capabilities

# Capability Status What It Does
1 Gmail Live Read, send, manage emails via natural language
2 WhatsApp Monitoring Live 24/7 message detection, urgency classification
3 Odoo ERP Verified Invoices, payments, financial summaries
4 Facebook Posting Live AI drafts content, you approve, it publishes
5 CEO Briefing Live Weekly report: financials, tasks, social, bottlenecks
6 Scheduling Ready 8 automated recurring jobs (Gmail, inbox sweep, reports)
7 Health Monitoring Active Circuit breakers for 5 services, auto-recovery

Safety Model (Human-in-the-Loop)

Risk Level Example What Happens
Routine Read emails, list invoices Auto-executes
Sensitive Send email, post to social You approve first
Critical Register payment, delete data Blocked until you confirm

Tiers

Bronze โ€” File Watcher + Vault Processing

  • Filesystem watcher (Watchdog) monitors ~/Desktop/DropForAI
  • Creates metadata .md files in Needs_Action/ with YAML frontmatter
  • 3 Claude Code skills: vault-interact, process-needs-action, check-and-process-needs-action
  • Routes by risk: routine โ†’ Done/, sensitive/critical โ†’ Pending_Approval/

Silver โ€” Multi-Source Orchestration

  • 4 watchers: filesystem, Gmail (OAuth2), WhatsApp (Playwright), daily scheduler (APScheduler)
  • Central orchestrator: priority queue, batch processing, HITL routing
  • Action executor: importlib-based function dispatch with approval gates
  • Ralph Wiggum retry loop: exponential backoff for fault tolerance
  • PM2 process management

Gold โ€” MCP Servers + External Integrations

  • 4 MCP servers via FastMCP (stdio transport):
    • fte-email โ€” Gmail draft/send/search (sensitive HITL)
    • fte-social โ€” Facebook/Instagram/Twitter posting (sensitive HITL)
    • fte-odoo โ€” Odoo 19 ERP invoices/payments/financials (critical HITL)
    • fte-documents โ€” Reports and CEO Briefing generation
  • Circuit breaker pattern: per-service state machine (3 failures โ†’ 300s cooldown)
  • Correlation IDs: corr-YYYYMMDD-HHMMSS-XXXX from watcher through execution
  • CEO Briefing: weekly aggregation from Odoo + tasks + social + bottlenecks
  • Health monitoring: Logs/health.json with real-time service states

Platinum โ€” Hybrid Cloud-Local with Offline Tolerance

  • Cloud VM (Ubuntu 24.04 at 141.145.146.17): runs 24/7, detects events, drafts responses
  • Local laptop: reviews, approves, executes real actions (email send, social post, payments)
  • FTE_ROLE environment variable: cloud (draft-only) vs local (full execution)
  • Git-based vault sync: 60-second pull/commit/push cycle via src/git_sync.py
  • Claim-by-move concurrency: atomic os.rename() prevents duplicate processing
  • Single-writer dashboard: cloud writes to Updates/, local merges into Dashboard.md
  • Secrets isolation: .gitignore + pre-commit hook + cloud-side audit (3 layers)
  • Correlation ID propagation: corr-YYYY-MM-DD-XXXXXXXX traces full lifecycle across agents
  • Stale detection: flags Pending_Approval >48h, Rejected >7d
  • PM2 daemon management: 4 services (git-sync, gmail-watcher, scheduler, orchestrator)
  • Live demo verified: real email detected โ†’ drafted โ†’ approved โ†’ sent via Gmail API

Prerequisites

  • Python 3.13+ with venv
  • Claude Code
  • Obsidian v1.11.x+ (optional, for vault viewing)
pip install watchdog pyyaml apscheduler mcp tweepy
pip install google-api-python-client google-auth-oauthlib  # Gmail
pip install playwright && playwright install chromium       # WhatsApp
pip install odoorpc                                        # Odoo ERP

Quick Start

# 1. Initialize vault
python src/setup_vault.py

# 2. Start file watcher
python src/file_drop_watcher.py

# 3. Drop a file and process
cp document.pdf ~/Desktop/DropForAI/
claude "check and process needs action"

# 4. Start Gmail watcher (requires credentials.json)
python .claude/skills/gmail-watcher/scripts/gmail_poll.py

# 5. Start scheduler daemon
python .claude/skills/daily-scheduler/scripts/scheduler_daemon.py

# 6. Run central orchestrator
python .claude/skills/central-orchestrator/scripts/orchestrator.py

# 7. Generate CEO briefing
claude "generate CEO briefing"

MCP Servers

Registered in .claude/settings.json. All default to DRY_RUN=true.

Server Tools HITL Level
fte-email email.draft, email.send, email.search routine/sensitive
fte-social social.post_facebook, social.post_instagram, social.post_twitter, social.weekly_summary sensitive/routine
fte-odoo odoo.list_invoices, odoo.create_invoice, odoo.register_payment, odoo.financial_summary, odoo.list_partners routine/critical
fte-documents docs.generate_report, docs.generate_briefing routine

Project Structure

fte/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ vault_helpers.py           # Shared utilities
โ”‚   โ”œโ”€โ”€ setup_vault.py             # Vault initialization
โ”‚   โ”œโ”€โ”€ file_drop_watcher.py       # Filesystem watcher
โ”‚   โ”œโ”€โ”€ correlation.py             # Correlation ID generation
โ”‚   โ”œโ”€โ”€ circuit_breaker.py         # Circuit breaker state machine
โ”‚   โ”œโ”€โ”€ role_gate.py               # FTE_ROLE detection and enforcement
โ”‚   โ”œโ”€โ”€ claim_move.py              # Claim-by-move concurrency control
โ”‚   โ”œโ”€โ”€ git_sync.py                # Git-based vault sync service
โ”‚   โ”œโ”€โ”€ dashboard_merger.py        # Single-writer dashboard updates
โ”‚   โ”œโ”€โ”€ approval_watcher.py        # Local approval โ†’ execution pipeline
โ”‚   โ”œโ”€โ”€ rejection_handler.py       # Rejected draft escalation
โ”‚   โ”œโ”€โ”€ stale_detector.py          # Stale file detection
โ”‚   โ””โ”€โ”€ mcp/
โ”‚       โ”œโ”€โ”€ base_server.py         # Shared MCP server utilities
โ”‚       โ”œโ”€โ”€ email_server.py        # Email MCP server
โ”‚       โ”œโ”€โ”€ social_server.py       # Social media MCP server
โ”‚       โ”œโ”€โ”€ odoo_server.py         # Odoo ERP MCP server
โ”‚       โ””โ”€โ”€ documents_server.py    # Documents/Briefing MCP server
โ”œโ”€โ”€ config/
โ”‚   โ”œโ”€โ”€ mcp-servers.json           # MCP server registry
โ”‚   โ”œโ”€โ”€ social-platforms.json      # Platform character limits
โ”‚   โ”œโ”€โ”€ schedules.json             # Scheduled task definitions
โ”‚   โ”œโ”€โ”€ actions.json               # Action registry
โ”‚   โ”œโ”€โ”€ ecosystem.config.js        # PM2 configuration (local)
โ”‚   โ”œโ”€โ”€ ecosystem.cloud.config.js  # PM2 configuration (cloud VM)
โ”‚   โ””โ”€โ”€ cloud-start.sh             # Cloud env wrapper for PM2 v6
โ”œโ”€โ”€ .claude/
โ”‚   โ”œโ”€โ”€ settings.json              # MCP server registration
โ”‚   โ””โ”€โ”€ skills/                    # 12 Claude Code skills
โ”‚       โ”œโ”€โ”€ vault-interact/
โ”‚       โ”œโ”€โ”€ process-needs-action/
โ”‚       โ”œโ”€โ”€ check-and-process-needs-action/
โ”‚       โ”œโ”€โ”€ central-orchestrator/
โ”‚       โ”œโ”€โ”€ action-executor/
โ”‚       โ”œโ”€โ”€ gmail-watcher/
โ”‚       โ”œโ”€โ”€ whatsapp-watcher/
โ”‚       โ”œโ”€โ”€ daily-scheduler/
โ”‚       โ”œโ”€โ”€ ralph-retry/
โ”‚       โ”œโ”€โ”€ social-media-poster/
โ”‚       โ”œโ”€โ”€ odoo-connector/
โ”‚       โ”œโ”€โ”€ ceo-briefing/
โ”‚       โ””โ”€โ”€ health-monitor/
โ”œโ”€โ”€ docs/
โ”‚   โ”œโ”€โ”€ how-to-use-ai-employee.md  # Usage guide for all 7 capabilities
โ”‚   โ”œโ”€โ”€ ai-employee-pitch.md       # Interview & presentation pitch
โ”‚   โ”œโ”€โ”€ architecture.md            # System architecture
โ”‚   โ”œโ”€โ”€ lessons-learned.md         # Development insights
โ”‚   โ””โ”€โ”€ demo-script.md             # 5-10 min demo walkthrough
โ”œโ”€โ”€ pictures/                       # AI-generated visuals for social media
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ unit/                      # Unit tests
โ”‚   โ””โ”€โ”€ manual/                    # Manual test plans
โ””โ”€โ”€ specs/                         # Feature specifications

Configuration

Setting Default Override
Vault path /home/safdarayub/Documents/AI_Employee_Vault VAULT_PATH env
Drop folder ~/Desktop/DropForAI DROP_FOLDER env
Dry-run mode true DRY_RUN env
FTE role (unset) FTE_ROLE=cloud or FTE_ROLE=local
Git sync interval 60 seconds GIT_SYNC_INTERVAL_SECONDS env
Odoo host localhost:8069 ODOO_HOST, ODOO_PORT env

Cloud VM Setup (Platinum)

# On cloud VM (Ubuntu 24.04):
git clone git@github.com:safdarayubpk/PersonalAIEmployee.git ~/AI_Employee_Vault
python3 -m venv ~/fte-env
source ~/fte-env/bin/activate
pip install watchdog pyyaml apscheduler google-api-python-client google-auth-oauthlib

# Transfer Gmail token from local (read-only OAuth token):
# On local: scp token.json ubuntu@<VM_IP>:~/AI_Employee_Vault/

# Create .env (never synced via git):
cat > ~/AI_Employee_Vault/.env << 'EOF'
FTE_ROLE=cloud
VAULT_PATH=/home/ubuntu/AI_Employee_Vault
DRY_RUN=true
EOF

# Start PM2 services:
pm2 start config/ecosystem.cloud.config.js
pm2 startup systemd -u ubuntu --hp /home/ubuntu
pm2 save

Platinum Live Demo Summary

Verified 2026-03-12 with correlation ID corr-2026-03-12-d16b3470:

Step What Happened Agent
1 Test email sent to Gmail User
2 Gmail watcher detected email (120s poll) Cloud
3 Orchestrator claimed, drafted, moved to Pending_Approval/ Cloud
4 Git-sync pushed to remote Cloud
5 git pull fetched pending approval file Local
6 User moved file to Approved/ Local
7 Approval watcher sent real email via Gmail API Local
8 File moved to Done/ with status: completed Local

External Service Setup

  • Gmail: Create OAuth2 credentials in Google Cloud Console, save credentials.json in project root
  • WhatsApp: First run requires QR code scan in browser
  • Facebook/Instagram: Page Access Token via Meta Developer Portal
  • Twitter/X: API keys via Twitter Developer Portal (OAuth 1.0a)
  • Odoo: Self-hosted Odoo 19 Community, set ODOO_DB, ODOO_USER, ODOO_PASSWORD env vars

Tech Stack

Layer Technology
Language Python 3.13+
AI Claude (Anthropic) via Claude Code CLI
Communication MCP (Model Context Protocol) servers
Process Manager PM2 (auto-restart, logging)
Browser Automation Playwright + Chromium (WhatsApp)
ERP Odoo 19 Community (Docker)
Email Gmail API (OAuth2)
Social Media Facebook Graph API, Twitter API v2
Scheduling APScheduler (cron-based)
Knowledge Base Obsidian vault (markdown + YAML frontmatter)
Infrastructure Local machine + Oracle Cloud VM (Always Free tier)

Documentation

Release History

VersionChangesUrgencyDate
main@2026-04-11Latest activity on main branchHigh4/11/2026
0.0.0No release found โ€” using repo HEADHigh4/9/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

sawzhang_skillsClaude Code skills collection โ€” CCA study guides, Twitter research, MCP review, auto-iteration toolsmaster@2026-08-27
argus-mcp๐Ÿ” Enhance code quality with Argus MCP, an AI-driven code review server using a Zero-Trust model for safe and efficient development.main@2026-09-06
LIA-AssistantOpen-source multi-agent AI assistant powered by LangGraph, FastAPI & Next.js โ€” 16+ agents, Human-in-the-Loop, MCP integration, voice TTS, RAG, 500+ metrics, 6 languages.v1.40.0
GhostDeskGive any AI agent a full desktop โ€” it sees the screen, clicks, types, and runs apps like a human. Automate anything with a UI: browsers, legacy software, internal tools. No API needed. One Docker commv8.0.0
rex-cliLocal-first AI agent bootstrap: Playwright Browser MCP + ContextDB for Codex CLI, Claude Code, Gemini CLI, and OpenCode.v5.8.2

More in MCP Servers

difyProduction-ready platform for agentic workflow development.
tabularisA lightweight, cross-platform database client for developers. Supports MySQL, PostgreSQL and SQLite. Hackable with plugins. Built for speed, security, and aesthetics.
ai-agents-from-zero ๐Ÿš€ 2026 ๆœ€็ณป็ปŸ็š„ AI Agent ้€ŸๆˆๆŒ‡ๅ—๏ฝœๆ™บ่ƒฝไฝ“ๅฎžๆˆ˜ๆ•™็จ‹ ยท ๅฎŒๆ•ดๅญฆไน ่ทฏๅพ„ + ๅฎžๆˆ˜้กน็›ฎ + ้ข่ฏ•้ข˜ๅบ“ ยท ๅฏนๆ ‡ๅคงๆจกๅž‹ๅบ”็”จๅผ€ๅ‘ๅทฅ็จ‹ๅธˆๅฒ—ไฝ ยท ่ฆ†็›–LangChain / LangGraph / Coze / Dify / MCP / skills / LLM / RAG / ๆ็คบ่ฏ ยท ไผไธš็บง้ƒจ็ฝฒไธŽๅพฎ่ฐƒ ยท ไปŽ0ๅˆฐไผไธš็บง่ฝๅœฐ + ไปŽๅญฆไน ๅˆฐไธŠ็บฟ้กน็›ฎ + ้ข่ฏ•ๅ‡†ๅค‡ไธ€ไฝ“ๅŒ–
studioOpen-source control plane for your AI agents. Connect tools, hire agents, track every token and dollar