loading…
Search for a command to run...
loading…
Generates structured newsletters with 8 sections using AI and provides NLP analytics such as word count, reading time, sentiment, and keywords.
Generates structured newsletters with 8 sections using AI and provides NLP analytics such as word count, reading time, sentiment, and keywords.
This project is an AI-powered newsletter generation system built using the Model Context Protocol (MCP). It dynamically creates structured newsletters covering 8 distinct sections and provides automated NLP analytics (word count, reading time, sentiment, and keywords).
The project is built on Node.js and uses the MCP SDK. It exposes two core tools:
generate_newsletter: Uses OpenAI's API to dynamically write content based on structured prompt templates.analyze_newsletter: Uses local processing to parse the generated markdown, calculate word frequencies, estimate reading time, and score sentiment.The MCP Server runs over stdio, allowing it to be integrated easily into local LLM clients like Claude Desktop, or run standalone via the CLI.
npm install to install the MCP SDK and dotenv..env.example and rename it to .env..env and paste your Google Gemini API key:GEMINI_API_KEY=your_gemini_api_key_here
To start the raw MCP server (which communicates via standard input/output):
npm start
(Note: Because it uses stdio, it will appear to hang. This is normal, as it is waiting for JSON-RPC messages. Press Ctrl+C to exit).
To use the application manually as a standard Node app:
npm run cli
Follow the on-screen prompts to enter a topic. It will automatically generate the newsletter, save it to the /outputs folder, and print out analytics (saving the JSON to /analytics).
npm install
npm run cli
# Topic: Quantum Computing in AI
To use this server as a tool inside Claude Desktop:
claude_desktop_config.json).mcpServers block:{
"mcpServers": {
"newsletter-generator": {
"command": "node",
"args": ["/absolute/path/to/ai-newsletter-mcp/server/index.js"]
}
}
}
The project includes an automated workflow that generates, analyzes, and emails newsletters without manual intervention.
This system uses nodemailer. To send emails (e.g., via Gmail):
.env file:[email protected]
EMAIL_PASS=your-16-char-app-password
(Security Note: Never commit your .env file or actual password to GitHub!)
Edit the config/schedulerConfig.json file to manage delivery:
Demo Mode (Every 5 minutes):
{ "mode": "interval", "intervalMinutes": 5 }
Production Mode (Daily at 8:00 AM):
{ "mode": "daily", "dailyTime": "08:00" }
The scheduler boots up automatically when the MCP server runs. However, to run the scheduler independently for testing:
npm run scheduler
All automated actions are logged inside the /logs directory.
GEMINI_API_KEY is valid.Run in your terminal:
claude mcp add newsletter-generator -- npx