| 105 | self._send({"jsonrpc": "2.0", "method": method, "params": params or {}}) |
| 106 | |
| 107 | def initialize(self, timeout=60): |
| 108 | resp = self.request("initialize", { |
| 109 | "protocolVersion": "2024-11-05", "capabilities": {}, |
| 110 | "clientInfo": {"name": "windows-red-test", "version": "1.0"}}, timeout) |
| 111 | if "error" in resp: |
| 112 | raise McpError("initialize error: %r" % resp["error"]) |
| 113 | try: |
| 114 | self.notify("notifications/initialized") |
| 115 | except Exception: |
| 116 | pass |
| 117 | return resp |
| 118 | |
| 119 | def tools_list(self, timeout=60): |
| 120 | resp = self.request("tools/list", {}, timeout=timeout) |