Atom of Thoughts
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Atom of Thoughts Use AoT-fast to analyze tradeoffs between JWT and session auth."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Atom of Thoughts
Structured reasoning for LLMs. Decompose, track confidence, visualize, approve.

Quickstart
1. Add to your MCP config:
{
"mcpServers": {
"atom-of-thoughts": {
"command": "npx",
"args": ["-y", "@dioptx/mcp-atom-of-thoughts"]
}
}
}2. Restart your client.
3. Ask the model to reason something through:
"Use AoT-fast to think through whether we should use JWT or session-based auth for the API."
The model breaks the problem into five kinds of atoms (premise, reasoning, hypothesis, verification, conclusion), each tagged with a confidence score. You get a structured chain you can audit, not a black-box answer.
Works with Claude Code, Cursor, Windsurf, or any MCP-aware client.
Related MCP server: verifiable-thinking-mcp
Install
npx (recommended; zero install, always latest)
{ "command": "npx", "args": ["-y", "@dioptx/mcp-atom-of-thoughts"] }npm global
npm install -g @dioptx/mcp-atom-of-thoughts{ "command": "mcp-atom-of-thoughts" }Smithery
npx -y @smithery/cli install @dioptx/mcp-atom-of-thoughts --client claudeDocker
docker build -t aot .{ "command": "docker", "args": ["run", "-i", "--rm", "aot"] }How it works
graph LR
P["P · Premise"]:::premise --> R["R · Reasoning"]:::reasoning
R --> H["H · Hypothesis"]:::hypothesis
H --> V["V · Verification"]:::verification
V --> C["C · Conclusion"]:::conclusion
classDef premise fill:#6b7280,stroke:#9ca3af,color:#fff,font-weight:bold
classDef reasoning fill:#3b82f6,stroke:#60a5fa,color:#fff,font-weight:bold
classDef hypothesis fill:#eab308,stroke:#facc15,color:#000,font-weight:bold
classDef verification fill:#06b6d4,stroke:#22d3ee,color:#fff,font-weight:bold
classDef conclusion fill:#22c55e,stroke:#4ade80,color:#fff,font-weight:boldAtoms chain through dependencies. Each carries a confidence score from 0 to 1. Reasoning terminates when a high-confidence conclusion lands or max depth is hit. Each problem runs in its own session, so two threads of thought never bleed into each other.
Tools
Three tools cover the full surface:
Tool | When to reach for it |
| Default. Tradeoffs, debugging, decisions, option evaluation. Depth 3. |
| Plans, architecture, decomposition into sub-problems. Depth 5. |
| Sessions, export, approval polling, decomposition lifecycle. |
Quick example
AoT-fast({atomId:"P1", content:"API returns 500 on POST /users", atomType:"premise"})
AoT-fast({atomId:"R1", content:"Unhandled exception in route handler", atomType:"reasoning", dependencies:["P1"]})
AoT-fast({atomId:"C1", content:"Add try-catch in POST handler", atomType:"conclusion", dependencies:["R1"], confidence:0.9})Only atomId, content, and atomType are required. Everything else has sensible defaults.
Visualization
Pass viz: true on any call to open an interactive D3 graph in the browser:
AoT-fast({atomId:"C1", ..., viz: true})Approve and reject decisions POST back to the server over HTTP. No filesystem polling.
Live TUI
Watch the model reason in a second terminal pane while it works, and feed approve/reject decisions back into the next tool call. The event feed is on by default; nothing extra to configure.
In a second pane next to your LLM client:
npx -y @dioptx/mcp-atom-of-thoughts tui1. Watch reasoning unfold

Atoms appear as the model emits them, walking the chain premise → reasoning → hypothesis → verification → conclusion. Confidence bars fill in real time, dependencies show as inline arrows, and a velocity sparkline tracks event rate. Auto-scroll keeps the newest atom selected.
2. Give granular feedback

j / k move the selection. a accepts an atom; * stars it as critical context; r rejects it and prompts for a one-line reason. s submits the verdict. The submit flash tells you exactly what to do next: ask the model to call atomcommands check_approval. The verdict is written as the same approval JSON the existing file-fallback path already polls for, so feedback flows back through a contract the server already understands. Zero new wire protocol.
3. Customize the view

