ziggy-mcp
Connects Claude AI to Google Sheets for automated revenue tracking, lead management, and business operations, with Gmail and calendar integration.
README
Ziggy MCP
A Model Context Protocol (MCP) server that connects Claude AI to Google Sheets for automated revenue tracking, lead management, and business operations.
Features
- ๐ Dashboard: Real-time revenue metrics and KPIs
- ๐ฏ Lead Pipeline: Track prospects from first contact to close
- ๐ง Gmail Integration: Search emails and automate outreach
- ๐ Calendar Sync: Track meetings and follow-ups
- ๐ Knowledge Matrix: Development log with timestamp tracking
- โ Task Management: Prioritize and track project tasks
- ๐ Analytics: Daily metrics and performance tracking
Prerequisites
- Node.js 18.0.0 or higher
- Google Account with Sheets and Gmail access
- Claude Desktop or compatible MCP client
- Google Apps Script (for backend API)
- Playwright (for browser automation)
Installation
1. Clone the Repository
git clone https://github.com/yourusername/ziggy-mcp.git
cd ziggy-mcp
2. Install Dependencies
npm run setup
# This installs Node packages AND Playwright browsers
Manual alternative:
npm install
npx playwright install chromium
3. Set Up Google Sheets Backend
- Create a new Google Sheet
- Go to Extensions > Apps Script
- Delete any existing code
- Copy all files from
/apps-scriptdirectory:Code.js- Sheet setup scriptAPI.js- Main API handlerscalendarSync.js- Calendar integrationappsscript.json- Manifest
- Click Save (disk icon)
- Click Run > setupRevenueEngine
- Authorize the script when prompted
- Wait 30-60 seconds for completion
- Deploy as web app:
- Click Deploy > New deployment
- Type: Web app
- Execute as: Me
- Who has access: Anyone
- Click Deploy
- Copy the Web app URL
4. Configure the MCP Server
Edit index.js and update the API URL:
const API_URL = "YOUR_GOOGLE_APPS_SCRIPT_WEB_APP_URL";
5. Connect to Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"ziggy": {
"command": "node",
"args": ["/absolute/path/to/ziggy-mcp/index.js"]
}
}
}
Replace /absolute/path/to/ziggy-mcp/ with your actual installation path.
6. Restart Claude Desktop
Quit and reopen Claude Desktop to load the MCP server.
Browser Automation Setup
Setting Up Authenticated Sessions
For Upwork, LinkedIn, and other platforms:
Step 1: Open browser in visible mode
Open Upwork in browser with visible mode
Step 2: I'll open a browser window - YOU log in manually
Step 3: Save the session
Save browser session as "upwork"
Step 4: Test it
Browse upwork.com using saved session
Supported Platforms
- โ Upwork - Job search, proposal submission
- โ LinkedIn - Profile research, connection requests
- โ Any website - Custom scraping and automation
Security Notes
- Sessions stored locally in
sessions/folder - NEVER commit session files to git
- Sessions contain your auth tokens
- Expire after ~30 days
- Re-authenticate when needed
Usage
Basic Commands
Get Dashboard:
Show me my revenue dashboard
View Pipeline:
What leads are in my pipeline?
Add a Lead:
Add a new lead: Acme Corp, contact John Smith, email john@acme.com
Check Gmail:
Search my unread emails
Log Development Work:
Log to knowledge matrix: Fixed authentication bug in Gmail integration [45m]
Knowledge Matrix
The Knowledge Matrix is a structured development log that tracks:
- ๐ Bugs & Fixes - Issues and resolutions
- โจ Features Added - New functionality
- ๐งช Testing Results - Test outcomes
- ๐ฏ Decisions & Direction - Strategic choices
- ๐ Documentation Updates - Doc changes
- ๐ Next Session Goals - Future work
Write Entry:
Write matrix entry for Bugs & Fixes: "3:45pm EST ๐[BUG-001] Fixed Gmail auth timeout [30m]"
Query Matrix:
Search matrix for "authentication"
Daily Summary:
Generate matrix summary for today
Browser Automation
Take Screenshot:
Take a screenshot of competitor-site.com
Extract Data:
Extract pricing from acme.com/pricing
Fill Form:
Fill the contact form at example.com with lead data for John Doe
Research:
Browse to linkedin.com/company/acme and extract company info
Automated Outreach (after session setup):
Search Upwork for "web automation" jobs and show top 5
Project Structure
ziggy-mcp/
โโโ index.js # Main MCP server
โโโ package.json # Node dependencies
โโโ browser/ # Browser automation
โ โโโ playwright.js # Core browser functions
โ โโโ upwork.js # Upwork automation
โ โโโ linkedin.js # LinkedIn automation
โโโ apps-script/ # Google Apps Script files
โ โโโ Code.js # Sheet setup
โ โโโ API.js # API endpoints
โ โโโ calendarSync.js # Calendar integration
โ โโโ appsscript.json # Manifest
โโโ sessions/ # Saved browser sessions (gitignored)
โโโ screenshots/ # Captured screenshots (gitignored)
โโโ docs/ # Documentation
โ โโโ MATRIX.md # Knowledge Matrix guide
โ โโโ BUG-TRACKING.md # Bug tracking system
โ โโโ BROWSER-GUIDE.md # Browser automation guide
โโโ README.md # This file
Security & Privacy
- All data stored in your Google Sheets
- API calls authenticated through Google Apps Script
- No external databases or third-party services
- File system access restricted to project directory
- Gmail read-only access (send requires explicit approval)
Troubleshooting
MCP Server Not Connecting
- Check Claude Desktop config path is correct
- Verify Node.js version:
node --version(should be โฅ18.0.0) - Check console:
Cmd+Shift+Iin Claude Desktop - Verify API_URL is set correctly in
index.js
Google Apps Script Issues
- Ensure script is deployed as web app
- Check execution permissions (should be "Anyone")
- Re-authorize if needed: Run > setupRevenueEngine
- Check Apps Script logs: View > Logs
Gmail Integration
- Ensure Gmail API is enabled in Apps Script
- Check OAuth scopes in
appsscript.json - Re-authorize if permissions changed
Development
Running Locally
node index.js
Managing Apps Script
Install clasp for local Apps Script development:
npm install -g @google/clasp
clasp login
clasp pull # Download from Google
clasp push # Upload to Google
Debugging
Enable debug logging in index.js:
const DEBUG = true;
Logs written to debug.log in project directory.
Roadmap
- [ ] Add Slack integration
- [ ] Export reports to PDF
- [ ] AI-powered lead scoring
- [ ] Automated follow-up reminders
- [ ] Invoice generation
- [ ] Team collaboration features
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
License
MIT License - see LICENSE file for details
Support
- ๐ง Email: support@example.com
- ๐ฌ Issues: GitHub Issues
- ๐ Docs: Wiki
Acknowledgments
- Built with Model Context Protocol
- Powered by Claude AI
- Google Sheets integration via Apps Script
Made with โค๏ธ for solopreneurs and small teams
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.