{
"event": "PreToolUse",
"tool_name": "mcp__mcp-tasks__tasks_create",
"tool_input": {
"title": "Code-Intelligenz: MCP-Server mcp-code erstellen",
"description": "## Ziel\nNeuer MCP-Server für Code-Analyse-Abfragen, analog zu mcp-db, mcp-tasks, mcp-docs.\n\n## Voraussetzungen\n- Code-Analyse-Daten existieren in ki_dev.code_analysis und ki_dev.code_dependencies\n- Pattern von mcp-db als Vorlage\n\n## Struktur (nach bestehendem Pattern)\n```\n\/opt\/mcp-servers\/mcp-code\/\n├── server.py # FastMCP Einstiegspunkt\n├── config.py # Konfiguration\n├── .env # DB-Credentials\n├── requirements.txt # Dependencies\n├── domain\/\n│ ├── __init__.py\n│ ├── code_contract.py # Request\/Response Contracts\n│ └── log_contract.py # Logging Contract\n├── infrastructure\/\n│ ├── __init__.py\n│ ├── db_connection.py # DB-Verbindung\n│ └── protokoll_logger.py # Logging zu mcp_log\n├── validators\/\n│ ├── __init__.py\n│ └── fqcn_validator.py # FQCN-Validierung\n└── tools\/\n ├── __init__.py\n ├── search_tool.py # code_search(query, namespace?)\n ├── class_tool.py # code_class(fqcn) - Details\n ├── dependencies_tool.py # code_dependencies(fqcn)\n ├── dependents_tool.py # code_dependents(fqcn, type?)\n ├── impact_tool.py # code_impact(fqcn)\n ├── stats_tool.py # code_stats()\n └── graph_tool.py # code_graph(fqcn?, type?)\n```\n\n## Tools-Spezifikation\n\n### code_search(query, namespace?, type?)\n- Sucht Klassen\/Interfaces\/Traits nach Name\n- Fuzzy-Match möglich\n- Returns: Liste von {fqcn, type, file_id, namespace}\n\n### code_class(fqcn)\n- Vollständige Klassendetails\n- Returns: {fqcn, type, file_path, namespace, methods, dependencies, dependents_count}\n\n### code_dependencies(fqcn, type?)\n- Was nutzt diese Klasse?\n- type: extends|implements|constructor|use|trait|all\n- Returns: Liste von {fqcn, type}\n\n### code_dependents(fqcn, type?)\n- Wer nutzt diese Klasse?\n- Returns: Liste von {fqcn, type, file_id}\n\n### code_impact(fqcn)\n- Impact-Analyse bei Änderung\n- Returns: {direct_dependents, indirect_dependents, risk_level, affected_layers}\n\n### code_stats()\n- Projekt-Statistiken\n- Returns: {classes, interfaces, traits, dependencies_by_type, top_dependencies}\n\n### code_graph(fqcn?, type?)\n- Graph-Daten für Visualisierung\n- Returns: {nodes, links, stats}\n\n## Qualitätskriterien\n- [ ] Alle Tools haben Type Hints\n- [ ] Logging zu ki_protokoll.mcp_log\n- [ ] Prepared Statements (keine SQL-Injection)\n- [ ] Max 100 Ergebnisse pro Query\n- [ ] Fehlerbehandlung mit sinnvollen Messages\n- [ ] Tests für jedes Tool\n\n## Abhängigkeiten\n- Keine (Basis für alle weiteren Tasks)",
"type": "ai_task"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"task\": {\n \"id\": 271,\n \"uuid\": \"776ac7ad-2ce3-4577-9b1c-c1c184d1b2ce\",\n \"title\": \"Code-Intelligenz: MCP-Server mcp-code erstellen\",\n \"description\": \"## Ziel\\nNeuer MCP-Server für Code-Analyse-Abfragen, analog zu mcp-db, mcp-tasks, mcp-docs.\\n\\n## Voraussetzungen\\n- Code-Analyse-Daten existieren in ki_dev.code_analysis und ki_dev.code_dependencies\\n- Pattern von mcp-db als Vorlage\\n\\n## Struktur (nach bestehendem Pattern)\\n```\\n\/opt\/mcp-servers\/mcp-code\/\\n├── server.py # FastMCP Einstiegspunkt\\n├── config.py # Konfiguration\\n├── .env # DB-Credentials\\n├── requirements.txt # Dependencies\\n├── domain\/\\n│ ├── __init__.py\\n│ ├── code_contract.py # Request\/Response Contracts\\n│ └── log_contract.py # Logging Contract\\n├── infrastructure\/\\n│ ├── __init__.py\\n│ ├── db_connection.py # DB-Verbindung\\n│ └── protokoll_logger.py # Logging zu mcp_log\\n├── validators\/\\n│ ├── __init__.py\\n│ └── fqcn_validator.py # FQCN-Validierung\\n└── tools\/\\n ├── __init__.py\\n ├── search_tool.py # code_search(query, namespace?)\\n ├── class_tool.py # code_class(fqcn) - Details\\n ├── dependencies_tool.py # code_dependencies(fqcn)\\n ├── dependents_tool.py # code_dependents(fqcn, type?)\\n ├── impact_tool.py # code_impact(fqcn)\\n ├── stats_tool.py # code_stats()\\n └── graph_tool.py # code_graph(fqcn?, type?)\\n```\\n\\n## Tools-Spezifikation\\n\\n### code_search(query, namespace?, type?)\\n- Sucht Klassen\/Interfaces\/Traits nach Name\\n- Fuzzy-Match möglich\\n- Returns: Liste von {fqcn, type, file_id, namespace}\\n\\n### code_class(fqcn)\\n- Vollständige Klassendetails\\n- Returns: {fqcn, type, file_path, namespace, methods, dependencies, dependents_count}\\n\\n### code_dependencies(fqcn, type?)\\n- Was nutzt diese Klasse?\\n- type: extends|implements|constructor|use|trait|all\\n- Returns: Liste von {fqcn, type}\\n\\n### code_dependents(fqcn, type?)\\n- Wer nutzt diese Klasse?\\n- Returns: Liste von {fqcn, type, file_id}\\n\\n### code_impact(fqcn)\\n- Impact-Analyse bei Änderung\\n- Returns: {direct_dependents, indirect_dependents, risk_level, affected_layers}\\n\\n### code_stats()\\n- Projekt-Statistiken\\n- Returns: {classes, interfaces, traits, dependencies_by_type, top_dependencies}\\n\\n### code_graph(fqcn?, type?)\\n- Graph-Daten für Visualisierung\\n- Returns: {nodes, links, stats}\\n\\n## Qualitätskriterien\\n- [ ] Alle Tools haben Type Hints\\n- [ ] Logging zu ki_protokoll.mcp_log\\n- [ ] Prepared Statements (keine SQL-Injection)\\n- [ ] Max 100 Ergebnisse pro Query\\n- [ ] Fehlerbehandlung mit sinnvollen Messages\\n- [ ] Tests für jedes Tool\\n\\n## Abhängigkeiten\\n- Keine (Basis für alle weiteren Tasks)\",\n \"type\": \"ai_task\",\n \"status\": \"pending\",\n \"created_by\": \"mcp-tasks\",\n \"created_by_type\": \"ai\",\n \"parent_task_id\": null,\n \"due_date\": null,\n \"created_at\": \"2025-12-23T16:12:12.017924\",\n \"updated_at\": \"2025-12-23T16:12:12.017926\",\n \"completed_at\": null,\n \"metadata\": {}\n },\n \"message\": \"Task #271 created\"\n}"
}
]
}