{
"event": "PostToolUse",
"tool_name": "Read",
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/mcp-servers\/mcp_code\/tools\/dependencies.py",
"content": "\"\"\"code_dependencies - Was nutzt diese Klasse? (outgoing)\"\"\"\nimport json\nimport sys\n\nsys.path.insert(0, \"\/var\/www\/mcp-servers\/mcp_code\")\nfrom db import execute_query, execute_single\n\n\ndef register_dependencies_tool(mcp):\n \"\"\"Registriert code_dependencies Tool.\"\"\"\n\n @mcp.tool()\n def code_dependencies(\n fqcn: str,\n dependency_type: str = None,\n ) -> dict:\n \"\"\"\n Zeigt Dependencies einer Klasse (outgoing - was nutzt diese Klasse).\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 dependencies: [{target_fqcn, dependency_type}]\n \"\"\"\n # FQCN in Namespace und Klassennamen aufteilen\n parts = fqcn.rsplit(\"\\\\\", 1)\n if len(parts) == 2:\n namespace, class_name = parts\n else:\n namespace = None\n class_name = fqcn\n\n # analysis_id finden\n if namespace:\n sql = \"SELECT id FROM code_analysis WHERE namespace = %s AND classes LIKE %s LIMIT 1\"\n params = (namespace, f'%\"{class_name}\"%')\n else:\n sql = \"SELECT id FROM code_analysis WHERE namespace IS NULL AND classes LIKE %s LIMIT 1\"\n params = (f'%\"{class_name}\"%',)\n\n row = execute_single(sql, params)\n\n if not row:\n return {\"error\": f\"Klasse nicht gefunden: {fqcn}\", \"dependencies\": []}\n\n # Dependencies laden - SQL aus PHP CodeAnalysisRepository::getDependencies() (Zeile 318-329)\n dep_sql = \"\"\"\n SELECT dependency_type, target_fqcn\n FROM code_dependencies\n WHERE analysis_id = %s\n \"\"\"\n dep_params = [row[\"id\"]]\n\n if dependency_type:\n dep_sql += \" AND dependency_type = %s\"\n dep_params.append(dependency_type)\n\n dep_sql += \" ORDER BY dependency_type, target_fqcn\"\n\n dependencies = execute_query(dep_sql, tuple(dep_params))\n\n return {\n \"fqcn\": fqcn,\n \"dependencies\": dependencies,\n \"count\": len(dependencies),\n }\n",
"numLines": 69,
"startLine": 1,
"totalLines": 69
}
}
}