Spaces:
Running
Running
""" | |
Universal MCP Client - Main Application | |
A modular Gradio chatbot that uses HuggingFace Inference Providers to access OpenAI GPT OSS models | |
and can connect to various MCP servers for enhanced functionality. | |
""" | |
import logging | |
import os | |
from config import AppConfig | |
from mcp_client import UniversalMCPClient | |
from ui_components import UIComponents | |
# Set up logging | |
logger = logging.getLogger(__name__) | |
def main(): | |
"""Main application entry point""" | |
logger.info("π Starting Universal MCP Client with HuggingFace Inference Providers...") | |
try: | |
# Check for HuggingFace token | |
if not AppConfig.HF_TOKEN: | |
logger.warning("β οΈ No HF_TOKEN found in environment variables") | |
logger.info("π‘ Users will need to login manually or set HF_TOKEN") | |
else: | |
logger.info("β HF_TOKEN found in environment") | |
# Initialize the MCP client | |
mcp_client = UniversalMCPClient() | |
# Create UI components | |
ui_components = UIComponents(mcp_client) | |
# Create the Gradio interface | |
demo = ui_components.create_interface() | |
# Launch the application | |
demo.launch( | |
debug=AppConfig.DEBUG_MODE, | |
share=False, # Set to True if you want to create a public link | |
server_name="0.0.0.0", # Allow external connections | |
server_port=7860, # Default Gradio port | |
auth=None, # No authentication (handled by HF login) | |
max_threads=40 # Allow multiple concurrent users | |
) | |
logger.info("β Universal MCP Client started successfully!") | |
except Exception as e: | |
logger.error(f"β Failed to start application: {e}") | |
raise | |
if __name__ == "__main__": | |
main() | |