diff --git a/mcp_server/tools/__init__.py b/mcp_server/tools/__init__.py index 55cd153..b9235c1 100644 --- a/mcp_server/tools/__init__.py +++ b/mcp_server/tools/__init__.py @@ -18,7 +18,6 @@ class ABCTool(ABC): class ToolRegister: _dict: dict[str, ABCTool] = {} - @classmethod def register(self, tool: ABCTool) -> ABCTool: tool_name = tool.tool().name logging.info(f"Registering tool: {tool_name}") diff --git a/mcp_server/utils/request.py b/mcp_server/utils/request.py index 6fe82a3..e5e9a32 100644 --- a/mcp_server/utils/request.py +++ b/mcp_server/utils/request.py @@ -1,20 +1,39 @@ from httpx import AsyncClient from config import GLOBAL_CONFIG import httpx +import json -def check_slce_response(response: httpx.Response) -> str: +def get_response_data(response: httpx.Response) -> dict: if response.status_code != 200: return f"response status code: {response.status_code}" data = response.json() if data["msg"] is not None and data["msg"] != "": - return f"request SafeLine API failed: {data['msg']}" + raise Exception(f"request SafeLine API failed: {data['msg']}") if data["err"] is not None and data["err"] != "": - return f"request SafeLine API failed: {data['err']}" + raise Exception(f"request SafeLine API failed: {data['err']}") + + return data['data'] + +def check_slce_response(response: httpx.Response) -> str: + try: + get_response_data(response) + except Exception as e: + return str(e) return "success" + +def check_slce_get_response(response: httpx.Response) -> str: + try: + data = get_response_data(response) + if data: + return json.dumps(data) + return "empty response data" + except Exception as e: + return str(e) + async def get_slce_api(path: str) -> str: if not path.startswith("/"): path = f"/{path}" @@ -24,7 +43,7 @@ async def get_slce_api(path: str) -> str: response = await client.get(f"{GLOBAL_CONFIG.SAFELINE_ADDRESS}{path}", headers={ "X-SLCE-API-TOKEN": f"{GLOBAL_CONFIG.SAFELINE_API_TOKEN}" }) - return check_slce_response(response) + return check_slce_get_response(response) except Exception as e: return str(e)