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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。