{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/mcp-servers\/mcp_code\/tools\/dependents.py",
"content": "\"\"\"code_dependents - Wer nutzt diese Klasse? (incoming) - Wichtigste Funktion!\"\"\"\n\nfrom db import execute_query\n\n\ndef register_dependents_tool(mcp):\n \"\"\"Registriert code_dependents Tool.\"\"\"\n\n @mcp.tool()\n def code_dependents(\n fqcn: str,\n dependency_type: str = None,\n ) -> dict:\n \"\"\"\n Zeigt wer diese Klasse nutzt (incoming - Impact-Analyse vor Aenderungen).\n\n Args:\n fqcn: Vollstaendiger Klassenname (z.B. Controller\\\\HomeController)\n dependency_type: Filter nach Typ: extends, implements, constructor, use, trait (optional)\n\n Returns:\n Dict mit dependents: [{file_id, file_name, namespace, dependency_type}]\n \"\"\"\n # SQL exakt aus PHP CodeAnalysisRepository::findDependents() (Zeile 290-311)\n sql = \"\"\"\n SELECT ca.id as file_id, ca.file_name, ca.file_path, ca.namespace, cd.dependency_type\n FROM code_dependencies cd\n JOIN code_analysis ca ON cd.analysis_id = ca.id\n WHERE cd.target_fqcn = %s\n \"\"\"\n params = [fqcn]\n\n if dependency_type:\n sql += \" AND cd.dependency_type = %s\"\n params.append(dependency_type)\n\n sql += \" ORDER BY ca.file_name\"\n\n dependents = execute_query(sql, tuple(params))\n\n return {\n \"fqcn\": fqcn,\n \"dependents\": dependents,\n \"count\": len(dependents),\n }\n"
}
}
{
"tool_response": {
"type": "update",
"filePath": "\/var\/www\/mcp-servers\/mcp_code\/tools\/dependents.py",
"content": "\"\"\"code_dependents - Wer nutzt diese Klasse? (incoming) - Wichtigste Funktion!\"\"\"\n\nfrom db import execute_query\n\n\ndef register_dependents_tool(mcp):\n \"\"\"Registriert code_dependents Tool.\"\"\"\n\n @mcp.tool()\n def code_dependents(\n fqcn: str,\n dependency_type: str = None,\n ) -> dict:\n \"\"\"\n Zeigt wer diese Klasse nutzt (incoming - Impact-Analyse vor Aenderungen).\n\n Args:\n fqcn: Vollstaendiger Klassenname (z.B. Controller\\\\HomeController)\n dependency_type: Filter nach Typ: extends, implements, constructor, use, trait (optional)\n\n Returns:\n Dict mit dependents: [{file_id, file_name, namespace, dependency_type}]\n \"\"\"\n # SQL exakt aus PHP CodeAnalysisRepository::findDependents() (Zeile 290-311)\n sql = \"\"\"\n SELECT ca.id as file_id, ca.file_name, ca.file_path, ca.namespace, cd.dependency_type\n FROM code_dependencies cd\n JOIN code_analysis ca ON cd.analysis_id = ca.id\n WHERE cd.target_fqcn = %s\n \"\"\"\n params = [fqcn]\n\n if dependency_type:\n sql += \" AND cd.dependency_type = %s\"\n params.append(dependency_type)\n\n sql += \" ORDER BY ca.file_name\"\n\n dependents = execute_query(sql, tuple(params))\n\n return {\n \"fqcn\": fqcn,\n \"dependents\": dependents,\n \"count\": len(dependents),\n }\n",
"structuredPatch": [
{
"oldStart": 1,
"oldLines": 7,
"newStart": 1,
"newLines": 5,
"lines": [
" \"\"\"code_dependents - Wer nutzt diese Klasse? (incoming) - Wichtigste Funktion!\"\"\"",
"-import sys",
" ",
"-sys.path.insert(0, \"\/var\/www\/mcp-servers\/mcp_code\")",
" from db import execute_query",
" ",
" "
]
},
{
"oldStart": 14,
"oldLines": 10,
"newStart": 12,
"newLines": 10,
"lines": [
" dependency_type: str = None,",
" ) -> dict:",
" \"\"\"",
"- Zeigt wer diese Klasse nutzt (incoming - Impact-Analyse vor Änderungen).",
"+ Zeigt wer diese Klasse nutzt (incoming - Impact-Analyse vor Aenderungen).",
" ",
" Args:",
"- fqcn: Vollständiger Klassenname (z.B. Controller\\\\HomeController)",
"+ fqcn: Vollstaendiger Klassenname (z.B. Controller\\\\HomeController)",
" dependency_type: Filter nach Typ: extends, implements, constructor, use, trait (optional)",
" ",
" Returns:"
]
}
],
"originalFile": "\"\"\"code_dependents - Wer nutzt diese Klasse? (incoming) - Wichtigste Funktion!\"\"\"\nimport sys\n\nsys.path.insert(0, \"\/var\/www\/mcp-servers\/mcp_code\")\nfrom db import execute_query\n\n\ndef register_dependents_tool(mcp):\n \"\"\"Registriert code_dependents Tool.\"\"\"\n\n @mcp.tool()\n def code_dependents(\n fqcn: str,\n dependency_type: str = None,\n ) -> dict:\n \"\"\"\n Zeigt wer diese Klasse nutzt (incoming - Impact-Analyse vor Änderungen).\n\n Args:\n fqcn: Vollständiger Klassenname (z.B. Controller\\\\HomeController)\n dependency_type: Filter nach Typ: extends, implements, constructor, use, trait (optional)\n\n Returns:\n Dict mit dependents: [{file_id, file_name, namespace, dependency_type}]\n \"\"\"\n # SQL exakt aus PHP CodeAnalysisRepository::findDependents() (Zeile 290-311)\n sql = \"\"\"\n SELECT ca.id as file_id, ca.file_name, ca.file_path, ca.namespace, cd.dependency_type\n FROM code_dependencies cd\n JOIN code_analysis ca ON cd.analysis_id = ca.id\n WHERE cd.target_fqcn = %s\n \"\"\"\n params = [fqcn]\n\n if dependency_type:\n sql += \" AND cd.dependency_type = %s\"\n params.append(dependency_type)\n\n sql += \" ORDER BY ca.file_name\"\n\n dependents = execute_query(sql, tuple(params))\n\n return {\n \"fqcn\": fqcn,\n \"dependents\": dependents,\n \"count\": len(dependents),\n }\n"
}
}