AI-Powered Research Assistant — A production-ready orchestration of a Chrome Extension and a local Python MCP backend.
IntelAgent bridges the gap between high-level AI reasoning and local system capabilities. It empowers users to fetch trending news from multiple sources, ground facts with Google Search, manage findings against a local JSON ledger, and visualize data through a beautiful, interactive Prefab dashboard.
- 🌐 Multi-Source Research: Seamlessly fetches from Hacker News, Dev.to, and Reddit, combined with broad factual grounding via Google Search (Dynamic Grounding).
- 📚 Local Memory: Persistent JSON library (
saved_articles.json) for article deduplication, full-text search, and historical research tracking. - 📊 Dynamic Dashboards: Automatically generates rich UI dashboards using Prefab UI (Bar, Line, Pie, Radar charts + metric cards + tables).
- 🧩 MCP Native: Built on the Model Context Protocol (FastMCP) for robust, standardized communication between the LLM and local tools.
- ⚡ Persistent UI: Runs in a dedicated Chrome Extension window (Manifest V3) with a resizable dashboard + chat layout.
- 🤖 Multi-Provider: Supports Gemini (with thinking levels) and Ollama (with reasoning effort) as interchangeable AI backends.
graph TD
User([User Prompt]) --> Extension[Chrome Extension Window]
Extension --> Provider{AI Provider}
Provider -- Gemini --> GeminiAPI[Gemini API]
Provider -- Ollama --> OllamaAPI[Ollama :11434]
GeminiAPI -- Tool Discovery --> FastMCP[FastMCP Server :8000]
OllamaAPI -- Tool Discovery --> FastMCP
FastMCP -- Tool Definition --> Provider
subgraph "Local Tools (Python)"
FastMCP --> T1[fetch_tech_news]
FastMCP --> T2[manage_local_library]
FastMCP --> T3[render_dashboard]
T1 --> HN[Hacker News / Dev.to / Reddit]
T2 --> JSON[(saved_articles.json)]
T3 --> Cache[_LAST_DASHBOARD_HTML]
end
GeminiAPI -- Dynamic Grounding --> Google[Google Search]
Provider -- Tool Call --> FastMCP
FastMCP -- status: dashboard_ready --> Extension
Extension -- GET /dashboard?theme=... --> Cache
Cache -- HTML Page --> Dashboard{{iframe Dashboard}}
The backend requires Python 3.14+ and uv (recommended).
# Clone the repo
git clone https://github.com/swapniel/intel-agent.git
cd intel-agent
# Install dependencies using uv
uv sync
# Start the server (uses the virtual environment automatically)
./.venv/bin/python main.pyThe server will run on http://localhost:8000. Keep this terminal open.
- Open Chrome and navigate to
chrome://extensions/. - Enable Developer mode (top right).
- Click Load unpacked and select the
extensionfolder in this repository. - Click the IntelAgent icon in your toolbar to open the extension window.
- Click the gear icon (⚙️) to configure your AI provider:
- Gemini: Enter your API key and select a thinking level (optional).
- Ollama: Set the base URL (
http://localhost:11434) and model name. SetOLLAMA_ORIGINS="*"env var before starting Ollama to allow extension access.
| Tool | Capability | Source/Target |
|---|---|---|
fetch_tech_news |
Retrieves trending tech discussions from multiple sources. | Hacker News, Dev.to, Reddit |
manage_local_library |
Full CRUD on research: check_duplicates, save_new, list_all, search, update, delete. |
saved_articles.json |
render_dashboard |
Compiles research into a rich HTML dashboard. Supports 4 chart types, metrics, and tables. | Prefab UI |
| Google Search | (Native, Gemini only) Provides real-time factual grounding for general queries. | Google Search Index |
- Layouts:
auto(adaptive) andsplit(chart + content side-by-side). - Rich Components:
- Charts: Bar, Line, Pie, Radar.
- KPIs: Metric cards with trend indicators and sentiment.
- Data Tables: Searchable and paginated tables.
- Article Cards: Curated news feed with AI summaries and badges.
Prompt:
"Find the top 3 articles on 'Quantum Computing' from Hacker News. Compare them with recent breakthroughs found on Google Search. Save the new ones and show me a dashboard with a market interest chart."
Execution Flow:
- Search: Gemini calls
fetch_tech_newsand performs a grounded Google Search. - Filter: Gemini calls
manage_local_library(check_duplicates)to see what's already saved. - Summarize: Gemini generates concise, 1-sentence summaries for the new findings.
- Persist: Gemini calls
manage_local_library(save_new)to update your local ledger. - Visualize: Gemini calls
render_dashboardwith curated cards and a relevant chart. - Result: The dashboard panel updates instantly with a professional research report.
- Backend: Python 3.14, FastMCP, FastAPI, Uvicorn, Prefab-UI.
- Frontend: JavaScript (ES6+), Manifest V3, Gemini SDK (ES module bundle).
- AI Providers: Google Gemini (with thinking levels + Google Search grounding) or Ollama (OpenAI-compat, with reasoning effort).
- Storage: Local JSON filesystem.
MIT © Swapniel