Skip to content

Watchtower MCP server

Which MCP servers are Watchtower's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-26

← Back to Watchtower

Whose server it is
  • Registry namelat.watchtower/watchtowerverified in the MCP registry

The registry name sits under watchtower.lat. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-26
  • Stateanswerschecked 2026-10-26
  • Tools8
  • Server calls itselfwatchtower
  • Server version0.1.0
  • Protocol version2025-06-18

On 2026-10-26 the server answered initialize and tools/list without a sign-in. First answer in 47 ms.

Should an agent connect itNot proven either way yet
  • Its tools do every use case we checked: watch tech job boards for roles matching salary and experience; get only newly posted jobs as structured data.
  • Checked on 2 of the 7 days it takes to judge reliability.

Once connected

  • For "watch tech job boards for roles matching salary and experience", the likely first call is watch_jobs.
  • delete_watch change data without a sign-in: anyone with the address can call them.
  • Parameters are untyped or undescribed in 2 of 8 tools: check arguments before calling.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 2, the first on 2026-10-26
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 2 so far
  • What an agent can do with it2 of 2 use cases
  • Answeredmeasuring2 of the 7 daily checks it takes to print a share
  • Median first answer110 ms
  • Space in an agent's context≈ 3,455 tokensthe definitions of all its tools (8), which an agent carries on every turn
  • Tool definitionsA · 96 of 100
  • Typed results0 of 8 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 2 of 8

What an agent can do with it

  • can do · watch tech job boards for roles matching salary and experience
  • can do · get only newly posted jobs as structured data
  • not sure · track postings that are removed or changed over time

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: delete_watch

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers8 tools · read 2026-10-26
  • watch_jobs

    Create a persistent watch for tech jobs. Describe what you want in query ("iOS jobs in Austin making at least 150k a year with a maximum of 6 years of experience") and leave url out: the watch then covers every job board Watchtower…

  • search_jobs

    Find the tech jobs open right now that match a request, across every job board Watchtower monitors (tech companies and startups). Describe what you want in query ("iOS jobs in Austin with a maximum of 6 years of experience"). Read-only…

  • list_companies

    List the companies whose job boards Watchtower monitors, i.e. what search_jobs and watch_jobs without a url cover. Pass query to check whether a company is covered ("stripe"). Each entry has name, board_url (pass it to watch_jobs as url…

  • get_changes

    Return job changes detected since your last get_changes call, across all your watches or one watch. This is the cheap replacement for re-browsing careers pages: if it returns an empty list, nothing you care about has changed. By default…

  • list_watches

    List all active watches for your client with their health, last check time and number of pending (undelivered) changes.

  • get_watch

    Get a watch with its status and the jobs currently open that match its filters: on its board, or across every monitored board for a watch created without a url. Use this to answer "what is open right now" without searching or fetching…

  • ack_changes

    Mark changes up to a cursor as processed. Use with get_changes(peek=true) for at-least-once delivery: peek, act on the changes, then ack the cursor get_changes returned. Not needed if you call get_changes without peek (that acknowledges…

  • delete_watch

    Stop monitoring. Frees one of your watch slots. Delete watches you no longer need.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "watchtower": {
      "type": "http",
      "url": "https://watchtower.lat/mcp?ref=registry"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http watchtower https://watchtower.lat/mcp?ref=registry

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://watchtower.lat/mcp?ref=registry as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.