Loop Breaker

Catch AI agent loops: halt runs that repeat the same failing step or tool call.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
64%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~558Tokens (tool definitions)
~863 BTypical response size
Minimal attention impact (0.44% 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": {
    "loop": {
      "url": "https://loop.cloudforbots.com/mcp"
    }
  }
}

Remote endpoints

https://loop.cloudforbots.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_step(run_id, tool, args, error, max_failures, ...)

Call AFTER each tool call or agent step with what you just did and whether it failed. Loop Breaker fingerprints the call (tool + normalized args + error) and returns verdict ok, loop_detected or halted. Pro: on a loop, halt=true; stop the run, do not retry, and tell your user what repeated. Free watch-only: never halts, returns would_halt and logs it for the weekly report.

Input Schema

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "description": "Any stable id for this agent run, e.g. \"nightly-sync-2026-10-15\". Use the same id for every step of the run (and its sub-agents)."
    },
    "tool": {
      "type": "string",
      "description": "The tool or step name you just ran, e.g. \"browser.click\" or \"git push\"."
    },
    "args": {
      "description": "The arguments you passed (object or string). Volatile values like timestamps and ids are normalized away."
    },
    "error": {
      "type": "string",
      "description": "The error message if the step failed. Omit or empty if it succeeded."
    },
    "max_failures": {
      "type": "integer",
      "description": "Same failing call this many times = loop. Default 3 (min 2, max 20)."
    },
    "max_repeats": {
      "type": "integer",
      "description": "Same call this many times in a row (even if it succeeds) = loop. Default 5 (min 3, max 50)."
    }
  },
  "required": [
    "run_id",
    "tool"
  ]
}
🟢loop_status(run_id)

Show a run's loops so far, whether it is halted, and its last 10 steps.

Input Schema

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "description": "Any stable id for this agent run, e.g. \"nightly-sync-2026-10-15\". Use the same id for every step of the run (and its sub-agents)."
    }
  },
  "required": [
    "run_id"
  ]
}
🟢weekly_report

Draft a plain-English report of the last 7 days for your key (or IP): runs, loops caught, wasted repeat steps, and the worst offenders. Read-only; sends nothing. Show it to your user.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢usage_and_upgrade

Show today's usage for your key or IP and the $49/month All Access upgrade link (cloudforbots.com/offer). Free tier: 500 calls/day. Not metered.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools