AI Personal Hub
Unified personal assistant MCP server that connects local files, GitHub repositories, YouTube playlists, Gmail, and Steam data. Enables querying and managing personal data across multiple platforms through natural language via LM Studio integration.
README
AI Personal Hub
Unified personal assistant that connects Local Files, GitHub, YouTube, Gmail, Steam, and Summarization through Model Context Protocol (MCP), with a clean Flask UI and LM Studio integration.
<img width="1318" height="859" alt="image" src="https://github.com/user-attachments/assets/cd375f7f-0e8c-4121-b542-4d8ccec2f5f9" /> <img width="1663" height="852" alt="image" src="https://github.com/user-attachments/assets/c5256413-a17e-4e44-9cb6-33b51bb2d717" />
Features
- Local notes: list and open
.txtfiles fromnotes/ - GitHub: repos, commits, list files, fetch file content, issues
- YouTube: Liked Videos (LL), Liked Songs (LM) via OAuth
- Gmail: read last emails via OAuth
- Steam: recent owned games and playtime
- Summarizer: prompt exposed as an MCP tool
- Modern chat-style UI with quick actions and linkified results
Architecture
Flaskserves the UI and a simple/askendpointLM Studioruns a local OpenAI-compatible server for LLM responsesMCP server(mcp_server/server.py) exposes tools that LM Studio can call
Browser ↔ Flask UI ↔ LM Studio (LLM) ↔ MCP Tools (python -m mcp_server.server)
Setup
- Python env
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
- LM Studio (recommended defaults)
- Start LM Studio local server (OpenAI-compatible) on
http://localhost:1234 - Set environment variables (PowerShell):
setx LM_STUDIO_BASE_URL http://localhost:1234
setx LM_STUDIO_API_KEY lm-studio
setx LM_STUDIO_MODEL your-model-name
- MCP server registration in LM Studio
Edit LM Studio mcp.json and add:
{
"mcpServers": {
"personal-hub-server": {
"command": "D:\\AI_MCP\\ai-personal-hub\\.venv\\Scripts\\python.exe",
"args": ["-m", "mcp_server.server"],
"cwd": "D:\\AI_MCP\\ai-personal-hub"
}
}
}
Then start the server in LM Studio Tools (MCP), or run manually:
python -m mcp_server.server
- Service credentials
- GitHub: set
GITHUB_TOKEN(PAT, repo read scope recommended) - Steam: set
STEAM_API_KEYandSTEAM_ID - Notes: create
notes/with.txtfiles
YouTube OAuth (token.json)
- In Google Cloud: enable "YouTube Data API v3"
- Create OAuth client (Desktop app) → download
client_secret.jsonto project root - Generate
token.json(one-time):
python -c "from google_auth_oauthlib.flow import InstalledAppFlow; import json; flow=InstalledAppFlow.from_client_secrets_file('client_secret.json',['https://www.googleapis.com/auth/youtube.readonly']); creds=flow.run_local_server(port=0); open('token.json','w',encoding='utf-8').write(creds.to_json())"
Gmail OAuth (token.json)
- Similar flow; ensure scope
https://www.googleapis.com/auth/gmail.readonly
Run
Flask UI:
python app.py
Open http://127.0.0.1:5000/
MCP server (separate terminal):
python -m mcp_server.server
Available MCP tools
- Files:
list_local_files,fetch_local_file - GitHub:
github_repos,github_commits,github_list_files,github_file_content,github_issues,github_issue - YouTube:
yt_liked_videos,ytm_liked_songs,yt_playlist - Gmail:
read_emails - Steam:
steam_games - Summarize:
summarizeprompt
Example prompts
- “List my local notes.”
- “Open a.txt.”
- “List repos for Harsh-1807.”
- “List files in Harsh-1807/weather.”
- “Open README.md from Harsh-1807/weather.”
- “Show open issues for Harsh-1807/weather.”
- “List 5 of my liked YouTube videos.”
- “List 5 of my liked songs on YouTube Music.”
- “Summarize my last 5 emails.”
- “Which Steam games do I play most?”
Troubleshooting
- LLM answers without calling tools: lower temperature; add a system prompt telling it to prefer MCP tools; ensure the tool server is running and registered in LM Studio.
- YouTube
LMliked songs not returning results: some accounts do not expose LM over the API; tryyt_liked_videos(LL) oryt_playlist("LL"). - Permission errors: re-create
token.jsonfor the correct Google account; verify scopes.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.