This project is a Streamlit-based web application that generates personalized learning paths using the Model Context Protocol (MCP). It integrates with various services including YouTube, Google Drive, and Notion to create comprehensive learning experiences.
- 🎯 Generate personalized learning paths based on your goals
- 🎥 Integration with YouTube for video content
- 📁 Google Drive integration for document storage
- 📝 Notion integration for note-taking and organization
- 🚀 Real-time progress tracking
- 🎨 User-friendly Streamlit interface
- Python 3.10+
- Google AI Studio API Key
- Composio API Key (for direct MCP integration)
- Optional: Hugging Face API Key if you want to use HF-backed models
If you are on Python 3.14, use the current requirements file as-is. The app now pins a Pillow version that has Windows wheels for this runtime.
If YouTube connect fails with a 401 from Composio, the problem is usually an
invalid or revoked COMPOSIO_API_KEY, not the YouTube account itself.
-
Clone the repository:
-
Create and activate a virtual environment:
-
Install the required packages:
pip install -r requirements.txtIf pip tries to build Pillow from source on Windows, upgrade pip first and retry:
py -3 -m pip install --upgrade pip setuptools wheel
py -3 -m pip install -r requirements.txt- Copy
.env.exampleto.envand fill in at least these values:
GOOGLE_API_KEY=your_google_ai_studio_key
COMPOSIO_API_KEY=your_composio_api_key
COMPOSIO_YOUTUBE_INTEGRATION_ID=your_youtube_integration_id
COMPOSIO_DRIVE_INTEGRATION_ID=your_drive_integration_id
COMPOSIO_NOTION_INTEGRATION_ID=your_notion_integration_id
APP_URL=http://localhost:8501- Start the app:
streamlit run app.pyGet API Keys:
- Google AI Studio: https://makersuite.google.com/app/apikey
- Hugging Face: https://huggingface.co/settings/tokens
- Composio: https://app.composio.dev/settings
Connect the apps you want to use in Composio and copy the auth config IDs into .env:
composio add youtube # Required
composio add googledrive # Optional
composio add notion # OptionalThe app uses your own connected accounts through Composio. It stores only the
connectedAccountId values locally, not Google/Notion passwords or tokens.
The COMPOSIO_*_INTEGRATION_ID values in this repo are used as auth config IDs
for Composio's hosted connect-link flow.
If you are deploying the app, set APP_URL to the public URL of the deployed
site so the OAuth redirect can return to the correct place.
Local run:
streamlit run app.pyThe application will be available at http://localhost:8501 by default.
The app is ready for platforms that run Streamlit apps directly, such as Streamlit Community Cloud, Render, or Railway.
For deployment:
- Set environment variables in the host platform, especially
GOOGLE_API_KEY,COMPOSIO_API_KEY, all requiredCOMPOSIO_*_INTEGRATION_IDvalues, andAPP_URL. - Use the start command:
streamlit run app.py --server.address 0.0.0.0 --server.port $PORT- If your platform does not provide
$PORT, use its documented Streamlit startup command or the defaultstreamlit run app.pyfor Streamlit Cloud.
- Ensure your
.envfile has all required API keys. - Make sure Composio integrations are connected.
- In the Streamlit app sidebar:
- Select AI model(s) for comparison
- Choose secondary tool: None, Drive, or Notion
- Enter your learning goal, for example: "I want to learn python basics in 3 days".
- Click "Generate Learning Path" to create your personalized learning plan.
Note: YouTube integration is always enabled. Drive and Notion are optional.
This app does not use password auth. The email field in the login screen is only the app identity for the local database.
- For local testing, you can set
DEV_USER_EMAILin.envto auto-login as that email. - For normal use, leave
DEV_USER_EMAILblank and sign in with any email you want. - For provider OAuth, users connect their own Google, Drive, and Notion accounts through Composio. That is separate from the app login email.
If you are currently blocked by a Google OAuth screen that only allows a test mail ID, that is a Google Cloud consent-screen setting. Switch the OAuth consent screen out of testing mode or add the real user as a test user. Composio will then be able to complete the OAuth flow for other accounts.
app.py- Main Streamlit applicationutils.py- Utility functions and helper methodsprompt.py- Prompt templaterequirements.txt- Project dependencies