This is a metacognitive toolkit for AI coding agents that need to break out of loops without human intervention. It exposes seven core MCP tools like logic-is-too-complex, bug-fix-always-failed, and missing-requirements, plus extended scenarios accessible via list_scenarios and get_prompt. Each tool returns a structured markdown protocol with concrete steps to re-anchor goals, summarize what failed, and pivot strategy. It's built for agentic environments like Cursor, Windsurf, and Claude Desktop where an agent might spiral on circular reasoning or repeated failed attempts. The prompts live in markdown files under prompts/core and prompts/extended, making it straightforward to contribute new recovery patterns. Hosted on Cloudflare Workers, so no local setup required.
This is a MCP server that acts as a "escape guide" for AI coding agents.
It provides structured thinking protocols to help agents unstuck themselves without human help.
The diagram below illustrates when an agent should call this server and what it receives in return:
graph TD
%% 1. The Normal Loop
UserLoop["<b>User Query & Agent Loop</b><br/>(Claude Code / Windsurf / Cursor)<br/>Agent executing tasks..."]
%% 2. The Problem (Triggers)
subgraph Triggers ["Agent Gets Stuck (Trigger State)"]
direction TB
S1["Circular Reasoning"]
S2["Bug Fix Fails"]
S3["Missing Info"]
S4["Analysis Paralysis"]
S5["Unclear 'Done' State"]
end
%% Flow: Loop -> Stuck
UserLoop -.->|"⚠️ Detects Issue<br/>(Inner Loop Stall)"| Triggers
%% 3. The Solution (MCP Call)
subgraph MCP ["Agent Never Give Up MCP"]
direction TB
T1(logic-is-too-complex)
T2(bug-fix-always-failed)
T3(missing-requirements)
T4(analysis-too-long)
T5(unclear-acceptance-criteria)
end
%% Mapping Triggers to Tools
S1 -->|Call| T1
S2 -->|Call| T2
S3 -->|Call| T3
S4 -->|Call| T4
S5 -->|Call| T5
%% 4. The Response
MCP -->|Returns| R1["<b>Metacognitive Protocol</b><br/>Structured markdown to:<br/>1. Re-anchor goal<br/>2. Summarize failures<br/>3. Propose NEW strategy"]
%% 5. The Outcome
R1 --> Result["<b>Autonomous Recovery</b><br/>Agent unblocks itself &<br/>resumes execution<br/>(No Human Hand-off)"]
%% Cycle back to loop
Result -.->|"Resumes Loop"| UserLoop
%% Styling
classDef loop fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
classDef trigger fill:#ffebee,stroke:#b71c1c,stroke-width:2px;
classDef tool fill:#fff3e0,stroke:#e65100,stroke-width:2px;
classDef response fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px;
class UserLoop loop;
class S1,S2,S3,S4,S5 trigger;
class T1,T2,T3,T4,T5 tool;
class R1,Result response;
/mcp endpoint (Streamable HTTP specification compliant)logic-is-too-complex – for circular reasoning or over-complicated logicbug-fix-always-failed – for repeated failed bug fix attemptsmissing-requirements – for unclear or missing requirementslost-main-objective – for when current actions feel disconnected from the original goalscope-creep-during-task – for when changes expand beyond the original task scopelong-goal-partially-done – for multi-step tasks where remaining work is forgottenstrategy-not-working – for when the same approach fails repeatedlylist_scenarios, accessed via get_prompt):
analysis-too-long – for excessive analysis timeunclear-acceptance-criteria – for undefined acceptance criteriawrong-level-of-detail – for working at wrong abstraction levelconstraints-cant-all-be-met – for conflicting requirements or constraintsblocked-by-environment-limits – for environmental blockers vs logic problemslist_scenarios – list all scenarios with their tier (core/extended)get_prompt – access any scenario (core or extended)static and sampling modesSince agent-never-give-up is a cloud-hosted MCP server, no local installation is required. Simply add the server configuration to your preferred AI tool.
~/.cursor/mcp.json file directly):{
"mcpServers": {
"agent-never-give-up": {
"type": "http",
"url": "https://agent-never-give-up-mcp.askman.dev/mcp",
"note": "A 'Swiss Army knife' toolset to help agents recover from getting stuck"
}
}
}
To configure the server for Claude Desktop, edit the configuration file located at:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd the following entry to the mcpServers object:
{
"mcpServers": {
"agent-never-give-up": {
"type": "http",
"url": "https://agent-never-give-up-mcp.askman.dev/mcp"
}
}
}
cline_mcp_settings.json file to include:{
"mcpServers": {
"agent-never-give-up": {
"type": "http",
"url": "https://agent-never-give-up-mcp.askman.dev/mcp",
"note": "A comprehensive suite of tools designed to keep agents persistent and unstuck"
}
}
}
~/.codeium/windsurf/mcp_config.json).{
"mcpServers": {
"agent-never-give-up": {
"type": "http",
"url": "https://agent-never-give-up-mcp.askman.dev/mcp"
}
}
}
To contribute to this project or run a local instance:
# Install dependencies
npm install
The local server will be available at http://localhost:8787/mcp.
Prompts are organized in two tiers within the prompts/ directory:
prompts/
├── core/ # Core scenarios (auto-registered as tools)
│ ├── logic-is-too-complex/
│ │ └── tool.md
│ ├── bug-fix-always-failed/
│ │ └── tool.md
│ └── missing-requirements/
│ └── tool.md
└── extended/ # Extended scenarios (via list_scenarios + get_prompt)
├── analysis-too-long/
│ └── tool.md
└── unclear-acceptance-criteria/
└── tool.md
Each tool.md file follows a simple markdown format with YAML frontmatter and a single protocol body:
---
name: scenario_name
title: "Scenario Title"
description: "When / why the agent should call this tool, from the agent's perspective"
---
When you notice [the trigger condition], follow this exact protocol step by step.
## 1. First step title
1. Action item one.
2. Action item two.
3. Action item three.
Keep it concrete.
## 2. Second step title
...
## 3. Third step title
...
Key principles:
description explains when to use the tool (the trigger condition)See prompts/AGENTS.md for detailed guidance on writing effective prompts.
Scenarios are auto-discovered from the prompts/ tree and the generated files in src/prompts/generated-scenarios.ts and src/types/generated-scenarios.ts. You do not need to manually edit TypeScript files—just add the prompt and regenerate.
Core scenarios (auto-registered as tools):
prompts/core/{scenario_name}/ (must match /^[a-z0-9]+(-[a-z0-9]+)*$/).tool.md file following the format above.npm run generate:scenarios to regenerate types and discovery data.Extended scenarios (accessible via get_prompt):
prompts/extended/{scenario_name}/ (same naming rules as above).tool.md file following the format above.npm run generate:scenarios to regenerate types and discovery data.# Deploy to Cloudflare Workers
npm run deploy
After deployment, your MCP endpoint will be:
https://agent-never-give-up-mcp.<account>.workers.dev/mcp
MIT
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent