Skip to main content
Glama

marm-mcp

session.py3.42 kB
"""Session endpoints for MARM MCP Server.""" from fastapi import HTTPException, APIRouter import sqlite3 from datetime import datetime, timezone from typing import Optional # Import core components from core.models import SessionRequest from core.memory import memory from core.events import events from utils.helpers import read_protocol_file # Create router for session endpoints router = APIRouter(prefix="", tags=["MARM Protocol"]) @router.post("/marm_start", operation_id="marm_start") async def marm_start(request: SessionRequest): """ 🚀 Activates MARM memory and accuracy layers Equivalent to /start marm command """ try: with memory.get_connection() as conn: conn.execute(''' INSERT OR REPLACE INTO sessions (session_name, marm_active, last_accessed) VALUES (?, TRUE, ?) ''', (request.session_name, datetime.now(timezone.utc).isoformat())) conn.commit() # Read the current protocol from file protocol_content = await read_protocol_file() await events.emit('marm_started', {'session': request.session_name}) return { "status": "success", "message": f"🚀 MARM protocol activated for session '{request.session_name}'", "session_name": request.session_name, "marm_active": True, "protocol_content": protocol_content, "instructions": "The complete MARM protocol documentation has been loaded and is available for reference." } except sqlite3.Error as e: print(f"Database error in marm_start: {e}") raise HTTPException(status_code=500, detail="Database error during MARM start.") except Exception as e: print(f"Unexpected error in marm_start: {e}") raise HTTPException(status_code=500, detail="Internal server error during MARM start.") @router.post("/marm_refresh", operation_id="marm_refresh") async def marm_refresh(request: SessionRequest): """ 🔄 Refreshes active session state and reaffirms protocol adherence Equivalent to /refresh marm command """ try: with memory.get_connection() as conn: conn.execute(''' UPDATE sessions SET last_accessed = ? WHERE session_name = ? ''', (datetime.now(timezone.utc).isoformat(), request.session_name)) conn.commit() # Read the current protocol from file to reaffirm adherence protocol_content = await read_protocol_file() await events.emit('marm_refreshed', {'session': request.session_name}) return { "status": "success", "message": f"🔄 MARM session '{request.session_name}' refreshed - protocol adherence reaffirmed", "session_name": request.session_name, "protocol_content": protocol_content, "instructions": "Protocol documentation refreshed. Please review the current MARM protocol specifications above." } except sqlite3.Error as e: print(f"Database error in marm_refresh: {e}") raise HTTPException(status_code=500, detail="Database error during MARM refresh.") except Exception as e: print(f"Unexpected error in marm_refresh: {e}") raise HTTPException(status_code=500, detail="Internal server error during MARM refresh.")

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Lyellr88/marm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server