How harshachakravarthy/automl-mcp-chatbot works
AI Data Scientist Chatbot lets users select tabular datasets and request inspection, exploratory analysis, plots, or AutoML results through a Streamlit chat. The UI parses commands, loads data for its local analysis paths, and is documented as invoking server tools through the synchronous client. The server separately loads datasets, computes summaries and plots, and runs PyCaret model comparison and tuning. The excerpts omit some UI command-handling code, so uncertain call wiring is not expanded.
Main entry points: automl_server.py Tool dispatch · streamlit_app.py Streamlit chat · datasets Dataset files · mcp_client.py Synchronous tool client
Components 14
Chat interface
- Streamlit chat
app/streamlit_app.py - LLM intent router
backend/llm_router.py - Synchronous tool client
backend/mcp_client.py
Data analysis
- Local analysis
app/streamlit_app.py
Tool server
- Tool dispatch
servers/automl_server.py - Dataset tools
servers/automl_server.py - EDA and summaries
servers/automl_server.py - Plot generation
servers/automl_server.py - Model training
servers/automl_server.py
Data and artifacts
- Dataset files
datasets - Plot artifacts
servers/automl_server.py
Other components
- User
- OpenAI API
- PyCaret
Connections 18
- User → Streamlit chat: sends commands
- Streamlit chat → LLM intent router: routes intent
- LLM intent router → OpenAI API: parses metadata
- Streamlit chat → Synchronous tool client: calls tools
- Synchronous tool client → Tool dispatch: dispatches tools
- Streamlit chat → Local analysis: runs local analysis
- Local analysis → Dataset files: reads files
- Tool dispatch → Dataset tools: dispatches tools
- Tool dispatch → EDA and summaries: dispatches tools
- Tool dispatch → Plot generation: dispatches tools
- Tool dispatch → Model training: dispatches tools
- Dataset tools → Dataset files: reads files
- EDA and summaries → Dataset files: reads data
- Plot generation → Dataset files: reads data
- Plot generation → Plot artifacts: saves plots
- Model training → Dataset files: reads data
- Model training → PyCaret: compares and tunes
- Synchronous tool client → Streamlit chat: returns results