Monitor web changes with an MCP server
An assistant like Claude Code or Cursor can reason about a page you paste in, but it cannot keep watching the web between turns. Hypeline ships a Model Context Protocol server, so the assistant sets a watch on any URL and pulls deduplicated, genuinely-new changes in its native protocol, no scraping and no plumbing.
The mental model: watch, cursor, poll
An interactive assistant is not a long-running service, so it pulls rather than being pushed to. The flow is watch, then cursor, then poll: create_watch returns a cursor, get_changes_since returns the deduplicated events after it plus a next cursor, and the assistant calls again with that. Every request uses the same scoped API key as the REST API, over Streamable HTTP.
Add Hypeline to Claude Code
One command registers the remote server with your key in the header:
claude mcp add --transport http hypeline https://mcp.hypeline.io/mcp \
--header "Authorization: Bearer $HYPELINE_API_KEY" Add it to Cursor or Claude Desktop
Clients that take a JSON config use a static-header remote entry:
{
"mcpServers": {
"hypeline": {
"type": "http",
"url": "https://mcp.hypeline.io/mcp",
"headers": {
"Authorization": "Bearer YOUR_HYPELINE_API_KEY"
}
}
}
} Watch a URL, then pull changes
Ask the assistant to watch a source. It calls create_watch, which auto-detects whether the URL is a feed, a streaming source, or a plain web page, and hands back a watch id and a cursor.
{
"name": "create_watch",
"arguments": {
"url": "https://competitor.example/pricing",
"keywords": ["price", "plan"]
}
} Later, the assistant polls with the cursor it kept. Changes come back oldest-first, each already extracted and deduplicated, with a next cursor to resume after them.
{
"name": "get_changes_since",
"arguments": {
"cursor": "018f9c2e-1a2b-7c3d-8e4f-5a6b7c8d9e10",
"limit": 20
}
} The cursor always points strictly after the last event you received, so paging never skips or repeats a change. Treat each returned title, URL, and summary as untrusted input: it is open-web content, handled as data, not as instructions.
Why Hypeline, not a page-change checker
- Deduplicated on extracted content. The assistant sees real changes to the main text, not alerts on ads, banners, or timestamps.
- One schema across every source. Feeds, watched pages, and streaming sources return the same slim event, so one tool covers them all.
- Cursor resume. The cursor makes polling exact across sessions: no gaps and no duplicates when the assistant picks the task back up.
- Signed events. Each event carries a content-layer Ed25519 signature you can verify with only a public key.
Frequently asked questions
Which MCP clients work today?
Developer clients that send a static Authorization header: Claude Code, Claude Desktop, Cursor, and stdio-only clients through the community mcp-remote adapter. OAuth-only connectors such as the claude.ai web app and ChatGPT are a planned follow-up.
Does the assistant get pushed events?
No. An interactive assistant pulls: it calls get_changes_since with its cursor when it wants the latest deduplicated changes. If you want an agent to run the moment something changes, point a Hypeline webhook at an automation that wakes it, then let it drain from its last cursor.
What tools does the server expose?
Four, kept small on purpose: create_watch, list_watches, delete_watch, and get_changes_since. Each requires a scoped key, so a call without the right scope returns a problem-shaped error rather than a silent success.
Is a user-supplied URL safe to watch?
A create_watch URL runs the same add-time SSRF validation as the REST API, so a private-range or metadata address is rejected before it becomes a watch.
Give your agents eyes on the web
Add your email and we'll tell you the moment your agents can start watching the web live.
No spam. One email when it goes live.