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
관련 서버
Tachikoma Router Management MCP
Manage various router types using natural language. Requires router credentials to be configured.
Taiwan Holiday
Provides Taiwan national holidays and compensatory workday information. Data is fetched and cached automatically.
WordPress MCP
A Model Context Protocol (MCP) server that gives AI agents full control over WordPress sites. 46 tools for posts, pages, media, SEO, comments, redirects, blocks, patterns, TablePress, and more.
U301 URL Shortener
Create short URLs using the U301 URL Shortener service.
OSP Marketing Tools for Node.js
A suite of tools for technical marketing content creation, optimization, and product positioning based on Open Strategy Partners' methodologies.
Careflow-MCP
Production-ready healthcare workflow automation powered by n8n and the Model Context Protocol. Enables Claude and other AI assistants to trigger HIPAA-compliant patient task management workflows through natural language.
PM Copilot
Triangulates customer support tickets and feature requests to generate prioritized product plans with convergence scoring and PII scrubbing.
WordPress MCP Server
A secure bridge between AI assistants and WordPress, enabling site management and content operations through natural language.
Confluence MCP Server
Programmatically access and search Confluence spaces, pages, and content using its REST API.
Omi Memories
Provides access to a specific user's memories from the Omi app.