dependencies.py
- Pfad:
/var/www/mcp-servers/mcp-code/tools/dependencies.py - Namespace: -
- Zeilen: 66 | Größe: 2,112 Bytes
- Geändert: 2025-12-28 13:03:56 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 100
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Dependencies 2
- use db.execute_query
- use db.execute_single
Funktionen 1
-
register_dependencies_tool()Zeile 6
Code
"""code_dependencies - Was nutzt diese Klasse? (outgoing)"""
from db import execute_query, execute_single
def register_dependencies_tool(mcp):
"""Registriert code_dependencies Tool."""
@mcp.tool()
def code_dependencies(
fqcn: str,
dependency_type: str = None,
) -> dict:
"""
Zeigt Dependencies einer Klasse (outgoing - was nutzt diese Klasse).
Args:
fqcn: Vollstaendiger Klassenname (z.B. Controller\\HomeController)
dependency_type: Filter nach Typ: extends, implements, constructor, use, trait (optional)
Returns:
Dict mit dependencies: [{target_fqcn, dependency_type}]
"""
# FQCN in Namespace und Klassennamen aufteilen
parts = fqcn.rsplit("\\", 1)
if len(parts) == 2:
namespace, class_name = parts
else:
namespace = None
class_name = fqcn
# analysis_id finden
if namespace:
sql = "SELECT id FROM code_analysis WHERE namespace = %s AND classes LIKE %s LIMIT 1"
params = (namespace, f'%"{class_name}"%')
else:
sql = "SELECT id FROM code_analysis WHERE namespace IS NULL AND classes LIKE %s LIMIT 1"
params = (f'%"{class_name}"%',)
row = execute_single(sql, params)
if not row:
return {"error": f"Klasse nicht gefunden: {fqcn}", "dependencies": []}
# Dependencies laden - SQL aus PHP CodeAnalysisRepository::getDependencies() (Zeile 318-329)
dep_sql = """
SELECT dependency_type, target_fqcn
FROM code_dependencies
WHERE analysis_id = %s
"""
dep_params = [row["id"]]
if dependency_type:
dep_sql += " AND dependency_type = %s"
dep_params.append(dependency_type)
dep_sql += " ORDER BY dependency_type, target_fqcn"
dependencies = execute_query(dep_sql, tuple(dep_params))
return {
"fqcn": fqcn,
"dependencies": dependencies,
"count": len(dependencies),
}