{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/mcp-servers\/mcp_docs\/domain\/dokumentation.py"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/mcp-servers\/mcp_docs\/domain\/dokumentation.py",
"content": "\"\"\"Domain Entities für MCP-Docs Server\"\"\"\nfrom dataclasses import dataclass, field\nfrom datetime import datetime\nfrom enum import Enum\nfrom typing import Optional, Dict, Any, List\n\n\nclass DocStatus(str, Enum):\n \"\"\"Dokumentations-Status-Werte\"\"\"\n DRAFT = \"draft\"\n PUBLISHED = \"published\"\n ARCHIVED = \"archived\"\n\n\n@dataclass\nclass Dokumentation:\n \"\"\"Dokumentation-Entity für Datenbank\"\"\"\n id: Optional[int] = None\n parent_id: Optional[int] = None\n slug: str = \"\"\n path: str = \"\"\n title: str = \"\"\n description: Optional[str] = None\n content: str = \"\"\n status: DocStatus = DocStatus.DRAFT\n sort_order: int = 0\n depth: int = 0\n created_at: datetime = field(default_factory=datetime.now)\n updated_at: datetime = field(default_factory=datetime.now)\n\n def to_dict(self) -> Dict[str, Any]:\n \"\"\"Vollständige Darstellung\"\"\"\n return {\n \"id\": self.id,\n \"parent_id\": self.parent_id,\n \"slug\": self.slug,\n \"path\": self.path,\n \"title\": self.title,\n \"description\": self.description,\n \"content\": self.content,\n \"status\": self.status.value if isinstance(self.status, DocStatus) else self.status,\n \"sort_order\": self.sort_order,\n \"depth\": self.depth,\n \"created_at\": self.created_at.isoformat() if self.created_at else None,\n \"updated_at\": self.updated_at.isoformat() if self.updated_at else None,\n }\n\n def to_dict_compact(self) -> Dict[str, Any]:\n \"\"\"Kompakte Darstellung für Listen (Token-sparend, ohne content)\"\"\"\n return {\n \"id\": self.id,\n \"parent_id\": self.parent_id,\n \"path\": self.path,\n \"title\": self.title,\n \"status\": self.status.value if isinstance(self.status, DocStatus) else self.status,\n \"depth\": self.depth,\n }\n\n\n@dataclass\nclass LogEntry:\n \"\"\"Log-Eintrag für mcp_log Tabelle\"\"\"\n client_name: str = \"mcp-docs\"\n tool_name: str = \"\"\n request: str = \"\"\n status: str = \"success\" # success | denied | error\n duration_ms: int = 0\n error_message: Optional[str] = None\n timestamp: datetime = field(default_factory=datetime.now)\n",
"numLines": 70,
"startLine": 1,
"totalLines": 70
}
}
}