Coverage for src/quickmcp/factory/__init__.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.10.4, created at 2025-08-20 20:56 +0200

1""" 

2QuickMCP Factory - Automatically generate MCP servers from Python code. 

3 

4This package provides a refactored, modular architecture for creating MCP servers 

5from existing Python code with comprehensive dependency analysis, safe type conversion, 

6and flexible configuration options. 

7 

8Key Components: 

9- MCPFactory: Core factory class for creating servers 

10- ImportAnalyzer: Dependency analysis with required vs optional detection  

11- TypeConverter: Safe type conversion with validation 

12- FactoryConfig: Flexible configuration system 

13- Error handling: Comprehensive error types with detailed messages 

14 

15Example Usage: 

16 ```python 

17 from quickmcp.factory import create_mcp_from_module, FactoryConfig 

18  

19 # Simple usage 

20 server = create_mcp_from_module("my_utils.py") 

21  

22 # With configuration 

23 config = FactoryConfig(strict_type_conversion=True) 

24 server = create_mcp_from_module("my_utils.py", config=config) 

25  

26 # Check dependencies first 

27 from quickmcp.factory import print_dependency_report 

28 print_dependency_report("my_utils.py") 

29 ``` 

30""" 

31 

32# Core classes 

33from .core import MCPFactory, ModuleLoader, FunctionExtractor 

34from .config import FactoryConfig, DEFAULT_CONFIG, create_safe_config, create_development_config, create_permissive_config 

35 

36# Import analysis 

37from .import_analyzer import ImportAnalyzer, MissingDependency 

38 

39# Error handling 

40from .errors import ( 

41 FactoryError, MissingDependencyError, ModuleLoadError, FunctionExtractionError, 

42 ToolRegistrationError, TypeConversionError, CodeExecutionError, SafetyError, 

43 handle_factory_error, log_factory_error 

44) 

45 

46# Type conversion 

47from .type_conversion import TypeConverter 

48 

49# Tool wrappers 

50from .wrappers import ToolWrapper, SyncToolWrapper, AsyncToolWrapper, MethodToolWrapper, ToolWrapperFactory, create_tool_wrapper 

51 

52# Utility functions 

53from .utils import ( 

54 create_mcp_from_module, create_mcp_from_object, 

55 analyze_dependencies, check_dependencies, print_dependency_report, get_install_command, 

56 validate_factory_setup, mcp_tool, 

57 create_factory_for_development, create_safe_factory, create_factory_with_config 

58) 

59 

60# Version information 

61__version__ = "2.0.0" 

62__author__ = "QuickMCP Team" 

63 

64# Public API 

65__all__ = [ 

66 # Core classes 

67 "MCPFactory", "Factory", "ModuleLoader", "FunctionExtractor", 

68 

69 # Configuration 

70 "FactoryConfig", "DEFAULT_CONFIG", 

71 "create_safe_config", "create_development_config", "create_permissive_config", 

72 

73 # Import analysis 

74 "ImportAnalyzer", "MissingDependency", 

75 

76 # Errors 

77 "FactoryError", "MissingDependencyError", "ModuleLoadError", "FunctionExtractionError", 

78 "ToolRegistrationError", "TypeConversionError", "CodeExecutionError", "SafetyError", 

79 "handle_factory_error", "log_factory_error", 

80 

81 # Type conversion  

82 "TypeConverter", 

83 

84 # Tool wrappers 

85 "ToolWrapper", "SyncToolWrapper", "AsyncToolWrapper", "MethodToolWrapper", 

86 "ToolWrapperFactory", "create_tool_wrapper", 

87 

88 # Convenience functions 

89 "create_mcp_from_module", "create_mcp_from_object", 

90 "analyze_dependencies", "check_dependencies", "print_dependency_report", "get_install_command", 

91 "validate_factory_setup", "mcp_tool", 

92 "create_factory_for_development", "create_safe_factory", "create_factory_with_config", 

93] 

94 

95# Main entry points (for easy importing) 

96Factory = MCPFactory # Alias for compatibility