Model-agnostic agent loop runtime with MCP repo tools, structured decisions, approvals, evals, and traceable state.
ForLoop MCP provides 13 tools with explicit schemas and descriptions. Naming follows verb_noun convention (list_files, search_code, apply_patch, remember, etc.). All tools have descriptions (10-200 chars, within baseline range). Input schemas use Zod validation with type constraints. However, output schemas are not documented, LLMs cannot predict return structures. Parameter descriptions are present but minimal (e.g., 'Optional limit on number of files to return' lacks context on why/when to use). Error handling is basic: tools delegate to underlying implementations without recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE, IRREVERSIBLE). Memory tools (remember, search, list, delete) lack documentation of session namespace semantics and data retention. shell.run is high-risk (IRREVERSIBLE) but has no confirmation/dry-run pattern.
Delete a long-term memory from this MCP session namespace.
List long-term memories in this MCP session namespace only.
Store a long-term memory in this MCP session namespace.
Search long-term memories in this MCP session namespace only.
Apply exact search/replace edits inside the workspace. The orchestrator should require approval first.
Return git diff for the workspace when it is a git repository.
List files inside the workspace, excluding build and dependency directories.
Output schemas not documented. LLMs cannot predict return structures for any tool. Baseline requires 100% of A+ tools to have documented return types.
No tool annotations despite clear risk levels. shell.run (IRREVERSIBLE), repo.apply_patch (WRITE), and memory.delete (WRITE) lack destructiveHint/idempotentHint annotations. Agents cannot reason about side effects.
Memory tools lack session namespace documentation. 'Store a long-term memory in this MCP session namespace' is vague, what is the namespace scope? How long is 'long-term'? When is data purged? LLMs cannot reason about data lifecycle.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Read a UTF-8 text file inside the workspace.
Run only the configured test command.
Run only the configured typecheck command, when one is configured.
Search text files inside the workspace for an exact string.
Run a governed workspace command only when this MCP server was started with shell enablement.
Inspect whether shell execution is enabled for this MCP server.
shell.run is high-risk (IRREVERSIBLE) with no confirmation/dry-run pattern. Agents can execute arbitrary commands without approval. No error recovery guidance.
Parameter descriptions are minimal. 'Optional limit on number of files to return' lacks context on default, max, or when to use. Baseline requires 72 chars average; most params are 30-40 chars.