Protokoll #15933

ID15933
Zeitstempel2025-12-25 16:57:58.120512
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens474 (Input: 37, Output: 437)
Dauer103 ms
Request-Zeit2025-12-25 16:57:58.120512
Response-Zeit2025-12-25 16:57:58.223141

Request

{
    "event": "PreToolUse",
    "tool_name": "Read",
    "tool_input": {
        "file_path": "\/var\/www\/mcp-servers\/mcp-contracts\/tools\/contract_tools.py",
        "limit": 50
    }
}

Response

{
    "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
        }
    }
}
← Vorheriger Zur Liste Nächster →