Skip to main content
Glama
Session Think MCP

Session Think MCP

Session Think MCP

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

Overview

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.

Related MCP server: Think Strategies

Features

  • Structured Session Naming: Semantic names like thesis:NVDA:ai_dominance for 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.)

  • FastMCP-based: Built with fastmcp for stable, modern MCP protocol handling

  • Minimal Dependencies: Only FastMCP and Zod for validation

Quick Start

No installation required. Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "session-think": {
      "command": "npx",
      "args": ["-y", "session-think-mcp@latest"]
    }
  }
}

Option 2: Global Installation

npm install -g session-think-mcp

Then configure Claude Desktop:

{
  "mcpServers": {
    "session-think": {
      "command": "session-think-mcp"
    }
  }
}

Configuration

Claude Desktop Configuration File

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

Environment Variables

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,}$

Session Naming Convention

Sessions use structured names for easy reference and organization:

Format: category:name:subcategory

Examples:

  • thesis:NVDA:ai_dominance - Investment thesis about NVIDIA's AI position

  • topic:research:quantum_computing - Research topic on quantum computing

  • project:website:redesign - Project notes for website redesign

  • analysis: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

Available Tools

think

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 text

  • sessionName (optional): Session name in format category:name:subcategory

  • mode (optional): Thinking mode - linear, creative, critical, strategic, empathetic

  • tags (optional): Array of tags for categorization (a comma/semicolon-separated string is also accepted and split server-side)

  • relates_to (optional): ID of related thought

  • relationship_type (optional): builds_on, supports, contradicts, refines, synthesizes

list_sessions

List all available sessions with metadata.

{
  "limit": 50,
  "offset": 0
}

view_session

View contents of a specific session.

{
  "sessionName": "thesis:NVDA:ai_dominance",
  "limit": 50,
  "offset": 0
}

search_in_session

Search for thoughts within a specific session.

{
  "sessionName": "thesis:NVDA:ai_dominance",
  "query": "market share",
  "limit": 10,
  "offset": 0
}

search_all_sessions

Search across all sessions for matching content.

{
  "query": "artificial intelligence",
  "limit": 20,
  "offset": 0
}

get_session_info

Get metadata about a session without loading thoughts.

{
  "sessionName": "thesis:NVDA:ai_dominance"
}

rename_session

Rename an existing session.

{
  "oldSessionName": "TEMP:1740387654321:abc123",
  "newSessionName": "thesis:NVDA:ai_dominance"
}

delete_session

Delete a session permanently.

{
  "sessionName": "thesis:NVDA:ai_dominance"
}

cleanup_sessions

Remove old sessions based on age.

{
  "maxAgeDays": 90
}

find_thought_relationships

Search for related thoughts within a session.

{
  "sessionName": "thesis:NVDA:ai_dominance",
  "query": "competition",
  "relationship_types": ["builds_on", "contradicts"],
  "limit": 10
}

Session Storage

Sessions are stored locally as JSON files:

  • Default location: ./.session-think-sessions (current directory)

  • Override: Set SESSION_DIR environment variable

  • Format: One JSON file per session

  • Filename: Session name with colons replaced by ___ (e.g., thesis___NVDA___ai_dominance.json)

Usage Examples

Starting a New Session

Claude, please use the think tool to analyze NVIDIA's AI market position.
Use session name: thesis:NVDA:ai_dominance

Continuing a Session

Claude, continue my thinking in session thesis:NVDA:ai_dominance about competitive threats.

Searching for Sessions

Claude, search all my sessions for anything related to "artificial intelligence".

Viewing a Session

Claude, show me the last 20 thoughts from session thesis:NVDA:ai_dominance.

Architecture

  • Server: Native JavaScript MCP server built on fastmcp

  • Storage: File-based persistent session storage (JSON)

  • Transport: FastMCP stdio transport for maximum compatibility

  • Validation: Zod schemas for input validation

  • Output: Structured JSON with preserved reasoning and session context

Development

# 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 verify

Testing

Test the server locally:

# Run with stdio transport
node index.js

# Test with MCP Inspector
npx @modelcontextprotocol/inspector session-think-mcp

Performance

  • Startup time: < 100ms

  • Memory usage: < 20MB

  • Response time: < 10ms for typical operations

  • Zero processing overhead: Direct text preservation

Research Background

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

License

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.

Available Tools

10 tools
cleanup_sessionsCleanup Old SessionsC

Manually clean up old thinking sessions based on age.

Inputs: maxAgeDays.

delete_sessionDelete SessionB

Delete a thinking session permanently.

Inputs: sessionName (required).

find_thought_relationshipsFind Thought RelationshipsC

Search for thoughts that could be related to current reasoning within a session.

Inputs: query (required), sessionName (required), limit, exclude_thought_id, +1 more.

get_session_infoGet Session InfoA

Get metadata about a specific session without loading all thoughts.

Inputs: sessionName (required).

list_sessionsList SessionsC

List all available thinking sessions with metadata.

Inputs: limit, offset.

rename_sessionRename SessionC

Rename an existing session to a new name.

Inputs: newSessionName (required), oldSessionName (required).

search_all_sessionsSearch All SessionsA

Search for sessions containing thoughts matching a keyword. Returns session indicators, not full content.

Inputs: query (required), limit, offset.

search_in_sessionSearch in SessionB

Search for thoughts within a specific session by keyword.

Inputs: query (required), sessionName (required), limit, offset.

thinkThink ToolB

A persistent thinking workspace that preserves reasoning across sessions.

IMPORTANT: Always provide a sessionName parameter with format: category:name:subcategory Examples:

  • thesis:NVDA:ai_dominance

  • topic:research:quantum_computing

  • project:website:redesign

If no sessionName is provided, a temporary session will be generated (TEMP:timestamp:random).

The sessionName is used to store and retrieve your thoughts. Use consistent naming to maintain context across conversations.

Inputs: reasoning (required), mode, tags, relates_to, +2 more.

view_sessionView SessionB

View the contents of a thinking session. Returns the last N thoughts by default.

Inputs: sessionName (required), limit, offset.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a distinct resource/action: session lifecycle (list/view/info/rename/delete/cleanup), thought capture (think), and search variants (in-session, cross-session, and relationship discovery). Overlaps are minimized by clear distinctions such as metadata vs. content retrieval and keyword search vs. related-thought discovery.

    Naming Consistency4/5

    All names use consistent snake_case and most follow a verb_noun pattern (e.g., view_session, search_all_sessions, delete_session). The only notable exception is 'think', which is a bare verb rather than verb_noun, but it is still readable and predictable.

    Tool Count5/5

    The 10 tools are well-scoped for a persistent session/thought workspace. Each tool earns its place, covering lifecycle, retrieval, search, and cleanup without obvious redundancy.

    Completeness4/5

    Core session lifecycle and search/read operations are well covered, including cleanup, metadata, and cross-session search. A minor gap exists around thought-level mutation (no update/delete for individual thoughts) and session export, though thought permanence may be intentional.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables searching and retrieving Claude Code conversation history that would otherwise expire after 30 days. Supports full-text search, semantic search, and session management with automatic backup of all conversations.
      5 npm
      28
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Provides comprehensive session management for Claude Code with automatic initialization/cleanup, quality checkpoints, and local conversation memory with semantic search for capturing learnings across coding sessions.
      6
      338 PyPI
      4
      BSD 3-Clause