t opens settings: confidence threshold to hide low-confidence atoms, color theme (vibrant, soft, or mono), compact mode, dependency arrows toggle. ? shows the full keymap.
Keys reference
Key | Action |
| Move selection |
| Accept the selected atom |
| Reject (prompts for a one-line reason) |
| Clear feedback on the selected atom |
| Star as critical context |
| Submit verdict (writes |
| Settings (threshold, theme, compact mode, deps) |
| Keys help |
| Pause / resume event stream |
| Quit |
Skip setup and see it in action:npx -y @dioptx/mcp-atom-of-thoughts tui --demo
{
"args": ["-y", "@dioptx/mcp-atom-of-thoughts", "--mode", "fast", "--viz", "never"]
}Flag | Default | Effect |
|
| Which tools to register |
|
|
|
| 5 / 3 | Override depth limit |
| OS temp | Where to write viz HTML |
| ~/Downloads | Approval JSON fallback |
Each reasoning chain gets its own session. Default ID: "default".
atomcommands new_sessioncreates and activates a new one.atomcommands switch_session/list_sessions/reset_sessionfor management.When reasoning terminates, the session auto-archives. The next zero-dependency atom auto-spawns
default-2,default-3, and so on.Or pass
sessionIdon any AoT call to target one explicitly.
Two problems in one MCP process stay isolated without manual session management.
Prefer a browser tab to a terminal pane? Pass viz: true on any AoT call. The server writes a self-contained HTML file (D3 inlined, works offline) and opens it:
Force-directed graph colored by atom type with confidence rings
Sidebar to approve or reject phases or individual atoms
Approve / reject POSTs to a local
127.0.0.1listener on an ephemeral port; falls back to a~/Downloadsfile scan if the listener can't bind
The TUI and the browser viz both feed atomcommands check_approval. Pick whichever fits your workflow.
npx (zero install):
{ "command": "npx", "args": ["-y", "@dioptx/mcp-atom-of-thoughts"] }npm global:
npm install -g @dioptx/mcp-atom-of-thoughtsSmithery:
npx -y @smithery/cli install @dioptx/mcp-atom-of-thoughts --client claudeDocker:
docker build -t aot . && docker run -i --rm aotgit clone https://github.com/dioptx/mcp-atom-of-thoughts.git
cd mcp-atom-of-thoughts
npm install
npm test # 183 tests (unit + e2e)
npm run buildSee MIGRATION_v2_to_v3.md for the full lookup table. The short version:
AoT-lightis nowAoT-fastAoTis nowAoT-fullgenerate_visualizationis nowviz: trueon any AoT callexport_graphandcheck_approvalare nowatomcommandssubcommands--no-vizand--no-approvalare replaced by--viz auto|always|never
MIT. Based on Atom of Thoughts.
Available Tools
3 toolsAoT-fastA
Default structured reasoning. Decomposes problems into atomic thoughts with dependency tracking. Depth 3.
Use for: think-through, analyze, reason about tradeoffs, debug root causes, evaluate alternatives, make decisions. Most reasoning tasks belong here.
Trigger phrases: "think through", "analyze", "reason about", "debug", "evaluate options", "compare approaches".
Atom types: premise (facts) → reasoning (logic) → hypothesis (proposals) → verification (checks) → conclusion (answer).
Minimal 3-call example: Call 1: {atomId:"P1", content:"The API returns 500 on POST /users", atomType:"premise"} Call 2: {atomId:"R1", content:"500 suggests unhandled exception in route handler", atomType:"reasoning", dependencies:["P1"]} Call 3: {atomId:"C1", content:"Add try-catch in POST /users handler", atomType:"conclusion", dependencies:["R1"], confidence:0.9}
Only atomId, content, and atomType are required. dependencies defaults to [], confidence defaults to 0.7.
Use AoT-full instead when you need >5 reasoning steps, multi-angle verification, or decomposition of sub-problems.
viz param: only set viz:true when the user explicitly asks to see the graph or says "visualize". Never set it automatically.
Inputs: atomId (required), content (required), atomType (required), dependencies, +5 more.
AoT-fullA
Deep structured reasoning with decomposition-contraction. Depth 5.
Use for: implementation plans, architecture decisions, multi-step verification, problems that decompose into sub-problems.
Trigger phrases: "plan", "design", "megathink", "full AoT", /aot-plan.
Same atom types and parameters as AoT-fast. Drives decomposition via the atomcommands tool (decompose → sub-atoms → complete_decomposition). Reach for AoT-fast first unless you genuinely need the extra depth or decomposition.
viz param: only set viz:true when the user explicitly asks to see the graph or says "visualize". Never set it automatically.
Inputs: atomId (required), content (required), atomType (required), dependencies, +5 more.
atomcommandsB
Lifecycle and meta operations for the current AoT session.
Commands:
decompose: Break an atom into sub-atoms (requires atomId)
complete_decomposition: Finish a decomposition (requires decompositionId)
termination_status: Check if reasoning should stop
best_conclusion: Get the highest-confidence verified conclusion
set_max_depth: Change max depth limit (requires maxDepth)
export: Export the current atom graph as JSON for analysis or visualization (optional title)
check_approval: Poll for browser-based approval decisions (optional downloadsDir, sessionStartTime)
new_session: Create and switch to a new session (optional sessionId; auto-generated if omitted)
switch_session: Activate an existing session (requires sessionId)
list_sessions: List all sessions with status and atom counts
reset_session: Wipe atoms in a session (defaults to active)
Inputs: command (required), atomId, decompositionId, maxDepth, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: AoT-fast handles simple structured reasoning, AoT-full handles deep reasoning with decomposition, and atomcommands manages lifecycle operations. There is no ambiguity about which tool to use for a given task.
Naming is somewhat inconsistent: two tools use the prefix 'AoT-' (AoT-fast, AoT-full) while the third uses a different style (atomcommands). This mixed convention makes the set less predictable but still readable.
Three tools is on the low side for a reasoning server that offers multiple capabilities (simple reasoning, deep reasoning, lifecycle operations). The boundary between AoT-fast and AoT-full could be merged into one tool with a depth parameter, and atomcommands bundles many features into one tool.
The tool set covers the core reasoning workflow (simple and deep) and all necessary life-cycle operations (sessions, decomposition, export). Minor gaps exist, such as a dedicated tool to list atoms in a session, but these can be addressed via existing commands like export.
Maintenance
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for generating rough-draft project plans from natural-language prompts.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Python-based MCP server that facilitates structured problem-solving through sequential thinking, branching, and confidence scoring. It allows users to track assumptions and manage multiple concurrent reasoning sessions to break down complex tasks.121MIT
- AlicenseBqualityNot gradedmaintenanceMCP server for structured reasoning with cognitive trap detection, verification, and context compression541 npm1-
- AlicenseAqualityDmaintenanceA structured problem-solving MCP server that breaks down complex tasks into sequential steps, supports iterative refinement and branching, and helps maintain context and explore alternative reasoning paths.111 npm41MIT
- FlicenseAqualityDmaintenanceA structured reasoning and problem-solving MCP server that helps track step-by-step analysis with confidence levels, branching, and revisions, ideal for complex multi-step tasks like code optimization and debugging.1-