Sassy Fact Check
A sassy, fact-checking Instagram DM bot that roasts bad takes with citations.
Sassy Fact Check ๐ โ The Unhinged Fact-Check Bot
Where bad takes go to die, with a side of sass.
Sassy Fact Check is an Instagram DM MCP server that roasts health myths and viral misinformation with spicy, unhinged facts. Think MythBusters meets Mean Girls with a PubMed subscription! ๐ฅ๐
๐ Meet Valentina
โจ Features
- Sassy Fact-Checking: Roasts misinformation with citations and attitude (25-35 words max!)
- Smart Content Filtering: Auto-adjusts tone for sensitive topics
- Multi-Response Modes: Sassy, soft, neutral, and blocked responses
- Dual MCP Architecture: Instagram MCP + Sassy Bot MCP working together
- Analytics Tracking: Logs interactions for daily sass statistics
- Safety First: Blocks conspiracy theories, softens for grief/trauma
๐ฌ Demo Video
I built a sassy fact-checking AI that integrates with Instagram DMs. Watch it analyze health myths and generate perfect responses with citations and attitude!
๐ฅ Real Mode Demo
๐ฏ Demo Mode Demo
Demo Highlights:
- ๐ฅ Health Myth Busting โ Apple cider vinegar claims demolished
- โก Safety Alerts โ Dangerous advice shut down instantly
- ๐ Smart Filtering โ Auto-softens for sensitive topics
- โ System Status โ All components working perfectly
๐ Quick Start
Prerequisites
- Python 3.11+
- Claude Desktop App
- Instagram DM MCP by Gala Labs
- Instagram account (for real mode)
- Anthropic API key
Installation
-
Clone and set up virtual environment
git clone https://github.com/sangreal-007/sassy-factcheck-bot.git cd sassy-factcheck-bot # Create and activate virtual environment (required on macOS) python3 -m venv venv source venv/bin/activate # You should see (venv) in your terminal prompt # Interactive credential setup python setup_env.py # Install dependencies pip install -r requirements.txt -
Configure Claude Desktop for Dual MCP Setup
You need BOTH servers running for full functionality:
First, get your exact paths:
# Navigate to your project and get exact paths cd sassy-factcheck-bot pwd # Shows your project directoryAdd to
~/Library/Application Support/Claude/claude_desktop_config.json:open -a TextEdit ~/Library/"Application Support"/Claude/claude_desktop_config.json{ "mcpServers": { "instagram_dms": { "command": "/Users/yourusername/.local/bin/uv", "args": [ "run", "--directory", "/Users/yourusername/instagram_dm_mcp", "python", "src/mcp_server.py" ] }, "sassy_factcheck": { "command": "/Users/yourusername/sassy-factcheck-bot/venv/bin/python", "args": ["/Users/yourusername/sassy-factcheck-bot/src/mcp_server.py"], "cwd": "/Users/yourusername/sassy-factcheck-bot" } } }โ ๏ธ Important: Replace
/Users/yourusername/with your actual path from thepwdcommand above. -
Test Both Servers
# Terminal 1: Start Instagram MCP (Gala Labs) cd ../instagram_dm_mcp uv run python src/mcp_server.py # Terminal 2: Start Sassy Bot cd sassy-factcheck-bot source venv/bin/activate python src/mcp_server.py -
Restart Claude Desktop and start the complete dual MCP workflow!
๐๏ธ Demo vs Real Mode
Your bot supports both demo and real Instagram integration:
Demo Mode (Default - Perfect for Testing)
# In your .env file
INSTAGRAM_REAL_MODE=false
# Features:
# โ
Practice with fake health claims
# โ
Test sassy response generation
# โ
Safe for development
# โ
No Instagram account needed
Real Mode (Live Instagram Integration)
# In your .env file
INSTAGRAM_REAL_MODE=true
# Features:
# โ
Real Instagram API via Gala Labs MCP
# โ
Actual DM conversations
# โ
Live fact-checking responses
# โ
Production-ready deployment
Switching Modes
# Edit your .env file
nano .env
# Change this line:
INSTAGRAM_REAL_MODE=false # Demo mode
# OR
INSTAGRAM_REAL_MODE=true # Real mode
# Restart your sassy bot server
python src/mcp_server.py
โ ๏ธ Security Notice
๐ก๏ธ For Real Mode: Use a dedicated test Instagram account, never your main account!
Instagram actively detects automation and may restrict accounts. Create a throwaway account specifically for testing to protect your personal Instagram.
๐ฌ How It Works
Complete Dual MCP Workflow
- Instagram MCP:
list_chatsโ See real conversations - Sassy Bot:
generate_sassy_responseโ Create viral response with source - Instagram MCP:
send_messageโ Send to real Instagram user
Auto-Tone Detection
- Health myths โ Sassy roasting ๐ฅ
- Sensitive topics โ Gentle approach ๐
- Conspiracy theories โ Blocked ๐ซ
- Spam โ Maximum dismissal ๐๏ธ
๐ญ Response Modes (Auto-Selected)
| Mode | Trigger | Style | Example |
|---|---|---|---|
| Sassy | Health myths, general claims | Witty, emoji-heavy, 25-35 words | "๐ If that worked, we'd all be supermodels!" |
| Soft | Cancer, grief, mental health | Gentle, understanding | "I understand this is difficult. Please consult..." |
| Neutral | Professional contexts | Educational, minimal emojis | "Research shows this claim is inaccurate." |
| Blocked | Conspiracy theories | Polite refusal | "I don't engage with that content." |
๐ ๏ธ Available MCP Tools
Sassy Bot MCP Tools (Response Generation):
generate_sassy_response- Create viral fact-check responses with sourcesgenerate_welcome_message- Create welcome messages for new followerscheck_instagram_dms- Show practice claims (demo mode) or guide to Instagram MCP (real mode)instagram_integration_status- Show dual MCP integration status
Instagram MCP Tools (Messaging - via Gala Labs):
list_chats- See real Instagram conversationssend_message- Send responses to real Instagram usersget_user_followers- Check follower listsget_thread_details- Get full conversation history
Usage Examples:
Use generate_sassy_response with:
- content: "Apple cider vinegar burns belly fat instantly"
- username: "wellness_guru_fake"
Use instagram_integration_status to check dual MCP setup
Use list_chats to see real Instagram conversations
๐ง Configuration
Simple Setup (Only What You Need)
# Required
INSTAGRAM_USERNAME=your_username
INSTAGRAM_PASSWORD=your_password
ANTHROPIC_API_KEY=your_claude_key
# Mode Selection
INSTAGRAM_REAL_MODE=true # true for real Instagram, false for demo
# Optional
ENABLE_SAFE_MODE=true # Auto-soften for sensitive topics
LOG_INTERACTIONS=true # Track daily stats
Customize Filters
Edit src/filters.py to adjust:
- Sensitive topic keywords (auto-triggers soft mode)
- Health panic keywords (extra sassy)
- Blocked content (conspiracy theories)
- Response length limits
๐งช Testing Examples
Try these in Claude Desktop:
# Demo Mode Testing
Use generate_sassy_response with:
- content: "Green tea burns 100 calories per cup"
- username: "tea_fanatic"
# Real Mode Testing
Use list_chats to see real conversations
Use generate_sassy_response for real claims
Use send_message to send responses
Use instagram_integration_status to check setup
๐ฏ Example Responses
Health Myth (Sassy Mode):
Input: "Apple cider vinegar burns belly fat instantly"
Output: "๐ If vinegar burned fat instantly, we'd all be supermodels! Reality: 2-4 lbs over 12 weeks ๐ Source: Mayo Clinic"
Sensitive Topic (Auto-Soft Mode):
Input: "My friend died of cancer because she didn't try natural healing"
Output: "I'm sorry for your loss. Cancer treatment is complex. For evidence-based information, please consult oncology professionals. Source: American Cancer Society"
Conspiracy Theory (Blocked):
Input: "Chemtrails are poisoning us all"
Output: "I don't engage with that type of content. Let's keep it factual! ๐"
๐ Hackathon Submission
Built for the Instagram DM MCP Hackathon by Gala Labs!
Key Innovation: Dual MCP architecture with automatic tone adjustment based on content sensitivity while maintaining maximum sass for health misinformation.
๐ ๏ธ Technical Architecture
- Dual MCP Setup: Instagram MCP (Gala Labs) + Sassy Bot MCP working together
- Instagram Operations: Real Instagram API via Gala Labs Instagram DM MCP
- Response Generation: Sassy Bot MCP with Claude API integration
- Content Filtering: Smart categorization with tone recommendation
- Safety Layer: Multi-level filtering for sensitive content
- Mode Switching: Demo/Real mode for development and production
โ ๏ธ Important Notes
- Dual MCP Required: Both Instagram MCP and Sassy Bot MCP must be running
- Virtual Environment Required: macOS users must use virtual environments due to system Python restrictions
- Demo Mode: Perfect for testing without Instagram account - uses practice claims
- Real Mode: Connects to actual Instagram via Gala Labs MCP for live conversations
- Response Length: Optimized for 25-35 word responses perfect for social media
๐ค Contributing
- Fork the repo
- Create feature branch:
git checkout -b feature/more-sass - Add your roasting capabilities
- Test with:
python src/mcp_server.py - Submit PR with maximum sass level ๐
๐ License
MIT License - Go forth and fact-check responsibly!
๐ Contact
Built with ๐ and citations by sangreal-007
- GitHub: @sangreal-007
- Repository: sassy-factcheck-bot
"In a world full of misinformation, be the citation." โ Sassy Fact Check Bot โจ
๐ Hackathon Demo
Ready to roast some bad takes? Clone this repo, follow the dual MCP setup, and start serving facts with attitude through Claude Desktop! ๐ฅ๐๐
Related Servers
Unichat
A unified interface for various chat AI models including OpenAI, MistralAI, Anthropic, and Google AI, requiring vendor API keys.
MCP Headless Gmail Server
A headless server to get and send emails via the Gmail API, requiring Google API credentials at runtime.
LINE Official Account
Integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account.
WhatsApp Web
An MCP server for interacting with WhatsApp Web, allowing you to send and receive messages.
Brevo API
Integrate with the Brevo email marketing platform via its API.
Webex MCP Server
Provides AI assistants with comprehensive access to Cisco Webex messaging capabilities.
Tldv
Connect your AI agents to Google-Meet, Zoom & Microsoft Teams through tl;dv
ChatMCP
A cross-platform AI chat client supporting desktop, mobile, and web platforms.
X (Twitter)
Enhanced MCP server for Twitter/X with OAuth 2.0 support, v2 API media uploads, smart v1.1 fallbacks, and comprehensive rate limiting. Post tweets with text/media, search, and delete tweets programmatically.
Bluesky
integrates with Bluesky API to query and search feeds and posts.