MCP Development Framework

{ "sourceFile": "mcp_simple_tool/tools/loader.py", "activeCommit": 0, "commits": [ { "activePatchIndex": 3, "patches": [ { "date": 1741333350811, "content": "Index: \n===================================================================\n--- \n+++ \n" }, { "date": 1741333377660, "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,4 +1,12 @@\n+'''\n+Author: 刘彦志 yanzhiliu@trip.com\n+Date: 2025-03-07 15:42:27\n+LastEditors: 刘彦志 yanzhiliu@trip.com\n+LastEditTime: 2025-03-07 15:42:56\n+FilePath: /mcp-development-framework/mcp_simple_tool/tools/loader.py\n+Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n+'''\n \"\"\"\n 工具加载器模块,用于自动加载所有已注册的工具\n \"\"\"\n import importlib\n" }, { "date": 1741335072941, "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,9 +1,9 @@\n '''\n Author: 刘彦志 yanzhiliu@trip.com\n Date: 2025-03-07 15:42:27\n LastEditors: 刘彦志 yanzhiliu@trip.com\n-LastEditTime: 2025-03-07 15:42:56\n+LastEditTime: 2025-03-07 16:11:12\n FilePath: /mcp-development-framework/mcp_simple_tool/tools/loader.py\n Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n '''\n \"\"\"\n" }, { "date": 1741335095758, "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,9 +1,9 @@\n '''\n Author: 刘彦志 yanzhiliu@trip.com\n Date: 2025-03-07 15:42:27\n LastEditors: 刘彦志 yanzhiliu@trip.com\n-LastEditTime: 2025-03-07 16:11:12\n+LastEditTime: 2025-03-07 16:11:35\n FilePath: /mcp-development-framework/mcp_simple_tool/tools/loader.py\n Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n '''\n \"\"\"\n" } ], "date": 1741333350811, "name": "Commit-0", "content": "\"\"\"\n工具加载器模块,用于自动加载所有已注册的工具\n\"\"\"\nimport importlib\nimport pkgutil\nimport inspect\nimport os\nimport sys\nfrom typing import List, Type\nfrom . import BaseTool, ToolRegistry\n\ndef load_tools() -> List[Type[BaseTool]]:\n \"\"\"\n 自动加载tools目录下的所有工具模块\n \n Returns:\n List[Type[BaseTool]]: 已加载的工具类列表\n \"\"\"\n # 获取当前模块的路径\n package_path = os.path.dirname(__file__)\n \n # 获取所有子模块\n tool_modules = []\n for _, name, is_pkg in pkgutil.iter_modules([package_path]):\n # 跳过__init__.py和loader.py\n if name in ['__init__', 'loader']:\n continue\n \n # 导入模块\n module_name = f\"{__package__}.{name}\"\n try:\n module = importlib.import_module(module_name)\n tool_modules.append(module)\n except ImportError as e:\n print(f\"Warning: Failed to import module {module_name}: {e}\")\n \n # 收集所有已注册的工具类\n tools = list(ToolRegistry._tools.values())\n \n # 返回工具类列表\n return tools\n\ndef get_tool_instances() -> dict:\n \"\"\"\n 创建所有工具类的实例\n \n Returns:\n dict: 工具名称到工具实例的映射\n \"\"\"\n tools = load_tools()\n tool_instances = {}\n \n for tool_class in tools:\n try:\n tool_instance = tool_class()\n tool_instances[tool_class.name] = tool_instance\n except Exception as e:\n print(f\"Warning: Failed to instantiate tool {tool_class.name}: {e}\")\n \n return tool_instances " } ] }