Newsletter Commerce Mcp

io.github.teamsincetodayPublished by GitHub account teamsincetodayv0.1.3Updated Oct 24, 2026

Extract shoppable products from newsletter content with affiliate signals.

Overview

AI-generated overview

A local MCP server that extracts shoppable products, sponsors and affiliate signals from newsletter issues and formats them into a ready-to-paste products list.

What you can do
Extract products, affiliate links and sponsor mentions from newsletter HTML or plain text, with confidence and recommendation strength per product, and cache results by newsletter ID. Score sponsor sections by estimated CPM, read-through rate and audience fit. Compare product mentions across several previously extracted issues to surface trending products, categories and brands. Format extracted products into a markdown or HTML 'Products in This Edition' section, full or minimal style.
When to use it
Useful for newsletter writers, affiliate marketers and editors who want to mine Substack, Ghost, Beehiiv or plain-text issues for product and sponsor mentions, compare trends across editions, and draft a shoppable footer section without manual reading.
Requirements
Runs locally over stdio via the npm package newsletter-commerce-mcp, so Node.js and npx are needed. Requires an OpenAI API key in OPENAI_API_KEY for product extraction. Optional settings include MCP_API_KEYS for paid usage, AGENT_ID for rate limiting, CACHE_DIR for the SQLite cache and PAYMENT_ENABLED. Network access is needed for the OpenAI calls.
Before you install
Newsletter content is sent to OpenAI for extraction, so avoid pasting confidential or subscriber material. The OpenAI key is a billable credential and each extraction incurs an AI cost. Paid usage is billed per call at $0.01 when MCP_API_KEYS is set, and PAYMENT_ENABLED can enforce limits. Extracted affiliate links and sponsor scores are estimates, not verified data.

Installation

In SourceWeft

  1. Open Newsletter Commerce Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Newsletter Commerce Intelligence MCP

[npm] [License: MIT] [Stars]

Turn newsletters into affiliate revenue. Extract sponsored products, brand mentions, and affiliate signals from any Substack, Ghost, or Beehiiv issue. Then auto-generate a shoppable "Products in this edition" section ready to paste into your newsletter. F1=100% on eval suite. Free tier: 200 calls/day.

⭐ If this saves you time, please star the repo — it helps other developers find it.

Live endpoint: https://newsletter-commerce-mcp.sincetoday.workers.dev/mcp · See examples

Extract product mentions, score sponsors, and track affiliate trends from newsletters. Supports Substack, Ghost, Beehiiv, and plain text. Built on x402, the open payment standard backed by Shopify, Google, Microsoft, Visa, and the Linux Foundation.

Tools

ToolDescription
extract_newsletter_productsExtract products, affiliate links, and sponsor mentions from a newsletter issue
analyze_newsletter_sponsorsScore sponsor sections by CPM, read-through rate, and audience fit
track_product_trendsCompare product mentions across multiple newsletter issues to surface trending products and brand patterns
generate_newsletter_products_sectionFormat extracted products into a 'Products in This Edition' footer section (markdown or HTML)

Quick Start

bash
# Installnpm install newsletter-commerce-mcp
# Configurecp .env.example .env# Edit .env: set OPENAI_API_KEY
# Run (stdio MCP server)npx newsletter-commerce-mcp

MCP Client Config

json
{  "mcpServers": {    "newsletter-commerce": {      "command": "npx",      "args": ["newsletter-commerce-mcp"],      "env": {        "OPENAI_API_KEY": "sk-..."      }    }  }}

Tool Reference

extract_newsletter_products

json
{  "content": "Newsletter HTML or plain text (max 200k chars)",  "newsletter_id": "optional-cache-key",  "format": "html",  "api_key": "optional-paid-key"}

Returns:

json
{  "newsletter_id": "swipe-file-issue-47",  "products": [    {      "name": "Notion AI",      "category": "saas",      "mention_context": "running my entire writing workflow through Notion AI",      "recommendation_strength": "strong",      "affiliate_link": null,      "confidence": 0.94,      "is_sponsored": false    }  ],  "sponsor_sections": [...],  "_meta": { "processing_time_ms": 1620, "ai_cost_usd": 0.0028, "cache_hit": false }}

analyze_newsletter_sponsors

json
{  "content": "Newsletter HTML or plain text",  "newsletter_id": "optional",  "api_key": "optional"}

Returns CPM estimate, read-through rate, and sponsor-reader fit score per sponsor section.

track_product_trends

json
{  "newsletter_ids": ["issue-45", "issue-46", "issue-47"],  "category_filter": ["saas", "books"]}

Requires prior extract_newsletter_products calls for each newsletter_id. Returns trend data including top_category, avg_recommendation_strength, and brand per product trend.

generate_newsletter_products_section

json
{  "newsletter_id": "swipe-file-issue-47",  "format": "markdown",  "style": "full",  "api_key": "optional"}

Formats extracted products into a ready-to-paste 'Products in This Edition' section. Pass newsletter_id (uses cached extraction) or products[] directly. format: markdown (default) or html. style: full (default, grouped by endorsement strength with context quotes) or minimal (compact list).

Example Output

Real extraction from a TLDR Tech newsletter (live eval: F1=88%, 95/100 score, $0.00051/call, 7390ms):

json
{  "newsletter_id": "tldr-2024-03-07",  "products": [    {      "name": "Groq",      "category": "saas",      "mention_context": "Groq has launched public API access — runs Llama 2 at 300 tokens/second",      "confidence": 0.94,      "recommendation_strength": "neutral"    },    {      "name": "Devin (Cognition AI)",      "category": "saas",      "mention_context": "first AI software engineer — benchmarks show it can complete real GitHub issues end-to-end",      "confidence": 0.91,      "recommendation_strength": "strong"    }  ]}

See /examples endpoint for full output with value narrative: https://newsletter-commerce-mcp.sincetoday.workers.dev/examples

Pricing

  • Free tier: 200 calls/day per agent (no API key required)
  • Paid: $0.01/call — set MCP_API_KEYS with valid keys

Environment Variables

VariableRequiredDefaultDescription
OPENAI_API_KEYYes—OpenAI API key
AGENT_IDNoanonymousAgent identifier for rate limiting
MCP_API_KEYSNo—Comma-separated paid API keys
CACHE_DIRNo./data/cache.dbSQLite cache path
PAYMENT_ENABLEDNofalseSet true to enforce limits

Development

bash
npm installnpm run typecheck   # Zero type errorsnpm test            # All tests passnpm run build       # Compile to dist/

License

MIT — Since Today Studio

Source: README.md at commit 7f1e76a

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.3LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.