Skip to main content
Glama

Looping Agent MCP

An MCP server that turns a manager's plain-English goal into a verified, looped, watchable build run — driven entirely by the IDE's own agent (Antigravity / Claude Code). No SDK, no claude -p.

The split (do not violate)

  • IDE agent = the muscle + the planner. Owns the how. Does the file edits, runs commands, thinks in many directions.

  • This MCP server = brain + checker + governor + dashboard. Owns the what (goal, criteria, verdict, caps) and the how it's framed. Never dictates steps.

  • Manager = owns "is this what I meant" (goal + criteria confirmation).

Related MCP server: founden-mcp

Locked core rules (load-bearing — never soften)

  1. DONE comes only from check_done. The agent may never self-declare done.

  2. The server returns the goal + failing criteria, never a prescribed step. (Hold the what, not the how.)

  3. The standing order is re-injected on every tool response (survives context compaction).

  4. Pacing + caps live in get_next_action — it can return STOP / ESCALATE and the agent has nothing left to call.

  5. Three escalation triggers → one channel: too risky, can't define done, stuck. Each carries a reason + handoff.

  6. Live counters show real numbers (turns, actions, criteria, elapsed). Token/budget is an estimate, labelled as such.

Branch-per-task & the merge gate

On a git project, each task is isolated and merged only on the manager's say-so:

  1. confirm cuts a fresh task branch (loop/<slug>-<hash>) off the current branch (the base); the agent does all its work there.

  2. When every criterion goes green, the run doesn't silently finish — it enters ready_to_merge and the dashboard shows "✅ all criteria pass — merge branchbase?"

  3. The manager clicks Merge (or Not yet). On approve, the server commits any pending work and runs git merge --no-ff; a conflict aborts cleanly and leaves the work on the task branch. On reject, the work stays on the branch for a human.

Off git (not a repo), it's a plain DONE with no branch or merge gate.

Run

New here? SETUP.md has the full copy-paste setup for a fresh machine.

uv sync                  # creates the venv + installs deps
cp .env.example .env     # optional: tune caps / pacing / LLM drafting
uv run pytest            # 88 tests; all green

The server is meant to be launched by your IDE, not by hand. Register it from inside the project you want it to work on — the verifier runs its command oracles in the server's working directory, so it must be your project, not this repo. Use --project (selects this package's venv) rather than --directory (which would also change the cwd to here):

# run this from your target project's root — registers + pins this package:
loopai register
# (equivalent to: claude mcp add looping-agent -- uv run --project /path/to/looping_MCP loopai serve)

The IDE starts it, speaks JSON-RPC over stdio, and stops it by closing stdin. The watch dashboard comes up at http://127.0.0.1:3000.

The loopai command

command

what it does

loopai / loopai serve

MCP server (backend) + dashboard (frontend) — what the IDE launches

loopai dashboard

frontend only, no stdio — open the control panel by hand, Ctrl-C to stop

loopai register

register with Claude Code for the current project

loopai lives in the project's .venv, not on your global PATH. After uv sync, invoke it one of these ways:

  • uv run loopai … — from the looping_MCP folder, or

  • source .venv/bin/activate then loopai …, or

  • by absolute path from anywhere: /abs/looping_MCP/.venv/bin/loopai … (add that dir to PATH, or ln -s it into ~/.local/bin, for a bare loopai).

