{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/mcp-servers\/mcp-contracts\/tools\/contract_tools.py",
"limit": 50
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/mcp-servers\/mcp-contracts\/tools\/contract_tools.py",
"content": "\"\"\"Contract Tools für MCP-Contracts Server - Refactored\"\"\"\nimport sys\nimport time\nimport json\nfrom typing import Optional\n\nsys.path.insert(0, \"\/opt\/mcp-servers\/mcp-contracts\")\n\nfrom domain.contracts import Contract, ContractStatus\nfrom infrastructure.contract_repository import ContractRepository\n\nfrom contract_tools.constants import (\n DEFAULT_VERSION,\n DEFAULT_STATUS,\n DEFAULT_CREATED_BY,\n DEFAULT_CHANGED_BY,\n DEFAULT_TRIGGERED_BY,\n DEFAULT_LIMIT,\n DEFAULT_VIOLATIONS_LIMIT,\n DEFAULT_VALIDATIONS_LIMIT,\n VALID_STATUSES,\n)\nfrom contract_tools.contract_parser import ContractParser\nfrom contract_tools.contract_validator import ContractValidatorService\nfrom contract_tools.contract_reporter import ContractReporter\n\n\ndef register_contract_tools(mcp):\n \"\"\"Registriert alle Contract-Tools\"\"\"\n\n repo = ContractRepository()\n parser = ContractParser()\n validator_service = ContractValidatorService(repo)\n reporter = ContractReporter()\n\n # ==================== contracts_list ====================\n @mcp.tool()\n def contracts_list(\n status: Optional[str] = None,\n search: Optional[str] = None,\n compact: bool = True,\n limit: int = DEFAULT_LIMIT,\n ) -> dict:\n \"\"\"\n Listet alle Contracts aus der Datenbank.\n\n Args:\n status: Filter nach Status (draft, active, deprecated)\n search: Volltextsuche in Name\/Scope\n compact: True = nur id\/name\/version\/status (Token-sparend)",
"numLines": 50,
"startLine": 1,
"totalLines": 407
}
}
}