
agent-never-give-up
io.github.askman-dev/agent-never-give-up
An escape guide for coding agents, providing structured thinking tools to help agents unstick.
Documentation
Agent Never Give Up MCP
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;
Features
- Remote MCP server at
/mcpendpoint (Streamable HTTP specification compliant) - Two-tier scenario organization:
- Core scenarios (auto-registered as direct MCP tools):
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 repeatedly
- Extended scenarios (discovered via
list_scenarios, accessed viaget_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 problems
- Core scenarios (auto-registered as direct MCP tools):
- Discovery tools:
list_scenarios– list all scenarios with their tier (core/extended)get_prompt– access any scenario (core or extended)
- Dual mode support: Each tool supports
staticandsamplingmodes - Community-contributed prompts via markdown files
- Public and auth-less (v0)
- Cloudflare Workers deployment
Configuration
Since 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.
Install in Cursor
- Open Cursor Settings > MCP.
- Click + Add new global MCP server.
- Use the following configuration (or edit your
~/.cursor/mcp.jsonfile 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"
}
}
}
Install in Claude Desktop
To configure the server for Claude Desktop, edit the configuration file located at:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the following entry to the mcpServers object:
{
"mcpServers": {
"agent-never-give-up": {
"type": "http",
"url": "https://agent-never-give-up-mcp.askman.dev/mcp"
}
}
}
Install in Cline
- Open Cline and click the MCP Servers icon (☰).
- Select the Remote Servers tab (if available) or click Configure MCP Servers.
- Edit the
cline_mcp_settings.jsonfile 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"
}
}
}
Install in Windsurf
- Open Windsurf.
- Go to File > Settings > Configure MCP Servers (or edit
~/.codeium/windsurf/mcp_config.json). - Add the server configuration:
{
"mcpServers": {
"agent-never-give-up": {
"type": "http",
"url": "https://agent-never-give-up-mcp.askman.dev/mcp"
}
}
}
Development
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.
Contributing Prompts
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
Prompt File Format
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:
- The
descriptionexplains when to use the tool (the trigger condition) - The body is a single protocol with numbered sections
- Each section has 2–6 concrete steps
- Focus on how to think, not domain-specific details
- No system prompt / user prompt template sections—just one actionable protocol
See prompts/AGENTS.md for detailed guidance on writing effective prompts.
Adding a New Scenario
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):
- Create a new directory:
prompts/core/{scenario_name}/(must match/^[a-z0-9]+(-[a-z0-9]+)*$/). - Add a
tool.mdfile following the format above. - Run
npm run generate:scenariosto regenerate types and discovery data.
Extended scenarios (accessible via get_prompt):
- Create a new directory:
prompts/extended/{scenario_name}/(same naming rules as above). - Add a
tool.mdfile following the format above. - Run
npm run generate:scenariosto regenerate types and discovery data.
Deploy
# Deploy to Cloudflare Workers
npm run deploy
After deployment, your MCP endpoint will be:
https://agent-never-give-up-mcp.<account>.workers.dev/mcp
License
MIT
agent-never-give-up-mcpnpm install agent-never-give-up-mcp