
pranjalbhatia710/descartes-mcp
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
Doubt, until what remains is certain. An MCP server that recursively doubts every plan decision — grounding each in real evidence or asking you — until it converges. Runs on Claude alone, no keys.
개요
The Asker learns to the sharpest questions to understand a subject; Descartes learns to until what remains is certain. Two halves of one idea: the right question beats the confident answer. → 🪶 · descartes --epigraph for a passing thought from the man himself. An MCP server that, on a prompt, — iterating until the plan stops producing new load-bearing doubts. Then it hands back a refined plan plus the few decisions only you can make. The point: no unexamined assumption reaches the work, so hallucination has no room to hide. On a prompt, Descartes runs recursive Cartesian doubt: 1. the plan / decisions. 2. every load-bearing decision (one of 11 doubt operators per doubt). 3. — prune the trivial and manufactured ones. 4. each surviving doubt only from real evidence: - code doubts → resolved from the context you pass in, - world doubts → resolved via (cited, confidence-scored), - ungroundable → marked . 5.
README
원문 README의 일부입니다. 원문 보기.
Descartes
doubt, until what remains is certain.
🔭 Sibling project: The Asker — today’s AI answers, this one asks.
The Asker learns to ask the sharpest questions to understand a subject; Descartes learns to doubt until what remains is certain. Two halves of one idea: the right question beats the confident answer. → https://github.com/pranjalbhatia710/the-asker
🪶 Landing page → · descartes --epigraph for a passing thought from the man himself.
An MCP server that, on a prompt, doubts every decision in a plan, doubts its own doubts, and answers them — grounding every answer in real evidence — iterating until the plan stops producing new load-bearing doubts. Then it hands back a refined plan plus the few decisions only you can make.
The point: no unexamined assumption reaches the work, so hallucination has no room to hide.
The loop
On a prompt, Descartes runs recursive Cartesian doubt:
- Draft the plan / decisions.
- Doubt every load-bearing decision (one of 11 doubt operators per doubt).
- Doubt the doubts — prune the trivial and manufactured ones.
- Answer each surviving doubt only from real evidence:
- code doubts → resolved from the
contextyou pass in, - world doubts → resolved via Exa (cited, confidence-scored),
- ungroundable → marked NEEDS_HUMAN.
- code doubts → resolved from the
- Doubt the answer — recurse: each settled answer is itself doubted (the question behind the question), spawning the next layer of doubts, bounded by depth and a global doubt budget.
- Bank it — every grounded finding accumulates into a knowledge base that feeds the next round of doubting and the final plan.
- Revise the plan with what survived, and repeat from step 2.
The output is therefore a doubt tree (each entry carries depth + parent),
not a flat list, plus a knowledge_base of accumulated facts.
Stopping rule: the loop stops the moment a full pass produces no new
load-bearing doubt — that is convergence. It might be pass 3 or pass 9. 20 is
a hard ceiling, never a target, and recursion is bounded by DESCARTES_MAX_DEPTH
(default 3) and DESCARTES_DOUBT_BUDGET (default 64). It never manufactures doubt
to keep going.
Grounding rule: every answer resolves against real evidence or becomes a question for you. Low-confidence Exa is never asserted. 20 rounds of self-answered, ungrounded doubt would be 20 rounds of confident hallucination — so that is forbidden by construction.
Two engines (auto-selected)
| If you set… | Descartes runs… |
설치
This server does not publish a one-line install command.
Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →설정
{
"mcpServers": {
"descartes": {
"command": "descartes",
"args": [],
"env": {
"FIREWORKS_API_KEY": "${FIREWORKS_API_KEY}",
"EXA_API_KEY": "${EXA_API_KEY}",
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}"
}
}
}
}