MCP Chatbot
An intelligent chatbot for automating tasks like browser control, web searches, and travel planning.
MCP Chatbot 🤖
MCP Chatbot - Intelligent automation through Model Context Protocol integration. Features browser automation, web search, and travel planning with robust error handling. Uses Google Gemini LLM and gracefully handles server failures for reliable operation.
GitHub Repository: https://github.com/naakaarafr/MCP-Chatbot
A powerful chatbot built with Model Context Protocol (MCP) that provides intelligent automation through browser control, web search, and travel planning capabilities.
Overview
This chatbot leverages the Model Context Protocol to integrate multiple specialized servers, creating a unified interface for web automation, search, and travel-related tasks. It uses Google's Gemini model as the underlying LLM and can gracefully handle server failures by testing each MCP server individually.
Features
🌐 Browser Automation (Playwright MCP)
- Navigate to websites
- Take screenshots
- Click elements and interact with web pages
- Automate web-based tasks
🔍 Web Search (DuckDuckGo MCP)
- Perform web searches
- Get real-time information
- Research topics and find answers
🏠 Travel Planning (Airbnb MCP)
- Search for accommodations
- Find hotels and rentals
- Get travel recommendations
🛡️ Robust Error Handling
- Individual server testing on startup
- Graceful degradation when servers fail
- Fallback responses in limited mode
- Clear error reporting
Prerequisites
System Requirements
- Python 3.8+
- Node.js and npm (for MCP servers)
- UV package manager (for Python MCP servers)
Required Packages
# Python dependencies
pip install asyncio python-dotenv langchain-google-genai mcp-use
# Node.js MCP servers
npm install -g @playwright/mcp
npm install -g @openbnb/mcp-server-airbnb
# Python MCP servers
uvx install duckduckgo-mcp-server
Installation
-
Clone or download the project files:
# Ensure you have both app.py and browser_mcp.json
-
Install Python dependencies:
pip install -r requirements.txt
Or install individually:
pip install asyncio python-dotenv langchain-google-genai mcp-use
-
Install MCP servers:
# Playwright for browser automation npm install -g @playwright/mcp # Airbnb for travel search npm install -g @openbnb/mcp-server-airbnb # DuckDuckGo for web search uvx install duckduckgo-mcp-server
-
Set up environment variables: Create a
.env
file in the project root:GOOGLE_API_KEY=your_google_api_key_here
-
Configure MCP servers: The
browser_mcp.json
file is already configured with default settings. Modify if needed:{ "mcpServers": { "playwright": { "command": "npx", "args": ["@playwright/mcp@latest"] }, "airbnb": { "command": "npx", "args": ["-y", "@openbnb/mcp-server-airbnb"] }, "ddg-search": { "command": "uvx", "args": ["duckduckgo-mcp-server"] } } }
Usage
Starting the Chatbot
python app.py
Available Commands
help
- Show available commands and example queriestools
- List all available MCP toolsquit
orexit
- End the conversation
Example Queries
Browser Automation
"Take a screenshot of google.com"
"Navigate to wikipedia.org and search for Python"
"Click the login button on the website"
Web Search
"What's the weather like today?"
"Search for the latest news about AI"
"Find information about renewable energy"
Travel Planning
"Find hotels in New York City"
"Search for Airbnb rentals in San Francisco"
"What are the best accommodations in Tokyo?"
General Assistance
"Find the best restaurants in downtown Chicago"
"Help me research Python programming tutorials"
"Take a screenshot of the current stock market trends"
Architecture
Core Components
-
MCPChatbot Class: Main chatbot orchestrator
- Initializes and manages MCP servers
- Handles user interactions
- Provides fallback responses
-
Server Testing: Individual server validation
- Tests each MCP server on startup
- Reports working and failed servers
- Continues operation with available servers
-
Agent Integration: LangChain + MCP integration
- Uses Google Gemini 2.0 Flash as the LLM
- Integrates with MCP client for tool access
- Supports up to 20 reasoning steps
Error Handling
The chatbot implements robust error handling:
- Server Failures: Individual server testing prevents total failure
- Limited Mode: Provides basic responses when no servers are available
- Graceful Degradation: Continues operation with partial functionality
- User Feedback: Clear error messages and status reporting
Configuration
MCP Server Configuration
Edit browser_mcp.json
to add or modify MCP servers:
{
"mcpServers": {
"your-server-name": {
"command": "command-to-run",
"args": ["arg1", "arg2"]
}
}
}
Environment Variables
Required in .env
file:
GOOGLE_API_KEY
: Your Google AI API key for Gemini access
LLM Configuration
Modify in app.py
if needed:
self.llm = ChatGoogleGenerativeAI(
model="gemini-2.0-flash-exp", # Model selection
temperature=0.3 # Creativity level
)
Troubleshooting
Common Issues
-
"browser_mcp.json not found"
- Ensure the configuration file is in the same directory as
app.py
- Ensure the configuration file is in the same directory as
-
"No MCP servers are working"
- Check that all MCP servers are properly installed
- Verify Node.js and UV are installed and accessible
- Check server logs for specific error messages
-
Google API Key Issues
- Ensure your
.env
file contains a validGOOGLE_API_KEY
- Verify the API key has access to Gemini models
- Ensure your
-
Installation Issues
- Make sure Node.js and npm are installed
- Install UV package manager:
pip install uv
- Try installing MCP servers individually to isolate issues
Debug Mode
The chatbot provides detailed startup information:
- Server testing results
- Working server list
- Error messages for failed servers
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test with various MCP servers
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Please check individual MCP server licenses for their respective terms.
Support
For issues related to:
- MCP Protocol: Check the official MCP documentation
- Specific MCP Servers: Refer to individual server documentation
- LangChain Integration: See LangChain documentation
- Google Gemini: Check Google AI documentation
Acknowledgments
- Model Context Protocol (MCP) team for the innovative protocol
- Playwright team for browser automation capabilities
- LangChain team for the integration framework
- Google for providing Gemini AI models
Related Servers
MCP Hub
A manager server for MCP servers that handles process management and tool routing.
Google Calendar
Interact with Google Calendar to manage events, schedules, and meetings.
AI Tutor
An AI-powered tutor for higher education that supports both Claude and OpenAI models through MCP.
2slides
This is the 1st, easiest, and cheapest PPT, slides, presentation AI generation MCP Server in the world.
OmniTaskAgent
A multi-model agent for managing tasks across various platforms, requiring API keys for different AI models.
Google Calendar Tools
A server for managing Google Calendar events and schedules.
Squad AI
Product‑discovery and strategy platform integration. Create, query and update opportunities, solutions, outcomes, requirements and feedback from any MCP‑aware LLM.
Things
Interact with your task management data in the Things app.
ServiceTitan MCP Server
An MCP server for integrating with the ServiceTitan platform.
MCP Outlook Tools
Interact with Microsoft Outlook for calendar management, email operations, and search functionality.