A JavaScript native MCP server implementing a session-based "think" tool with structured session naming and search capabilities.
Based on Anthropic's research on enhancing Claude's complex problem-solving abilities through dedicated thinking workspaces.
npm: https://www.npmjs.com/package/session-think-mcp
git: https://github.com/differentstuff/session-think-mcp
This MCP server provides a persistent thinking workspace that preserves reasoning text without modification, creating dedicated space for structured thinking during complex tasks. The tool follows the zero-interference principle - it simply preserves and structures your reasoning without any cognitive overhead.
- Structured Session Naming: Semantic names like
thesis:NVDA:ai_dominancefor easy reference - Session Search: Search within sessions or across all sessions by keyword
- Persistent Storage: Thoughts preserved across sessions in local files
- Pagination: Efficient retrieval with configurable limits
- Thinking Modes: Optional support for different thinking strategies
- Relationship Tracking: Link thoughts with relationships (builds_on, supports, contradicts, etc.)
- Native MCP Protocol: Built with
@modelcontextprotocol/sdkfor optimal performance - Minimal Dependencies: Only the MCP SDK and Zod for validation
No installation required. Add to your Claude Desktop configuration:
{
"mcpServers": {
"session-think": {
"command": "npx",
"args": ["-y", "session-think-mcp@latest"]
}
}
}npm install -g session-think-mcpThen configure Claude Desktop:
{
"mcpServers": {
"session-think": {
"command": "session-think-mcp"
}
}
}Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Configure behavior via environment variables:
{
"mcpServers": {
"session-think": {
"command": "npx",
"args": ["-y", "session-think-mcp@latest"],
"env": {
"SESSION_DIR": "/path/to/sessions",
"SESSION_MAX_RETURN": "50",
"SESSION_NAME_PATTERN": "^[a-zA-Z0-9_-]+(:[a-zA-Z0-9_-]+){2,}$"
}
}
}
}| Variable | Description | Default |
|---|---|---|
SESSION_DIR |
Storage location for session files | ./.session-think-sessions |
SESSION_MAX_RETURN |
Maximum thoughts returned by default | 50 |
SESSION_NAME_PATTERN |
Regex pattern for session name validation | ^[a-zA-Z0-9_-]+(:[a-zA-Z0-9_-]+){2,}$ |
Sessions use structured names for easy reference and organization:
Format: category:name:subcategory
Examples:
thesis:NVDA:ai_dominance- Investment thesis about NVIDIA's AI positiontopic:research:quantum_computing- Research topic on quantum computingproject:website:redesign- Project notes for website redesignanalysis:competitor:openai- Competitor analysis of OpenAI
Rules:
- At least 3 parts separated by colons
- Each part: alphanumeric, underscores, or hyphens
- If no name provided, generates
TEMP:timestamp:random
Add a thought to a session.
{
"reasoning": "Your thinking text here...",
"sessionName": "thesis:NVDA:ai_dominance",
"mode": "critical",
"tags": ["analysis", "investment"]
}Parameters:
reasoning(required): Your thinking textsessionName(optional): Session name in formatcategory:name:subcategorymode(optional): Thinking mode -linear,creative,critical,strategic,empathetictags(optional): Array of tags for categorizationrelates_to(optional): ID of related thoughtrelationship_type(optional):builds_on,supports,contradicts,refines,synthesizes
List all available sessions with metadata.
{
"limit": 50,
"offset": 0
}View contents of a specific session.
{
"sessionName": "thesis:NVDA:ai_dominance",
"limit": 50,
"offset": 0
}Search for thoughts within a specific session.
{
"sessionName": "thesis:NVDA:ai_dominance",
"query": "market share",
"limit": 10,
"offset": 0
}Search across all sessions for matching content.
{
"query": "artificial intelligence",
"limit": 20,
"offset": 0
}Get metadata about a session without loading thoughts.
{
"sessionName": "thesis:NVDA:ai_dominance"
}Rename an existing session.
{
"oldSessionName": "TEMP:1740387654321:abc123",
"newSessionName": "thesis:NVDA:ai_dominance"
}Delete a session permanently.
{
"sessionName": "thesis:NVDA:ai_dominance"
}Remove old sessions based on age.
{
"maxAgeDays": 90
}Search for related thoughts within a session.
{
"sessionName": "thesis:NVDA:ai_dominance",
"query": "competition",
"relationship_types": ["builds_on", "contradicts"],
"limit": 10
}Sessions are stored locally as JSON files:
- Default location:
./.session-think-sessions(current directory) - Override: Set
SESSION_DIRenvironment variable - Format: One JSON file per session
- Filename: Session name with colons replaced by
___(e.g.,thesis___NVDA___ai_dominance.json)
Claude, please use the think tool to analyze NVIDIA's AI market position.
Use session name: thesis:NVDA:ai_dominance
Claude, continue my thinking in session thesis:NVDA:ai_dominance about competitive threats.
Claude, search all my sessions for anything related to "artificial intelligence".
Claude, show me the last 20 thoughts from session thesis:NVDA:ai_dominance.
- Server: Native JavaScript MCP server using official SDK
- Storage: File-based persistent session storage (JSON)
- Transport: StdioServerTransport for maximum compatibility
- Validation: Zod schemas for input validation
- Output: Structured JSON with preserved reasoning and session context
# Clone repository
git clone https://github.com/differentstuff/session-think-mcp.git
cd session-think-mcp
# Install dependencies
npm install
# Start development server
npm start
# Run verification
npm run verifyTest the server locally:
# Run with stdio transport
node index.js
# Test with MCP Inspector
npx @modelcontextprotocol/inspector session-think-mcp- Startup time: < 100ms
- Memory usage: < 20MB
- Response time: < 10ms for typical operations
- Zero processing overhead: Direct text preservation
This implementation is based on Anthropic's engineering research demonstrating that a "think" tool creates dedicated space for structured thinking, resulting in:
- 54% improvement in customer service simulations
- Better policy adherence in complex scenarios
- Enhanced multi-step problem solving capabilities
- More consistent decision making across tasks
MIT License - see LICENSE file for details.
Note: This tool requires Node.js 18+ and is optimized for use with Claude Desktop and the Model Context Protocol ecosystem.