loopai register writes an absolute-path launch command, so the IDE can start the server with no PATH/uv dependency — run it from your target project dir (that's the project the registration is scoped to).

Running it by hand (to watch the dashboard)

Use loopai dashboard — it serves the control panel with no stdio, so the terminal stays a normal terminal (just press Ctrl-C to stop). Avoid loopai serve by hand: that's a stdio server, so the terminal becomes its JSON-RPC input and anything you type is rejected as a protocol message.

Note: stdout is reserved for the JSON-RPC channel — all diagnostics go to stderr.

Register in the IDE's MCP config (see specs/tool_contract.md).

Build it

You are not meant to hand-write this. Open CLAUDE_CODE_BUILD.md and feed Claude Code one phase at a time, running the checks after each. The scaffold here is the anchor; Claude Code fleshes the TODOs.

Available Tools

6 tools
check_doneA

Explicit verifier call. Same authority as report_result's check — DONE only comes from here. When it goes green on a git project, a merge gate is raised.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses that DONE only comes from here and that it raises a merge gate on git projects, but does not detail side effects, required permissions, or what constitutes 'green'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. Every sentence provides key information: purpose and effect. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description covers the essential purpose and consequence (raising a merge gate). However, it could be more complete by clarifying what 'DONE' signifies and typical usage scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema coverage is 100% (trivially). The description adds no parameter info, but none is needed. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is an 'Explicit verifier call' and the sole source of DONE. It differentiates from sibling 'report_result' by mentioning they share authority, but does not fully distinguish from other siblings like 'confirm' or 'propose'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (raising a merge gate on git projects when green) and mentions sibling 'report_result' for authority comparison, but lacks explicit when-to-use or when-not-to-use guidance relative to other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confirmA

Manager confirms the criteria, optionally REPLACING them with the project's real checks, then returns the kickoff prompt.

If edited_criteria is given it becomes the authoritative final list. Each item is {id?, text, oracle_type, oracle} where oracle_type is "command" (a shell command that exits 0 on success), "browser" (a flow the agent proves), or "manual". An item whose id matches a proposed criterion patches it (and re-arms it for checking); any other item is added new. This is how you point a criterion at YOUR stack — e.g. {"text":"build passes","oracle_type":"command", "oracle":"cargo build"}. Returns {error, details} if a criterion is malformed.

ParametersJSON Schema
NameRequiredDescriptionDefault
edited_criteriaNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains that edited_criteria replaces the list, patches existing items by id, and returns an error if malformed. However, it does not mention whether changes are persistent or what side effects occur (e.g., does 'confirm' modify state?). This lack of persistence info is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly concise and front-loaded with the main purpose. Each sentence adds value, though some technical details could be slightly more compact. Overall, it earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only one parameter, no output schema, and no annotations, the description is relatively complete. It covers input structure, behavior, and error handling. However, it lacks context about the broader workflow (e.g., what is the kickoff prompt? How does this integrate with siblings?).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 0%, the description fully explains the single parameter 'edited_criteria'. It details each item's structure (id, text, oracle_type, oracle), explains oracle_type values ('command', 'browser', 'manual'), and describes how matching works (patch vs. add new). This provides essential meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Manager confirms the criteria, optionally REPLACING them... then returns the kickoff prompt.' It specifies the verb 'confirms' and the resource 'criteria'. This distinguishes it from siblings like 'propose' (which suggests criteria) and 'request_gate' (which requests approval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage is for finalizing criteria after proposal, but it does not explicitly state when to use or not use this tool vs. alternatives like 'propose' or 'check_done'. No exclusions or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_next_actionA

Agent calls this each turn. Enforces pacing + caps. Returns the goal and what still fails (NOT a prescribed step), or STOP / ESCALATE / DONE.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses key behaviors: enforces pacing and caps, returns goal and failures or special signals (STOP/ESCALATE/DONE). It does not detail side effects but is sufficient for a read-like tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with 'Agent calls this each turn', no redundant information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters or output schema, the description adequately covers the return types and basic behavior. It could elaborate on pacing/caps, but it's sufficient for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to add parameter meaning. Baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Agent calls this each turn' to get the next action, returning goal, failures, or special stop signals. It distinguishes from sibling tools by specifying its role as the main loop driver.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Agent calls this each turn', indicating it is the primary tool for turn-by-turn decision making. It does not mention when not to use it or alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

proposeA

Manager types a goal. Returns risk lane + proposed criteria for confirmation. May escalate immediately (too risky / can't define done).

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYes
repo_contextNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although no annotations are provided, the description discloses important behavioral traits: the tool may escalate immediately if too risky or can't define done. This adds transparency beyond the basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, no unnecessary words. Very concise and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the main purpose and escalation behavior, but lacks details on return format, meaning of terms like 'risk lane', and how the 'repo_context' parameter is used. Adequate but incomplete for a tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the 'goal' parameter (what the manager types) but does not mention 'repo_context' at all. With 0% schema description coverage, the description partially compensates but leaves a gap for one parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb (propose) and resource (goal), and what it returns (risk lane + proposed criteria). It also distinguishes from sibling tools like check_done, confirm, etc., which have different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies usage when a manager types a goal, but doesn't provide exclusions or mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_resultB

Agent reports what it did. Runs the verifier. Returns FAIL+failing (with the re-injected standing order) or DONE. proof maps criterion_id -> artifact path for browser/manual criteria.

ParametersJSON Schema
NameRequiredDescriptionDefault
proofNo
summaryYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It discloses that the tool runs a verifier, returns specific states, and re-injects a standing order on failure. However, it does not mention potential side effects, authorization requirements, or whether the operation is idempotent, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no wasted words. First sentence states the verb, second explains outcomes, third clarifies a key parameter. It is concise and front-loaded, though a bit dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters and no output schema, the description covers the core flow (report, verify, return) and explains 'proof', but lacks details on 'summary', the verifier's nature, and why an agent would choose this over siblings. Partially complete but with noticeable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description adds meaning for the 'proof' parameter by explaining it maps criterion_id to artifact path, but does not describe the required 'summary' parameter at all. The schema itself is minimal, so the description should compensate more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: the agent reports its actions, runs a verifier, and returns either 'FAIL+failing' or 'DONE'. It also explains the meaning of the 'proof' field. However, it does not explicitly differentiate from sibling tools like 'confirm' or 'propose', which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies it is used after an action is performed, but lacks context on prerequisites or when to avoid it. Sibling tools are listed but not contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_gateA

Agent asks permission for an irreversible action (deploy/migrate/delete/send). Sets a pending gate the manager approves on the dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
reasonYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool creates a pending gate for manager approval, which is a key behavioral trait. However, it does not explain what happens after approval, potential side effects, or timeout/revocation behavior, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, front-loading the core action and purpose. There is no wasted or redundant text; every word contributes to understanding the tool's primary function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and two parameters, the description covers the essential purpose and high-level behavior, but lacks parameter details and post-approval context. It is sufficient for basic understanding but incomplete for reliable agent invocation without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides examples for 'action' (deploy/migrate/delete/send) but not a full list or constraints. 'Reason' is not described at all. The added meaning is insufficient for an agent to correctly populate parameters without additional knowledge.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: asking permission for irreversible actions like deploy/migrate/delete/send. It specifies that it sets a pending gate for manager approval, which effectively distinguishes it from sibling tools like 'confirm' or 'propose' that likely handle different kinds of confirmations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for irreversible actions requiring manager permission but does not explicitly contrast with sibling tools or provide when-not-to-use guidance. It lacks explicit alternative tool references, leaving the agent to infer context from examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedcheck_done
    • First observedconfirm
    • First observedget_next_action
    • First observedpropose
    • First observedreport_result
    • First observedrequest_gate

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: check_done for verification, confirm for manager to set criteria, get_next_action for step retrieval, propose for goal definition, report_result for result reporting, and request_gate for permission. No overlap.

Naming Consistency4/5

Most tool names follow a verb_noun pattern (check_done, get_next_action, report_result, request_gate), though confirm and propose are single verbs. The naming style is consistent with lowercase and underscores.

Tool Count5/5

With 6 tools, the server covers the core interactions of a looping agent workflow (propose, confirm, get action, report, check done, request gate) without being excessive or insufficient.

Completeness4/5

The tool set covers the essential lifecycle: goal proposal and criteria confirmation, action retrieval, result reporting with verification, done checking, and gate requests. Minor gap: no explicit tool for listing all criteria, but get_next_action provides failing criteria and check_done tests all.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An autonomous, extensible LLM build orchestrator. Give it a repo and a goal; it decomposes the goal into tasks, edits code, and gates every change on build/tests/lint, reverting regressions. Polygot, cost-aware model selection, pluggable via entry points. Ships as an MCP server so any client can drive it in plain English.
    15
    3
    AGPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables evidence-gated, multi-session AI coding runs with plan-build-ship state management, coordinating Claude Code and Codex native agents.
    167
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ShreyasBidwai/AI_Loop_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server