AgentOps

AgentOps

MCP server that browses the web, checks conditions (price, text, stock), and takes autonomous actions like form filling, with n8n notifications and a dashboard.

Category
Visit Server

README

AgentOps

Browser Automation Agent — an MCP server that browses the web, checks conditions, and takes autonomous action. Combined with n8n for notifications and fully Dockerized for portability.

This is not a chatbot. AgentOps is a real agentic automation system: it navigates pages, extracts data, evaluates conditions, sends notifications, and can fill forms autonomously.


Architecture

┌──────────────┐     ┌─────────────────────────────────────────────┐     ┌───────────┐     ┌─────────────┐
│  MCP Client  │────▶│           AgentOps MCP Server               │────▶│ n8n Webhook│────▶│ Email/Slack │
│ (Claude etc) │     │  ┌───────────┐  ┌──────────────────────┐   │     │ (free/host)│     │ Notification │
└──────────────┘     │  │ FastAPI   │  │   Playwright Agent   │   │     └───────────┘     └─────────────┘
                     │  │ Dashboard │──│ Navigate → Extract    │   │
┌──────────────┐     │  │ :8000     │  │ → Screenshot → Form  │   │
│   Browser    │     │  └───────────┘  └──────────────────────┘   │
│ (your app)   │────▶│                                          │     ┌───────────┐
└──────────────┘     │  ┌──────────────────┐  ┌───────────────┐  │────▶│  SQLite   │
                     │  │ Condition Checker │  │   Scheduler   │  │     │  (logs)   │
┌──────────────┐     │  │ price/text/stock  │  │   (periodic)  │  │     └───────────┘
│  Dashboard   │────▶│  │ + Groq LLM fallback│  │               │  │
│  Web UI      │     │  └──────────────────┘  └───────────────┘  │
└──────────────┘     └─────────────────────────────────────────────┘

Flow: MCP Client / Dashboard → MCP Server → Playwright Agent → Condition Check → (if met) n8n Webhook → Notification


Features

  • 5 MCP Tools: check_url_condition, get_check_history, create_scheduled_check, get_agent_activity_log, trigger_form_fill
  • Condition Types: price_below:X, price_above:X, text_contains:Y, text_absent:Y, stock_available, stock_unavailable, or custom (Groq LLM)
  • Scheduled + On-Demand Checks: periodic via APScheduler or instant "Run Now"
  • n8n Integration: webhook-triggered notifications (email, Slack, or any n8n-supported channel)
  • Full Activity Log: every action logged to SQLite with timestamps and screenshots
  • Dark/Light Theme Dashboard: real-time updates, screenshot previews, one-click check creation
  • 100% Free Stack: Groq free tier, Playwright (OSS), SQLite, self-hosted n8n

Quick Start (Docker — Recommended)

Prerequisites

  • Docker and Docker Compose installed

One-Command Start

git clone <your-repo> && cd AgentOps
docker-compose up --build

That's it. Two containers spin up:

Service URL Description
AgentOps Dashboard http://localhost:8000 Web UI, API, MCP tools
n8n Editor http://localhost:5678 Workflow automation

Set Up n8n Notifications

  1. Open http://localhost:5678 in your browser
  2. Click "Import from File" and upload n8n-workflow.json
  3. The workflow receives webhooks from AgentOps and can send to:
    • Email (configure SMTP credentials in n8n — Settings > Credentials > SMTP)
    • Slack (add your webhook URL to the Slack node)
    • Any channel n8n supports (Discord, Telegram, PagerDuty, etc.)
  4. Toggle the imported workflow to Active (top-right switch)
  5. Test by clicking "Test Webhook" in the AgentOps dashboard header

Quick Start (Manual)

Prerequisites

Install

cd AgentOps
pip install -r requirements.txt
playwright install chromium

Configure (optional)

cp .env.example .env
# Edit .env — add your GROQ_API_KEY (free at console.groq.com) for custom condition evaluation

Run

# Dashboard + API server
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000

# MCP server (stdio transport, for Claude Desktop etc.)
python -m app.mcp_server

To use with Claude Desktop, add to your claude_desktop_config.json:

{
  "mcpServers": {
    "agentops": {
      "command": "python",
      "args": ["-m", "app.mcp_server"],
      "cwd": "/path/to/AgentOps"
    }
  }
}

MCP Tools Reference

Tool Description Key Parameters
check_url_condition Navigate to URL, extract data, evaluate condition url, condition, selector?
get_check_history Get past check results for a URL url
create_scheduled_check Create a periodically-running check url, condition, interval?, selector?
get_agent_activity_log Full activity log with all agent actions (none)
trigger_form_fill Autonomously fill and submit a web form url, form_data (JSON)

Condition Formats

price_below:50          → True if any price on page < 50
price_above:20          → True if any price > 20
text_contains:In Stock  → True if page text contains "In Stock"
text_absent:Sold Out   → True if text does NOT contain "Sold Out"
stock_available         → True if stock signals found
stock_unavailable       → True if out-of-stock signals found
(anything else)         → Evaluated by Groq LLM (requires API key)

Demo Script

Once AgentOps is running, here's what to show:

  1. Open Dashboard at http://localhost:8000 — see 3 pre-seeded demo checks
  2. Click "▶ Run" on any check — watch the activity log populate with navigation, extraction, condition evaluation, and screenshot
  3. Create a New Check — click "+ New Check", enter a books.toscrape.com URL, set a condition, and run it
  4. View Screenshots — click any screenshot in the activity log to see full-size visual proof
  5. Toggle Theme — click the moon/sun icon in the header
  6. Set Up n8n — import the workflow, activate it, and trigger a condition to see a real notification

Example MCP Client Session

You: Check if the book at https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html
    has a price below £100. Use the .price_color selector.

→ AgentOps calls check_url_condition(url, "price_below:100", ".price_color")
→ Navigates to page, extracts "£51.77", evaluates: price 51.77 < 100 → MET
→ If n8n is configured, sends notification webhook
→ Returns full result with screenshot path

Demo Safety

All default/seeded checks use books.toscrape.com — a dedicated web scraping practice site. No real e-commerce or business sites are targeted by default.


Project Structure

AgentOps/
├── app/
│   ├── main.py                  # FastAPI entry point, lifespan, seed data
│   ├── mcp_server.py            # MCP server with 5 tools (stdio transport)
│   ├── services.py              # Orchestrator: browser + checker + DB + notifications
│   ├── config.py                # Settings (env vars, defaults)
│   ├── agent/
│   │   ├── browser.py           # Playwright: navigate, extract, screenshot, form fill
│   │   ├── checker.py           # Condition evaluation (built-in + Groq LLM)
│   │   └── scheduler.py         # APScheduler for periodic checks
│   ├── database/
│   │   └── db.py                # SQLite: checks, activity_log, scheduled_checks
│   ├── notifications/
│   │   └── n8n.py               # Webhook caller for n8n
│   └── dashboard/
│       ├── routes.py            # FastAPI API endpoints
│       └── templates/
│           └── index.html        # Dashboard UI (dark/light theme)
├── Dockerfile
├── docker-compose.yml
├── n8n-workflow.json            # Import into n8n
├── requirements.txt
├── .env.example
└── README.md

Free Tier Stack

Component Tool Cost
LLM Groq (Llama-3.3-70b-versatile) Free
Browser Automation Playwright (OSS) Free
Database SQLite Free
Workflow/Notifications n8n (self-hosted) Free
MCP Protocol mcp Python SDK Free
Containerization Docker Free

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured