Kestrel is a remote MCP server that lets an assistant watch web pages or JSON/text URLs for changes, capturing a baseline and reporting diffs on later checks.
What you can do
Create watches on a page or JSON/text URL, capturing a baseline snapshot and returning a watch ID and token, with an existing token used to add more watches under the same account. Re-check a watch to re-fetch the page, report whether it changed with a short list of added or removed content lines, and update the baseline. List all watches under a token with per-watch check and change counts. Delete a watch to stop monitoring a page.
When to use it
Useful when you want an assistant to track whether a page or feed changed over time, such as monitoring a status page, price listing, or JSON endpoint, and to summarize what changed between checks.
Requirements
A remote streamable HTTP endpoint; no packages, environment variables, or headers are declared. No signup or API key is needed; a token returned by create_watch is used to check, list, and manage watches.
Before you install
The token returned by create_watch is the only way to check and manage your watches, so keep it safe. Checking a watch updates its baseline, so earlier diffs are not retained. The server fetches the URLs you give it, which may expose private or internal addresses to a third-party service.
Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/dev.workers.perch-app.kestrel%2Fkestrel/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.
Start monitoring a web page (or JSON/text URL) for changes. Captures a baseline snapshot now. Returns a watch_id and a token — save the token; it's how you check and manage your watches later. Pass an existing token to add more watches under the same account.
Parametersurlrequiredlabeltoken
check_watch
Re-fetch a watched page and report whether it changed since the last check, with a short list of added/removed content lines. Updates the baseline to the new content. Call this every time you want the latest status (e.g. each run/heartbeat).
Parameterstokenrequiredwatch_idrequired
list_watches
List all watches under your token, with per-watch check/change counts.
Parameterstokenrequired
delete_watch
Stop monitoring a page and delete the watch.
Parameterstokenrequiredwatch_idrequired
Version history
1
v1.0.0LatestSep 22, 2026
Score
72%
72% 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 daysRequired25 pts
Auth declaredRequired10 pts
Tools listedRequired15 pts
DescriptionRequired15 pts
Logo10 pts
Publish an icon in the registry entry.
Documentation15 pts
Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.
LicenseNot applicable
A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.