A Model Context Protocol (MCP) server that combines sequential thinking with persistent memory through a knowledge graph. This enables AI assistants to explore decision trees by recording thinking traces, branching at low-confidence points, and backtracking to explore alternative paths.
- Linear thinking when confidence is high (≥ 0.6)
- Automatic branching when confidence drops below threshold (< 0.6)
- Path recording in an in-memory graph structure
- Backtracking to explore alternative branches
- Path visualization to see complete thinking traces
- Unexplored branch detection to identify paths not yet taken
- Clone this repository
- Create a virtual environment:
python -m venv venv venv\Scripts\activate # On Windows # or source venv/bin/activate # On Unix/MacOS
- Install dependencies:
pip install mcp
Add the following to your Claude Desktop configuration file:
C:\Users\steve\AppData\Roaming\Claude\claude_desktop_config.json
{
"mcpServers": {
"sequential-memory": {
"command": "python",
"args": [
"-m",
"sequential_memory.server"
],
"cwd": "C:\\Users\\steve\\claude\\seq-mem\\src"
}
}
}The server provides 5 main tools:
Process a thought with a confidence level.
- Parameters:
thought(string): The thought contentconfidence(number): Confidence level (0.0-1.0)
- Returns: Status (continue/branch), current node ID, and whether alternatives are needed
Choose from alternative thoughts at a branch point.
- Parameters:
alternatives(array): List of alternative thoughts with confidence levelsselected_index(integer): Which alternative to select (0-based)
- Returns: Selected thought information and new current node ID
Return to the last high-confidence node in the current path.
- Parameters: None
- Returns: Information about the node backtracked to (or no_target if none found)
Display the current thinking path from root to current node.
- Parameters: None
- Returns: Complete path with node details, total nodes, and branch points
Find all branch points with unexplored alternatives.
- Parameters: None
- Returns: List of unexplored branches with their alternatives
User: Let's think through a problem step by step.
Claude: I'll use sequential thinking to explore this systematically.
[thinks: "First, let me understand the problem clearly" (0.8)]
[thinks: "The key aspects seem to be X, Y, and Z" (0.9)]
[thinks: "Now I need to decide on an approach..." (0.3)]
I've reached a point of uncertainty. Let me explore different approaches:
[select_path with alternatives:
- "Focus on aspect X first" (0.7)
- "Start with aspect Y" (0.6)
- "Consider aspect Z" (0.5)]
[Continue thinking on selected path...]
User: Let's backtrack and try a different approach.
Claude: [backtrack]
I've returned to "The key aspects seem to be X, Y, and Z".
Let me explore one of the other approaches...
Run the test suite:
python -m pytest tests/test_basic.py
# or
python tests/test_basic.py- graph.py: Core graph data structures (Node, Edge, ThoughtGraph)
- tools.py: MCP tool implementations and definitions
- server.py: Main MCP server implementation
- test_basic.py: Comprehensive test suite
The codebase is organized for clarity and extensibility:
- All graph operations are encapsulated in the
ThoughtGraphclass - Tool handlers are separated in the
SequentialMemoryToolsclass - The server handles only MCP protocol communication
- Tests cover both unit and integration scenarios