daily-standup-agent
v2.0.4
Published
AI agent that collects daily standup updates, structures them into a professional MOM email, and sends via Zoho Mail MCP. Built with LangChain, LangGraph, and Groq LLM.
Maintainers
Readme
📧 Daily Standup Email Agent
An AI-powered agent that collects daily standup updates, structures them into a professional Minutes of Meeting (MOM) email, and sends it via Zoho Mail MCP. Built with LangChain, LangGraph, and Groq's blazing-fast LLM inference (Llama 3.3 70B).
⚡ How It Works
- You provide standup updates (text or interactive)
- The agent structures them into a professional MOM email using Groq AI
- Zoho Mail MCP sends the email through your Zoho Mail account
No SMTP credentials needed in the agent — email delivery is handled entirely by the Zoho Mail MCP server configured in your IDE.
🏗️ Architecture
┌──────────────┐
│ Parse Input │ ← Extract members, tasks, recipients
└──────┬───────┘
│
┌──────┴───────┐
│ Compose Email │ ← Generate plain text + HTML body
└──────┬───────┘
│
┌──────┴───────┐
│ Subject Line │ ← Generate professional subject
└──────┬───────┘
│
┌──────┴───────┐
│ Prepare MCP │ ← Build Zoho Mail MCP payload
└──────────────┘
│
▼
┌──────────────────┐
│ Zoho Mail MCP │ ← IDE sends via MCP (external)
│ (send_mail tool) │
└──────────────────┘📦 Installation
cd daily-standup-agent
npm install
npm link🔧 Setup
1. Agent Setup (Groq + Recipients)
daily-standup setup2. Zoho Mail MCP Setup (in IDE)
Configure the Zoho Mail MCP server in your IDE's MCP config (.kiro/settings/mcp.json):
- Go to mcp.zoho.com
- Create a new MCP server
- Add the Zoho Mail tools (specifically
send_mail) - Copy the MCP URL
- Add to your IDE config:
{
"mcpServers": {
"zoho-mail": {
"url": "https://mcp.zoho.com/api/v1/<your-server-id>/sse",
"disabled": false,
"autoApprove": ["send_mail"]
}
}
}🚀 Usage
Quick Mode
# Compose standup email
daily-standup "Nikesh: Working on testing solution. No blockers. Aboli: Revamping SecurityBoat.net. No blockers. Sai: Researching Ollama models. No blockers." \
--to [email protected] \
--cc [email protected] \
--sender "Mayur"Interactive Mode
daily-standup interactive \
--to [email protected] \
--cc [email protected] \
--sender "Mayur" \
--time "10:40 – 11:50"View System Prompt
daily-standup promptOptions
| Flag | Description | Default |
|------|-------------|---------|
| --to <emails> | To recipients (comma-separated) | From .env |
| --cc <emails> | CC recipients (comma-separated) | From .env |
| --sender <name> | Sender name for signature | From .env |
| --output <file> | Save email content to a file | — |
| --model <model> | Groq model to use | llama-3.3-70b-versatile |
| --time <time> | Meeting time (interactive mode) | — |
📧 Output
The agent outputs:
- Human-readable email preview — the full MOM email in plain text
- Zoho Mail MCP payload — structured JSON ready for the
send_mailtool
The IDE agent router reads the MCP payload and calls:
- MCP Server:
zoho-mail - Tool:
send_mail - Arguments: the JSON payload from the agent output
📁 Project Structure
daily-standup-agent/
├── bin/
│ └── cli.js # CLI entry point
├── src/
│ ├── index.js # Main agent runner
│ ├── graph.js # LangGraph pipeline
│ ├── state.js # Agent state (Annotation)
│ ├── nodes.js # Pipeline nodes
│ ├── prompts.js # Email composition prompts
│ ├── llm.js # Groq LLM configuration
│ └── setup.js # Interactive setup
├── package.json
└── README.md🤝 Programmatic Usage
const { runAgent } = require("daily-standup-agent");
const result = await runAgent(
"Nikesh: Testing. Aboli: Design. Sai: Research.",
{
to: ["[email protected]"],
cc: ["[email protected]"],
sender: "Mayur",
model: "llama-3.3-70b-versatile",
}
);
console.log(result.output); // Human-readable email
console.log(result.mcpPayload); // Zoho Mail MCP payload JSON
console.log(result.sendStatus); // "ready"
// The IDE agent router sends via:
// MCP Server: zoho-mail → Tool: send_mail → Args: result.mcpPayload📄 License
MIT
