# Daily Briefing MCP Server
An MCP (Model Context Protocol) server that aggregates calendar events, meeting summaries, action items, and travel information from multiple sources into personalized daily briefings.
## Features
- **Multi-Source Aggregation**: Combines data from Google Calendar, TripIt, Fireflies.ai, and other iCal feeds
- **Daily Briefings**: Generate comprehensive daily summaries with schedule, conflicts, and action items
- **Conflict Detection**: Automatically detects overlapping events and back-to-back meetings
- **Focus Time**: Identifies available time slots for deep work
- **Meeting Summaries**: Includes AI-generated summaries from Fireflies.ai meetings
- **Travel Alerts**: Highlights upcoming travel and related alerts
- **Multiple Output Formats**: Markdown, plain text, or JSON
## Quick Start
### 1. Configure Data Sources
```bash
# Google Calendar (iCal feed)
export BRIEFING_GOOGLE_CALENDAR_URL="https://calendar.google.com/calendar/ical/..."
# TripIt (iCal feed)
export BRIEFING_TRIPIT_ICAL_URL="https://www.tripit.com/feed/ical/private/..."
# Fireflies.ai (optional)
export BRIEFING_FIREFLIES_API_KEY="your-api-key"
```
### 2. Run the Server
```bash
# Install
pip install -e .
# Run
python -m daily_briefing
```
## Configuration
All configuration via environment variables with `BRIEFING_` prefix:
### Server Settings
| Variable | Description | Default |
|----------|-------------|---------|
| `BRIEFING_TRANSPORT` | Transport mode: `stdio` or `streamable-http` | `stdio` |
| `BRIEFING_HOST` | HTTP server host | `0.0.0.0` |
| `BRIEFING_PORT` | HTTP server port | `8003` |
| `BRIEFING_LOG_LEVEL` | Log level | `INFO` |
| `BRIEFING_TIMEZONE` | Timezone for scheduling | `America/New_York` |
### Calendar Sources
| Variable | Description |
|----------|-------------|
| `BRIEFING_GOOGLE_CALENDAR_URL` | Google Calendar iCal feed URL |
| `BRIEFING_GOOGLE_CALENDAR_NAME` | Display name for Google Calendar |
| `BRIEFING_GOOGLE_CALENDAR_ENABLED` | Enable Google Calendar (default: true) |
| `BRIEFING_TRIPIT_ICAL_URL` | TripIt private iCal feed URL |
| `BRIEFING_TRIPIT_ENABLED` | Enable TripIt (default: true) |
| `BRIEFING_ADDITIONAL_ICAL_URLS` | Comma-separated additional iCal URLs |
| `BRIEFING_ADDITIONAL_ICAL_NAMES` | Comma-separated names for additional sources |
### Fireflies.ai
| Variable | Description |
|----------|-------------|
| `BRIEFING_FIREFLIES_API_KEY` | Fireflies.ai API key |
| `BRIEFING_FIREFLIES_ENABLED` | Enable Fireflies (default: true) |
### Briefing Settings
| Variable | Description | Default |
|----------|-------------|---------|
| `BRIEFING_WORK_START_HOUR` | Work day start hour | `9` |
| `BRIEFING_WORK_END_HOUR` | Work day end hour | `17` |
| `BRIEFING_CONFLICT_BUFFER_MINUTES` | Min buffer between meetings | `15` |
| `BRIEFING_MEETING_LOOKBACK_DAYS` | Days to look back for meetings | `1` |
| `BRIEFING_TRAVEL_LOOKAHEAD_DAYS` | Days to look ahead for travel | `7` |
## Available Tools
| Tool | Description |
|------|-------------|
| `health_check` | Check server health and source connections |
| `get_daily_briefing` | Generate comprehensive daily briefing |
| `get_todays_schedule` | Get today's events and conflicts |
| `get_action_items` | Get pending action items from meetings |
| `get_recent_meetings` | Get summaries of recent meetings |
| `get_upcoming_travel` | Get upcoming travel information |
| `check_availability` | Find available time slots on a date |
| `get_week_overview` | Get overview of the upcoming week |
## Example Usage
### Claude Desktop Configuration
```json
{
"mcpServers": {
"daily-briefing": {
"command": "python",
"args": ["-m", "daily_briefing"],
"env": {
"BRIEFING_GOOGLE_CALENDAR_URL": "https://calendar.google.com/...",
"BRIEFING_TRIPIT_ICAL_URL": "https://tripit.com/feed/...",
"BRIEFING_FIREFLIES_API_KEY": "your-api-key"
}
}
}
}
```
### Example Queries
```
"Give me my daily briefing"
"What's on my schedule today?"
"Do I have any scheduling conflicts?"
"What action items do I have from recent meetings?"
"When am I free for a 1-hour meeting today?"
"What does my week look like?"
"Any upcoming travel?"
```
### Sample Briefing Output
```markdown
# Daily Briefing - Wednesday, January 15, 2025
## Today's Schedule
- **09:00 AM - 09:30 AM** (30m)
- Team Standup
- **02:00 PM - 03:00 PM** (60m)
- Product Review
- *Location:* Conference Room A
## Available Focus Time
- 09:30 AM - 02:00 PM (270m)
## Travel Alerts
✈️ Flight in 3 days: Flight to San Francisco
## Recent Meeting Summaries
### Sprint Planning
*January 14, 2025*
Team discussed sprint goals and assigned tasks.
**Action Items:**
- [ ] Review PR #123
- [ ] Update documentation
## Pending Action Items
- [ ] Review PR #123
- *From: Sprint Planning*
## Today's Stats
| Metric | Value |
|--------|-------|
| Total Meetings | 2 |
| Meeting Time | 1.5 hours |
| Focus Time | 4.5 hours |
```
## Development
### Install Dependencies
```bash
pip install -e ".[dev]"
```
### Run Tests
```bash
pytest
```
### Run with Debug Logging
```bash
BRIEFING_LOG_LEVEL=DEBUG python -m daily_briefing
```
## Docker
```bash
# Build
docker build -t daily-briefing .
# Run
docker run \
-e BRIEFING_GOOGLE_CALENDAR_URL="..." \
-e BRIEFING_TRIPIT_ICAL_URL="..." \
-p 8003:8003 \
daily-briefing
```
## Kubernetes Deployment
```bash
helm install daily-briefing ./helm/daily-briefing \
--set briefing.googleCalendar.url="YOUR_GOOGLE_CALENDAR_URL" \
--set briefing.tripit.icalUrl="YOUR_TRIPIT_URL"
```
## Architecture
```
┌─────────────────────────────────────────────────────────────────┐
│ Daily Briefing MCP Server │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ Google │ │ TripIt │ │ Fireflies.ai │ │
│ │ Calendar │ │ (Travel) │ │ (Meetings) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────────────┘ │
│ │ │ │ │
│ └─────────────────┼──────────────────┘ │
│ │ │
│ ┌──────▼───────┐ │
│ │ Aggregator │ │
│ └──────┬───────┘ │
│ │ │
│ ┌─────────────────┼─────────────────┐ │
│ │ │ │ │
│ ┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐ │
│ │ Conflict │ │ Free │ │ Action │ │
│ │ Detection │ │ Slots │ │ Items │ │
│ └───────────┘ └───────────┘ └───────────┘ │
│ │ │
│ ┌──────▼───────┐ │
│ │ Formatters │ │
│ │ (MD/Text/JSON)│ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
```
## License
MIT