Banking Model Context Protocol Server
Implements a secure message communication protocol for handling exchanges between the banking chatbot and Azure OpenAI, providing message queuing, reliability, and detailed logging.
README Documentation
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
-
Clone the repository:
git clone <repository-url> cd banking-chatbot
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
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
-
Start the MCP server:
python mcp_server.py
-
In a new terminal, start the Flask application:
python app.py
-
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 historymcp_client.log
: Client connection and operation logsmcp_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
- Update the
BANK_INFO
dictionary inapp.py
for new bank information - Modify the
SYSTEM_MESSAGE
for updated AI behavior - Add new message handlers in
mcp_client.py
for additional functionality
Testing
Run the test client to verify MCP functionality:
python test_client.py
Clear logs for testing:
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
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.