A Python MCP server for sequential thinking and problem-solving
UltraThink MCP Server
A Python MCP server for sequential thinking and problem-solving
Enhanced Python port of the Sequential Thinking MCP Server by Anthropic. Maintains full compatibility while adding confidence scoring, auto-assigned thought numbers, and multi-session support.
[!TIP] Using Claude Code? Install the UltraThink Plugin for seamless integration - no MCP server setup required!
# Via terminal claude plugin marketplace add husniadil/ekstend claude plugin install ultrathink@ekstend # Or interactively in Claude Code /plugin marketplace add husniadil/ekstend /plugin install ultrathink@ekstend
[!NOTE] Meta: This MCP server was built iteratively using UltraThink itself - a practical example of the tool's capability to break down complex problems, manage architectural decisions, and maintain context across development sessions.
Features
- UltraThink: Break down complex problems into manageable steps
- Dynamic Adjustments: Revise and refine thoughts as understanding deepens
- Branching: Explore alternative paths of reasoning
- Confidence Scoring: Explicit uncertainty tracking (0.0-1.0 scale)
- Auto-adjustment: Automatically adjusts total thoughts if needed
- Multi-Session Support: Manage multiple concurrent thinking sessions with session IDs
- Formatted Logging: Colored terminal output with rich formatting (can be disabled)
- 100% Test Coverage: Comprehensive test suite with full code coverage
- Type Safety: Full mypy strict mode type checking for production code
- Simple Layered Architecture: Clean separation with models, services, and interface layers
Installation
Quick Install (Recommended)
Run directly with uvx from GitHub (no installation needed):
uvx --from git+https://github.com/husniadil/ultrathink ultrathink
Development Setup
For local development:
# Clone the repository
git clone https://github.com/husniadil/ultrathink.git
cd ultrathink
# Install all dependencies (including dev dependencies)
uv sync
Usage
Task Commands (npm-like)
# List all available tasks
uv run task --list
# Run the server
uv run task run
# Run tests with coverage
uv run task test
# Run tests without coverage (quick)
uv run task test-quick
# Run the test client
uv run task client
# Format code (ruff + prettier)
uv run task format
# Lint code
uv run task lint
# Type check with mypy
uv run task typecheck
# Clean cache files
uv run task clean
Direct Commands (Alternative)
For direct execution without task runner:
# Run the server directly
uv run ultrathink
# Run the test client directly
uv run python examples/client.py
Note: For testing, linting, and formatting, prefer using uv run task commands shown above.
Tool: ultrathink
The server provides a single tool for dynamic and reflective problem-solving through structured thinking.
Parameters
Required:
thought(str): Your current thinking steptotal_thoughts(int): Estimated total thoughts needed (>=1)
Optional:
thought_number(int): Current thought number - auto-assigned sequentially if omitted (1, 2, 3...), or provide explicit number for branching/semantic controlnext_thought_needed(bool): Whether another thought step is needed. Auto-assigned asthought_number < total_thoughtsif omitted. Set explicitly to override default behaviorsession_id(str): Session identifier for managing multiple thinking sessions (None = create new, provide ID to continue session)is_revision(bool): Whether this revises previous thinkingrevises_thought(int): Which thought number is being reconsideredbranch_from_thought(int): Branching point thought numberbranch_id(str): Branch identifierneeds_more_thoughts(bool): If more thoughts are neededconfidence(float): Confidence level (0.0-1.0, e.g., 0.7 for 70% confident)uncertainty_notes(str): Optional explanation for doubts or concerns about this thoughtoutcome(str): What was achieved or expected as result of this thoughtassumptions(list[Assumption]): Assumptions made in this thought (id, text, confidence, critical, verifiable)depends_on_assumptions(list[str]): Assumption IDs this thought depends on (e.g., ["A
Tools (1)
ultrathinkA tool for dynamic and reflective problem-solving through structured thinking steps.Configuration
{"mcpServers": {"ultrathink": {"command": "uvx", "args": ["--from", "git+https://github.com/husniadil/ultrathink", "ultrathink"]}}}