# Banking Chatbot with MCP Integration
A sophisticated banking chatbot application that uses Azure OpenAI and Model Context Protocol (MCP) for secure and efficient message handling.
## Features
- **AI-Powered Banking Assistant**: Uses Azure OpenAI to provide intelligent responses to banking queries
- **Model Context Protocol (MCP)**: Implements a secure message communication protocol
- **Real-time Chat Interface**: Modern, responsive UI for seamless user interaction
- **Comprehensive Logging**: Detailed logging system for monitoring and debugging
- **Bank Information Integration**: Dynamic display of bank details and services
- **Markdown Support**: Rich text formatting for responses
## Project Structure
```
.
├── app.py # Main Flask application
├── mcp_server.py # MCP server implementation
├── mcp_client.py # MCP client implementation
├── requirements.txt # Python dependencies
├── .env # Environment variables
├── templates/ # HTML templates
│ └── index.html # Chat interface
└── logs/ # Log files
├── client_messages.log
├── mcp_client.log
└── mcp_server.log
```
## Prerequisites
- Python 3.8 or higher
- Azure OpenAI API access
- Required Python packages (see requirements.txt)
## Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd banking-chatbot
```
2. Create and activate a virtual environment:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
4. Create a `.env` file with your credentials:
```
ENDPOINT_URL=your_azure_endpoint
AZURE_OPENAI_API_KEY=your_api_key
DEPLOYMENT_NAME=your_deployment_name
```
## Usage
1. Start the MCP server:
```bash
python mcp_server.py
```
2. In a new terminal, start the Flask application:
```bash
python app.py
```
3. Access the chatbot interface at `http://localhost:5000`
## MCP Protocol
The Model Context Protocol (MCP) is implemented to handle message communication between the chatbot and the server. It provides:
- Secure message transmission
- Message queuing and reliability
- Detailed logging
- Real-time message handling
### Message Types
- **Chat Messages**: User queries and AI responses
- **System Messages**: Administrative and control messages
## Logging
The application maintains detailed logs in the `logs` directory:
- `client_messages.log`: Chat message history
- `mcp_client.log`: Client connection and operation logs
- `mcp_server.log`: Server operation logs
## Bank Information
The chatbot is configured with comprehensive bank information including:
- Business hours
- Branch locations
- Available services
- Contact information
- Support channels
## Development
### Adding New Features
1. Update the `BANK_INFO` dictionary in `app.py` for new bank information
2. Modify the `SYSTEM_MESSAGE` for updated AI behavior
3. Add new message handlers in `mcp_client.py` for additional functionality
### Testing
Run the test client to verify MCP functionality:
```bash
python test_client.py
```
Clear logs for testing:
```bash
python clear_logs.py
```
## Security
- API keys and sensitive information are stored in `.env`
- MCP provides secure message transmission
- Input validation and error handling are implemented
## Contributing
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request
## License
This project is licensed under the MIT License - see the LICENSE file for details.
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Abhinav-pyth/Banking_assistant'
If you have feedback or need assistance with the MCP directory API, please join our Discord server