mcp-page-monitor
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-page-monitormonitor https://example.com for content changes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-page-monitor
A Model Context Protocol (MCP) server that watches web pages and fires alerts when their content changes. Designed to be dropped into any MCP client (Claude Desktop, WorkBuddy, custom agents) so an AI assistant can "keep an eye on" pages without polling them itself.
┌────────────┐ add_target / check_target ┌──────────────────┐
│ MCP Client │ ───────────────────────────▶ │ page-monitor │
│ (assistant) │ ◀─────────────────────────── │ (FastMCP) │
└────────────┘ change status / alert └────────┬─────────┘
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────────┐ ┌────────────┐
│ fetcher │ │ differ │ │ alert sink │
│(requests)│ ───────▶ │(hash + LCS) │ ─────▶ │(console/..)│
└──────────┘ └──────────────┘ └────────────┘Why this exists
LLMs are bad at polling — they can't sit and wait. But they're great at reacting
to a change notification. mcp-page-monitor bridges that gap: register URLs once,
and the server tells the assistant what changed in plain text whenever a page moves.
Features
Feature | Notes |
Multi-target watching | Register many URLs, each with its own sensitivity |
Robust diffing | SHA-256 hashing + |
Adjustable sensitivity |
|
Pluggable alerts |
|
Network-free core | Diff/monitor/alert logic is 100% testable without internet |
Install
pip install -r requirements.txtUse as an MCP server
python -m mcp_page_monitor.serverThen in your MCP client config point to the module. Tools exposed:
add_target(url, name?, threshold?)— start watching a pagecheck_target(url)— fetch, diff vs baseline, return change status
Use the engine directly
from mcp_page_monitor.monitor import PageMonitor
from mcp_page_monitor.alerts import ConsoleAlertSink
from mcp_page_monitor.fetching import fetch_url
mon = PageMonitor(fetcher=fetch_url, alert_sink=ConsoleAlertSink())
mon.add("https://example.com", threshold=0.95)
mon.check("https://example.com") # baseline
mon.check("https://example.com") # alerts if content shiftedArchitecture in one line
fetch ➜ normalize ➜ hash+diff ➜ (changed?) ➜ alert
The diff math (identities verified by tests):
identical pages ⇒
similarity == 1.0,changed == Falseone line changed in 100 ⇒
similarity ≈ 0.99,changed == Trueunder strict thresholdfirst observation is always a baseline and never alerts
Project layout
mcp-page-monitor/
├── mcp_page_monitor/
│ ├── __init__.py
│ ├── differ.py # hashing + diff (no deps)
│ ├── monitor.py # polling engine (fetcher injected)
│ ├── alerts.py # alert sinks
│ ├── fetching.py # requests-based fetcher (prod only)
│ └── server.py # MCP/FastMCP adapter (lazy import of mcp)
├── tests/
│ └── test_monitor.py
├── conftest.py
├── requirements.txt
├── README.md
├── LICENSE
└── .gitignoreLicense
MIT © wzx11223344
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wzx11223344/mcp-page-monitor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server