Session-based command execution with intelligent LLM-powered summarization.
DAZ Command MCP Server

A Model Context Protocol (MCP) server that provides session-based command execution with intelligent LLM-powered summarization.
🚀 Features
- 🔧 Session Management: Create, open, and manage isolated command execution sessions
- ⚡ Command Execution: Run shell commands with timeout controls and working directory management
- 📁 File Operations: Read and write text files with comprehensive error handling
- 🤖 LLM Summarization: Automatic session progress tracking using structured LLM responses
- 📋 Event Logging: Complete audit trail of all operations within sessions
- 🔒 Thread-Safe: Robust concurrent operation with proper synchronization
📦 Installation
Prerequisites
- Python 3.8+
fastmcplibrarydazllmlibrary for LLM integration
Quick Setup
- Clone this repository:
git clone https://github.com/yourusername/daz-command-mcp.git
cd daz-command-mcp
- Install dependencies:
pip install -r requirements.txt
- Configure your LLM model in the script (default:
lm-studio:openai/gpt-oss-20b)
🎯 Usage
Starting the Server
python main.py
Available Tools
Session Management
daz_sessions_list()- List all sessions and identify the active onedaz_session_create(name, description)- Create and activate a new sessiondaz_session_open(session_id)- Open and activate an existing sessiondaz_session_current()- Get details of the currently active sessiondaz_session_close()- Close the current sessiondaz_session_rename(old_name, new_name)- Rename an existing sessiondaz_session_delete(session_name)- Delete a session by moving to deleted_sessions
Command & File Operations
All command and file operations require an active session and context parameters:
daz_command_cd(directory, current_task, summary_of_what_we_just_did, summary_of_what_we_about_to_do)- Change working directorydaz_command_read(file_path, current_task, summary_of_what_we_just_did, summary_of_what_we_about_to_do)- Read a text filedaz_command_write(file_path, content, current_task, summary_of_what_we_just_did, summary_of_what_we_about_to_do)- Write a text filedaz_command_run(command, current_task, summary_of_what_we_just_did, summary_of_what_we_about_to_do, timeout=60)- Execute shell commands
Learning & Instructions
daz_add_learnings(learning_info)- Add important discoveries and context to the sessiondaz_instructions_read()- Read current session instructionsdaz_instructions_add(instruction)- Add a new instruction to the sessiondaz_instructions_replace(instructions)- Replace all instructions with a new listdaz_record_user_request(user_request)- Record a user request at the start of multi-step tasks
Example Workflow
# Create a new session
daz_session_create("Setup Project", "Setting up a new Python project with dependencies")
# Navigate to project directory
daz_command_cd("/path/to/project",
"Setting up Python project",
"Created new session for project setup",
"Navigate to project root directory")
# Run commands
daz_command_run("pip install -r requirements.txt",
"Setting up Python project",
"Navigated to project directory",
"Install project dependencies")
# Read configuration
daz_command_read("config.json",
"Setting up Python project",
"Installed dependencies successfully",
"Review current configuration settings")
# Write new file
daz_command_write("setup.py", "...",
"Setting up Python project",
"Reviewed configuration file",
"Create package setup file")
🏗️ Architecture
Session Storage
Sessions are stored as JSON files in the sessions/ directory with the following structure:
{
"id": "unique-session-id",
"name": "Session Name",
"description": "Detailed description",
"created_at": 1692123456.789,
"updated_at": 1692123456.789,
"summary": "LLM-generated summary",
"progress": "Current progress status",
"current_directory": "/current/working/dir",
"events_count": 42
}
Event Logging
Every operation is logged with comprehensive details in event_log.jsonl:
{
"timestamp": 1692123456.789,
"type": "run|read|write|cd|user_request|learning",
"current_task": "The task being worked on",
"summary_of_what_we_just_did": "What was just completed",
"summary_of_what_we_about_to_do": "What's planned next",
"inputs": {...},
"outputs": {...},
"duration": 0.123
}
LLM Integration
The server uses asynchronous LLM processing to maintain session summaries:
- 🔄 Background Processing: Summarization runs in a sep
Tools (16)
daz_sessions_listList all sessions and identify the active onedaz_session_createCreate and activate a new sessiondaz_session_openOpen and activate an existing sessiondaz_session_currentGet details of the currently active sessiondaz_session_closeClose the current sessiondaz_session_renameRename an existing sessiondaz_session_deleteDelete a session by moving to deleted_sessionsdaz_command_cdChange working directorydaz_command_readRead a text filedaz_command_writeWrite a text filedaz_command_runExecute shell commandsdaz_add_learningsAdd important discoveries and context to the sessiondaz_instructions_readRead current session instructionsdaz_instructions_addAdd a new instruction to the sessiondaz_instructions_replaceReplace all instructions with a new listdaz_record_user_requestRecord a user request at the start of multi-step tasksConfiguration
{ "mcpServers": { "daz-command": { "command": "python", "args": ["/path/to/daz-command-mcp/main.py"] } } }