get_auto_save_status
Determine if auto-save is active for a session to verify data persistence settings. Use to confirm changes are saved automatically.
Instructions
Get auto-save status for a session.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- Main tool handler: async function that gets auto-save status for a session. Retrieves the session from the session manager, calls session.get_auto_save_status(), wraps result in OperationResult model.
async def get_auto_save_status(session_id: str, ctx: Context = None) -> dict[str, Any]: """ Get auto-save status for a session. Args: session_id: Session identifier ctx: FastMCP context Returns: Dict with auto-save status """ try: manager = get_session_manager() session = manager.get_session(session_id) if not session: return OperationResult( success=False, message="Session not found", error=f"No session with ID: {session_id}", ).model_dump() status = session.get_auto_save_status() if ctx: await ctx.info(f"Auto-save status retrieved for session {session_id}") return OperationResult( success=True, message="Auto-save status retrieved", session_id=session_id, data=status ).model_dump() except Exception as e: logger.error(f"Error getting auto-save status: {e!s}") if ctx: await ctx.error(f"Failed to get auto-save status: {e!s}") return OperationResult( success=False, message="Failed to get auto-save status", error=str(e) ).model_dump() - Session model method: delegates to auto_save_manager.get_status() to retrieve the auto-save status dict.
def get_auto_save_status(self) -> dict[str, Any]: """Get current auto-save status.""" return self.auto_save_manager.get_status() - AutoSaveManager.get_status(): returns a dict with enabled, mode, strategy, last_save, save_count, periodic_active, and full config.
def get_status(self) -> dict[str, Any]: """Get auto-save status.""" return { "enabled": self.config.enabled, "mode": self.config.mode.value, "strategy": self.config.strategy.value, "last_save": self.last_save.isoformat() if self.last_save else None, "save_count": self.save_count, "periodic_active": self.periodic_task is not None and not self.periodic_task.done(), "config": self.config.to_dict(), } - src/csv_editor/server.py:457-460 (registration)MCP tool registration via @mcp.tool decorator on get_auto_save_status, which delegates to the imported _get_auto_save_status.
@mcp.tool async def get_auto_save_status(session_id: str, ctx: Context = None) -> dict[str, Any]: """Get auto-save status for a session.""" return await _get_auto_save_status(session_id, ctx) - OperationResult Pydantic model used as the return type schema for the tool.
class OperationResult(BaseModel): """Result of a data operation.""" success: bool = Field(..., description="Whether operation succeeded") message: str = Field(..., description="Result message") session_id: str | None = Field(None, description="Session ID") rows_affected: int | None = Field(None, description="Number of rows affected") columns_affected: list[str] | None = Field(None, description="Columns affected") data: dict[str, Any] | None = Field(None, description="Additional result data") error: str | None = Field(None, description="Error message if failed") warnings: list[str] | None = Field(None, description="Warning messages")