Daily Briefing MCP Agent
This will generate a daily briefing from a sources. You do not need to install them all, the code will run without them all installed but their tools will not be accessible. The instructions for all of them are below.
How to install and run
pip install -r requirements.txt- You need to
git clonethe following repos and runnpm installin all the project roots - Follow the instructions at https://github.com/nspady/google-calendar-mcp to set up OAuth for google
- enable Gmail and Google Calendar APIs on Google Cloud
- create an OAuth app for desktop
- download the JSON credentials and change the name to
gcp-oauth.keys.json, then copy it to the root of both the gmail and gcal projects from above - run
npm run authfrom the root ofgoogle-calendar-mcpto set up OAuth access
- For the Gmail MCP Server follow the instructions in the README under "2. Run Authentication"
TLDR: Place thegcp-oauth.keys.jsonfile into the root of Gmail MCP Server project OR runmkdir -p ~/.gmail-mcp && mv gcp-oauth.keys.json ~/.gmail-mcp/. Runnpm run authfrom the root of Gmail-MCP-Server to enable OAuth - Follow the instructions at https://github.com/makenotion/notion-mcp-server to set up Notion access
- Get an Exa API key here.
- WhatsApp suppor - Follow the instructions at https://github.com/lharries/whatsapp-mcp to clone and install. This will require you to authenticate to Whatsapp at least once via QR code in the terminal
- This requires a specific version of
golang. If you have already installed go (i.e. with homebrew) and don't want to override it for fear of breaking some system dependcies, downloadgvmthen use it to download the required version. You may need to configure your$PATHto account for different go versions via gvm - This repo only has instructions to run via Claude Desktop but you can use the
uvpackage manager to create a.venvinside thewhatsapp-mcp-serverdirectory and install the dependencies. These are different than the dependencies for this project. Thehostin this project will automatically activate the venv for you when you run this project - You will need to regularly run the
main.goscript to sync the latest messages into the sqlite DB.
- This requires a specific version of
- (Optional) You may want to comment out code in the above repos that expose tools such as ones that enable delete of emails or notion pages
- Set the following enviroment variables in an
.envfile in the project root:
ANTHROPIC_API_KEY=
GCAL_MCP_SERVER_PATH=/path/to/google-calendar-mcp/build/index.js
GMAIL_MCP_SERVER_PATH=/path/to/Gmail-MCP-Server/dist/index.js
OPENAPI_MCP_HEADERS={"Authorization": "Bearer ntn_YOUR_TOKEN_HERE", "Notion-Version": "2022-06-28"}
NOTION_MCP_SERVER_PATH=/path/to/notion-mcp-server/bin/cli.mjs
WHATSAPP_MCP_SERVER_PATH=/path/to/whatsapp-mcp/whatsapp-mcp-server/main.py
WHATSAPP_MCP_SERVER_VENV_PATH=/path/to/whatsapp-mcp/whatsapp-mcp-server/.venv
EXA_API_KEY=
EXA_MCP_SERVER_PATH=/path/to/exa-mcp-server/build/index.js
Note the unusual setup for the Notion Token under OPENAPI_MCP_HEADERS
If you want observability and tracing, set these environmen variables too
LANGFUSE_SECRET_KEY=
LANGFUSE_PUBLIC_KEY=
LANGFUSE_HOST="https://cloud.langfuse.com"
- To utilize the default daily briefing flow, create a Notion page called
Daily Briefings. Ideally this should be at the root of your Notion workspace.
You can utilize other names, but update thevariablesat the top ofmaininhost.py. - Update the
system_promptinmaininhost.pywith a description of who you are and any extra information that will make the model's output better. - The instructions for the LLM on how to generate the daily briefing are in the
queryvariable inhost.pyin themainmethod. Change the step-by-step instructions based on how you want you daily briefing created.
For example, if you want the briefing to also check a specific Notion page that has your tasks, the model can also do this - run
python host.pyto create a daily briefing one time.
Future Work
- More connectors
- Script to run the briefing automatically at the same time every day