RoundWatch

Durable Algorand USDC payment monitoring for autonomous workflows.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
77%
Naming quality
50%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • LOWTool 'roundwatch.service_info' doesn't follow camelCase/snake_casein roundwatch.service_info
  • LOWTool 'roundwatch.prepare_watch' doesn't follow camelCase/snake_casein roundwatch.prepare_watch
  • LOWTool 'roundwatch.get_watch' doesn't follow camelCase/snake_casein roundwatch.get_watch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~489Tokens (tool definitions)
~1.1 KBTypical response size
Minimal attention impact (0.38% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "roundwatch": {
      "url": "https://roundwatch-api.onrender.com/mcp"
    }
  }
}

Remote endpoints

https://roundwatch-api.onrender.com/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢roundwatch.service_info

Return the live RoundWatch network, x402 service contract, USDC asset, price, limits, and documentation links. Read-only and free.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢roundwatch.prepare_watch(idempotencyKey, expectedSender, expectedReceiver, atomicAmount, invoiceNote)

Validate one expected future Algorand USDC payment and return the exact RoundWatch HTTP/x402 request to create a durable watch. This tool does not settle the x402 payment and does not create the watch by itself.

Input Schema

{
  "type": "object",
  "properties": {
    "idempotencyKey": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128,
      "description": "Stable key that identifies this watch request and prevents duplicates."
    },
    "expectedSender": {
      "type": "string",
      "minLength": 58,
      "maxLength": 58,
      "description": "Checksum-valid Algorand address expected to send the future payment."
    },
    "expectedReceiver": {
      "type": "string",
      "minLength": 58,
      "maxLength": 58,
      "description": "Checksum-valid Algorand address expected to receive the future payment."
    },
    "atomicAmount": {
      "type": "string",
      "pattern": "^[1-9]\\d*$",
      "description": "Exact watched USDC amount in atomic units. Algorand USDC uses 6 decimals."
    },
    "invoiceNote": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Optional exact UTF-8 Algorand transaction note, maximum 128 UTF-8 bytes."
    }
  },
  "required": [
    "idempotencyKey",
    "expectedSender",
    "expectedReceiver",
    "atomicAmount"
  ],
  "additionalProperties": false
}
🟢roundwatch.get_watch(watchId)

Read the durable state and any verified on-chain evidence for an existing RoundWatch watch ID. Read-only and free.

Input Schema

{
  "type": "object",
  "properties": {
    "watchId": {
      "type": "string",
      "minLength": 1,
      "description": "Durable watch ID returned after successful activation."
    }
  },
  "required": [
    "watchId"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools