DEV Community

Edison Flores
Edison Flores

Posted on

I built an MCP marketplace that auto-responds to GitHub comments — here's how

The problem

I launched MarketNow 2 weeks ago. I opened 90+ GitHub issues across 50+ repos to promote it. Within days, people started commenting — questions, feedback, feature requests.

But I couldn't keep up. Comments went unanswered for days. By the time I saw them, the conversation had moved on.

So I built an auto-monitor that runs every hour and:

  1. Checks all my dev.to articles for new comments
  2. Checks all my GitHub issues for new comments
  3. Checks npm download trends
  4. Checks GitHub stars
  5. Checks site uptime
  6. Sends me an email with everything

The code

import json, os, urllib.request, smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# 1. Check dev.to for new comments
def check_devto(seen_comments):
    articles = api_get('https://dev.to/api/articles/me/all?per_page=50',
        headers={'api-key': DEVTO_API_KEY})
    alerts = []
    for article in articles:
        if article.get('comments_count', 0) == 0:
            continue
        comments = api_get(f'https://dev.to/api/comments?a_id={article["id"]}',
            headers={'api-key': DEVTO_API_KEY})
        for c in comments:
            cid = c.get('id_code', '')
            if cid in seen_comments:
                continue
            if c['user']['username'] == MY_USERNAME:
                continue
            # NEW comment!
            alerts.append({
                'article': article['title'],
                'commenter': c['user']['username'],
                'comment': c['body_html'][:200],
            })
            seen_comments[cid] = True
    return alerts

# 2. Check GitHub issues
def check_github(seen_comments):
    data = api_get(f'https://api.github.com/search/issues?q=author:{USERNAME}+type:issue+updated:>{since}')
    alerts = []
    for issue in data['items']:
        comments = api_get(f'https://api.github.com/repos/{repo}/issues/{num}/comments')
        for c in comments:
            if c['user']['login'] == USERNAME:
                continue
            if 'bot' in c['user']['login']:
                continue
            if str(c['id']) in seen_comments:
                continue
            alerts.append({
                'repo': repo,
                'issue': issue['title'],
                'commenter': c['user']['login'],
                'comment': c['body'][:200],
            })
    return alerts
Enter fullscreen mode Exit fullscreen mode

The GitHub Actions workflow

name: Auto-Monitor
on:
  schedule:
    - cron: '15 * * * *'  # every hour
  workflow_dispatch:
jobs:
  monitor:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: python3 scripts/auto-monitor.py
        env:
          DEVTO_API_KEY: ${{ secrets.DEVTO_API_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SMTP_USER: ${{ secrets.SMTP_USER }}
          SMTP_PASS: ${{ secrets.SMTP_PASS }}
Enter fullscreen mode Exit fullscreen mode

The email

When someone comments on any of my 23 dev.to articles or 90+ GitHub issues, I get an email within 1 hour that looks like:

📊 MarketNow Activity Report

📝 dev.to Comments:
  @username on 'How to sandbox an MCP server'
  'Great article! Have you considered --read-only rootfs?'
  → Reply on dev.to

💬 GitHub Comments:
  @0xbrainkid on crewAIInc/crewAI#6463
  'The useful primitive is probably not a boolean verify_security...'
  → Reply on GitHub

📦 npm: 607 downloads (last 7 days)
⭐ GitHub stars: 1
Enter fullscreen mode Exit fullscreen mode

State persistence

The script saves seen comment IDs to .github/monitor-state.json and commits them back to the repo. This way:

  • No duplicate alerts
  • State survives across workflow runs
  • You can see the history in git

What I monitor

Source What Alert trigger
dev.to Article comments New comment from anyone
GitHub Issue comments New comment from non-bot
npm Weekly downloads >20% drop or growth
GitHub Stars New star or milestone
marketnow.site HTTP status Non-200 response

Results

Before the monitor: comments went unanswered for 3-5 days.
After the monitor: I respond within 1 hour of the comment being posted.

This matters because:

  • dev.to's algorithm rewards early engagement
  • GitHub issue maintainers notice responsive authors
  • Fast responses build trust with potential users

The code is open

Full script: github.com/edgarfloresguerra2011-a11y/marketnow/blob/master/scripts/auto-monitor.py

Feel free to fork it for your own projects.


I build MarketNow — the trust layer for agent commerce. 8,764 MCP servers, each security-audited by Sentinel L2.5 gVisor sandbox. Follow on GitHub.

Top comments (0)