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.txtOr 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
.envfile in the project root:GOOGLE_API_KEY=your_google_api_key_here -
Configure MCP servers: The
browser_mcp.jsonfile 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 toolsquitorexit- 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
.envfile 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
Browser Use MCP Server
Automate browser actions using natural language commands. Powered by Playwright and supports multiple LLM providers.
Fibery
Perform queries and entity operations in your Fibery workspace.
Recruitee MCP Server
Provides advanced search, reporting, and analytics for recruitment data via Recruitee.
JotForm
An MCP server for interacting with the Jotform API to manage online forms and submissions.
monday.com MCP
An open framework to connect AI agents into your monday.com work OS, giving them secure access to data and tools to take action.
DingTalk MCP Server
Provides various DingTalk services including contacts, department management, robot messaging, calendar, and tasks.
Wiki.js
Integrates with Wiki.js, enabling AI to read and update documentation.
Desktop Automation
Control your desktop with AI. Automate mouse movements, keyboard inputs, and screen captures.
Linear MCP Server
A server for interacting with the Linear project management tool using the Linear API.
Vynn
Self-improving AI workflows with natural language backtesting. 21 MCP tools for creating workflows, backtesting trading strategies, parameter sweeps, portfolio optimization, prompt optimization, cron scheduling, and webhook triggers. Install: pip install vynn-mcp