Morning Intel
FreeNot checkedAutomated AI market briefing that filters fresh news, summarizes insights with Gemini, pushes them to Notion, and emails a daily digest.
About
Automated AI market briefing that filters fresh news, summarizes insights with Gemini, pushes them to Notion, and emails a daily digest.
README
An automated daily digest that pulls fresh articles from RSS feeds across Finance, Geopolitics, Tech, Venture, and AI Commerce — filters them for the last 24 hours, deduplicates across days, and sends them to Google Gemini for analysis. Gemini returns a structured briefing written like a sharp friend explaining the news over coffee: what happened, why it matters, and what it means for anyone working in AI, enterprise software, or retail. The digest is pushed to a Notion database and delivered as a formatted HTML email every morning.
Product thinking
This project was built around a simple problem: staying informed is easy, but extracting useful signal from daily news is time-consuming.
Morning Intel solves this by automating the full workflow:
- Pull relevant news from trusted RSS sources.
- Filter only articles from the last 24 hours.
- Deduplicate stories across days.
- Use Gemini to generate structured analysis.
- Save insights to Notion.
- Deliver a formatted email digest every morning.
Impact
- Automates a daily market research workflow end to end.
- Filters and deduplicates articles before sending them to the LLM.
- Converts unstructured news into structured insights by category.
- Pushes outputs into Notion for long-term knowledge management.
- Uses GitHub Actions to run the workflow on a daily schedule.
Screenshot
Setup
1. Clone the repo
git clone <repo>
cd morning-intel
2. Create a .env file
Create a file named .env in the project root with the following five variables:
GEMINI_API_KEY=your_gemini_api_key
NOTION_API_KEY=your_notion_integration_token
NOTION_DATABASE_ID=your_notion_database_id
GMAIL_ADDRESS=your_gmail_address
GMAIL_APP_PASSWORD=your_16_char_app_password
Where to get each:
| Variable | Where to get it |
|---|---|
GEMINI_API_KEY |
Google AI Studio |
NOTION_API_KEY |
Notion Integrations → New integration |
NOTION_DATABASE_ID |
Open your Notion database → copy the ID from the URL |
GMAIL_ADDRESS |
Your Gmail address |
GMAIL_APP_PASSWORD |
Google Account → Security → 2-Step Verification → App passwords |
Note: The
.envfile is listed in.gitignoreand will never be committed.
3. Set up your Notion database
Your Notion database needs these five properties:
| Property name | Type |
|---|---|
Headline |
Title |
Category |
Select |
Insight |
Rich text |
Source |
URL |
Date 1 |
Date |
Make sure your Notion integration has been connected to the database (open the database → ... menu → Connections → add your integration).
4. Install dependencies
pip install -r requirements.txt
5. Run
python3 market_intel.py
The script will print a live summary as it runs:
Fetching articles from RSS feeds...
[Finance] 10/30 passed 24h filter → kept 10
[Geopolitics] 10/10 passed 24h filter → kept 10
...
Freshness: 30/102 articles passed the 24h filter
Dedup: removed 4 already-seen URLs → 26 new articles
Sending articles to Gemini for analysis...
Digest generated.
Pushing sections to Notion...
[ok] 💰 Money Talk
[ok] 🌍 World Lore
...
Sending email...
[ok] Email sent to [email protected]
--- Summary ---
Articles seen : 102
Passed 24h filter : 30
New (not dupes) : 26
Sections in digest: 5
Pushed to Notion : 5
Automating with GitHub Actions
To run the digest automatically every morning, add this workflow file to your repo at .github/workflows/daily_digest.yml:
name: Daily Morning Intel
on:
schedule:
- cron: '0 7 * * *' # runs at 7:00 AM UTC every day
workflow_dispatch: # allows manual trigger from GitHub UI
jobs:
run-digest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run market intel script
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
NOTION_DATABASE_ID: ${{ secrets.NOTION_DATABASE_ID }}
GMAIL_ADDRESS: ${{ secrets.GMAIL_ADDRESS }}
GMAIL_APP_PASSWORD: ${{ secrets.GMAIL_APP_PASSWORD }}
run: python3 market_intel.py
- name: Commit updated seen_urls.json
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add seen_urls.json
git diff --cached --quiet || git commit -m "chore: update seen_urls.json [skip ci]"
git push
Then add your secrets to GitHub:
Go to your repo → Settings → Secrets and variables → Actions → New repository secret and add each of the five variables from your .env file.
The workflow commits the updated
seen_urls.jsonback to the repo after each run so deduplication persists across days.
Tech Stack
| Layer | Tool |
|---|---|
| Language | Python 3 |
| News sources | RSS via feedparser |
| AI analysis | Google Gemini API (gemini-flash-latest) |
| Knowledge base | Notion API v1 |
| Delivery | Gmail SMTP |
| Automation | GitHub Actions |
Notes
- Articles older than 24 hours are filtered out before being sent to Gemini.
- URLs are tracked in
seen_urls.jsonso the same story never appears twice across days. - If a feed fails, the script skips it and continues rather than crashing.
- If Gemini returns invalid JSON, the raw response is printed and the script exits gracefully.
Built as a personal AI workflow tool — part of my ongoing exploration of LLM-powered automation.
Installing Morning Intel
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/28ips96/morning-intelFAQ
Is Morning Intel MCP free?
Yes, Morning Intel MCP is free — one-click install via Unyly at no cost.
Does Morning Intel need an API key?
No, Morning Intel runs without API keys or environment variables.
Is Morning Intel hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Morning Intel in Claude Desktop, Claude Code or Cursor?
Open Morning Intel on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbCompare Morning Intel with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
