Skip to main content
Glama
CHANGELOG.md61.2 kB
# Changelog (Auto Generated by Claude Code with GLM model) <details> <summary>Click to expand v1.13.12 details</summary> ## [1.13.12] - 2025-12-23 ### Fixed - **Icon Fetch Timeout Issue**: Added error handling for FastMCP icon initialization to prevent server startup failures - Implemented try-except block to gracefully fallback when icon URL fetch times out - Ensures server can start successfully even with network connectivity issues - Maintains full functionality regardless of icon loading status ### Improved - **MCP Instructions Clarity**: Enhanced server instructions for better LLM understanding - Simplified and optimized instructions text for clearer context - Emphasized do-file as the minimum operation unit - Clarified session management behavior (no session config) </details> <details> <summary>Click to expand v1.13.11 details</summary> ## [1.13.11] - 2025-12-17 ### Fixed - **Critical macOS Compatibility Issue**: Resolved MCP server startup failures for macOS users - Fixed resource decorator parameter mismatch by updating URI from `help://stata/{cmd}` to `help://stata/{cmd}?is_save={is_save}` - Resolved ValueError that prevented server initialization due to function signature mismatch - Restored full functionality for macOS users upgrading from v1.13.9 to v1.13.10 - **ADO Package Installation Logic**: Improved platform-specific package management reliability - Replaced problematic try-except block with clean if-else platform separation - Removed complex exception handling that could cause silent failures or inconsistent error messages - Ensured stable behavior across Unix (macOS/Linux) and Windows platforms ### Improved - **Cross-Platform Path Handling**: Enhanced file path consistency across operating systems - Replaced `str(path)` with `path.as_posix()` in functions returning file paths - Updated `results_doc_path`, `write_dofile`, and `append_dofile` functions for POSIX-style path consistency - Improved reliability of file operations across different platforms - **Code Organization**: Better structural organization for maintainability - Moved help class initialization inside IS_UNIX condition block for proper scoping - Removed unnecessary `strict_mode` parameter from `write_dofile` function - Enhanced code clarity and reduced potential configuration conflicts ### Notes - This release focuses on fixing critical compatibility issues introduced in v1.13.10 - All macOS users are strongly recommended to upgrade from v1.13.9 or earlier to this version - Windows users continue to benefit from the package installation improvements introduced in v1.13.10 </details> <details> <summary>Click to expand v1.13.10 details</summary> ## [1.13.10] - 2025-12-17 ### Added - **Help Function Enhancement**: Added `is_save` parameter to help function for flexible help content management - New `is_save: bool = True` parameter allows users to control whether help content is saved to files - Help content is now automatically saved to `tmp_base_path / f"help__{cmd}.txt"` when `is_save=True` - Enhanced user experience with optional help content persistence for reference - **Windows Platform Support for ADO Package Installation**: Enabled cross-platform Stata package management - Moved `ado_package_install` function from Unix-only condition block to all platforms - Windows users can now install Stata packages from SSC, GitHub, and net sources - Added Windows-specific error handling with fallback do-file execution for improved reliability - Updated `__all__` exports to include `ado_package_install` for all platform users - Enhanced return type annotation for better IDE support and code clarity ### Changed - **Code Simplification**: Streamlined `stata_do` function log handling logic - Simplified conditional log content processing with ternary operator - Improved code readability without affecting business logic - Maintained identical functionality while reducing code complexity ### Technical - **Cross-Platform Compatibility**: Enhanced Windows platform support while maintaining Unix/Linux functionality - **Code Quality**: Improved function parameter design with better type annotations and documentation - **User Experience**: Expanded feature availability to all supported platforms regardless of operating system </details> <details> <summary>Click to expand v1.13.9 details</summary> ## [1.13.9] - 2025-12-13 ### Changed - **MCP Server Initialization**: Simplified MCP server initialization and dependency management - Adjusted MCP version requirement from >=1.20.0 to >=1.16.0 for better compatibility - Removed version compatibility checks and complex error handling code - Cleaned up commented dependencies in pyproject.toml for cleaner configuration - Simplified FastMCP initialization with fixed icon configuration ### Technical - **Dependency Management**: Streamlined MCP version requirements and compatibility handling - **Code Simplification**: Removed 53 lines of complex version checking and error handling code - **Initialization Performance**: Enhanced server startup performance through simplified initialization logic </details> <details> <summary>Click to expand v1.13.8 details</summary> ## [1.13.8] - 2025-12-06 ### Changed - **Agent Architecture Modernization**: Complete refactoring of agent mode with modern framework adoption - Implemented new REPLAgent using agents.as framework replacing deprecated LangChain-based implementation - Enhanced agent performance and reliability through modern agents.as integration - Updated CLI agent mode to leverage new REPLAgent for improved user experience - Removed 396 lines of deprecated code from langchain-based mode module - **Code Quality Enhancement**: Significant codebase cleanup and modernization - Removed deprecated langchain-based mode module including agent, prompt generator components - Eliminated legacy PMP (Prompt Management Package) system for streamlined architecture - Improved maintainability through removal of obsolete code patterns and dependencies - Enhanced code organization with modern agent framework adoption ### Technical - **Framework Migration**: Transitioned from LangChain to agents.as framework for improved agent capabilities - **Performance**: Enhanced agent execution efficiency and resource utilization - **Maintainability**: Simplified codebase architecture with modern framework patterns - **Reliability**: Improved agent mode stability through contemporary framework adoption </details> <details> <summary>Click to expand v1.13.7 details</summary> ## [1.13.7] - 2025-12-05 ### Changed - **System Detection Optimization**: Enhanced system detection logic with IS_UNIX variable - Added IS_UNIX variable to replace repetitive `SYSTEM_OS.lower() != "windows"` checks - Optimized 4 conditional statements across the codebase for better performance - Improved code readability with simplified conditional logic - Enhanced maintainability with centralized system detection - **Module Interface Enhancement**: Added explicit __all__ list for better module exports - Introduced comprehensive __all__ list defining public module interface - Categorized exports: Core Functions (get_data_info, stata_do, write_dofile, append_dofile) - Categorized exports: Utilities (mk_dir, load_figure, read_file) - Conditional exports for Unix-specific functions (help, ado_package_install) - Improved IDE support and module discoverability ### Technical - **Performance**: Reduced repetitive string operations with centralized system detection - **Code Quality**: Enhanced module organization with explicit public interface definition - **Maintainability**: Centralized system detection logic easier to modify and maintain - **Developer Experience**: Better IDE autocomplete and module navigation with explicit exports </details> <details> <summary>Click to expand v1.13.6 details</summary> ## [1.13.6] - 2025-12-03 ### Fixed - **Windows Compatibility Issues**: Critical fixes for Windows user experience and cross-platform support - Fixed environment variable name from `STATA-MCP-CLIENT` to `STATA_MCP_CLIENT` for proper Windows environment access - Disabled help functionality on Windows systems to prevent system crashes during help command execution - Disabled ado package installation on Windows systems to ensure stable operation - Enhanced cross-platform reliability with Windows-specific conditional code paths ### Changed - **Function Parameters**: Added `strict_mode` parameter to `write_dofile` function for enhanced control - **Code Quality**: Fixed grammar typos and improved documentation clarity throughout code comments - **Platform Detection**: Improved operating system detection with better case-insensitive handling ### Technical - **Cross-Platform Architecture**: Enhanced Windows support while maintaining functionality for macOS and Linux - **Error Prevention**: Proactive disabling of problematic features on Windows to prevent crashes - **Documentation**: Improved code comments and parameter documentation for better maintainability </details> <details> <summary>Click to expand v1.13.5 details</summary> ## [1.13.5] - 2025-11-26 ### Changed - **Logging System**: Enhanced logging infrastructure with rotating file handler - Replaced FileHandler with RotatingFileHandler for better log management - Added 10MB file size limit with 5 backup files for automatic log rotation - Improved log file handling and disk space management - **Language Detection Optimization**: Improved prompt language detection and configuration - Moved language detection logic from mcp_servers.py to utils/Prompt/__init__.py - Added STATA_MCP_PROMPT_LANGUAGE environment variable for manual language override - Enhanced system language detection with better fallback mechanisms - Improved code organization with centralized language management ### Technical - **Code Quality**: Enhanced import organization and removed unused locale import - **Configuration**: Improved environment variable handling for better flexibility - **Reliability**: More robust logging system with automatic rotation and backup management - **Maintainability**: Better separation of concerns between logging and language detection </details> <details> <summary>Click to expand v1.13.4 details</summary> ## [1.13.4] - 2025-11-25 ### Fixed - **Log File Path Resolution**: Fixed FileNotFoundError when running stata-mcp from directories without "~" subdirectory - **Path Configuration**: Use Path.home() for log file path instead of hardcoded "~/.statamcp.log" - **User Experience**: Eliminates need to manually create "~" folder in current directory </details> <details> <summary>Click to expand v1.13.3 details</summary> ## [1.13.3] - 2025-11-24 ### Added - **JSON Export Feature**: Enhanced `summary()` method with `saved_path` parameter for exporting data summaries to JSON files - **UTF-8 Encoding Support**: JSON files are saved with proper UTF-8 encoding for international character support - **File Path Tracking**: Summary results now include the saved file path when export is used - **New `save_to_json` Static Method**: Dedicated method for reliable JSON file writing with error handling - **Comprehensive Logging**: Added detailed logging throughout the `get_data_info` function for better debugging and monitoring - **Enhanced Documentation**: Updated function docstrings with complete output examples and usage patterns ### Changed - **Core Function Refactoring**: Complete restructure of `get_data_info` function implementation for better maintainability and performance - **Improved Data Processing**: Optimized data processing pipeline with better separation of concerns - **Numerical Precision**: Standardized to 3-decimal precision in summary outputs for consistency - **Error Handling**: Enhanced error handling for file operations with proper boolean return status - **Documentation Examples**: Added real data format examples in function documentation ### Technical Improvements - **Code Organization**: Better separation of concerns with dedicated helper methods - **Performance Enhancement**: Optimized data processing pipeline for improved speed - **Path Validation**: Proper handling of both string and PathLike objects for file paths - **Maintainability**: Cleaner code structure for easier future development ### Backward Compatibility - ✅ All changes maintain full backward compatibility - ✅ Existing code will continue to work without modifications - ✅ New features are opt-in through additional parameters </details> <details> <summary>Click to expand v1.13.2 details</summary> ## [1.13.2] - 2025-11-23 ### Added - **Logging Control**: Added controller for logging system - Environment variable control for flexible logging configuration - STATA_MCP_LOGGING_ON for complete logging enable/disable control - Separate handlers for console and file output with independent control - Improved user experience with customizable logging behavior </details> <details> <summary>Click to expand v1.13.1 details</summary> ## [1.13.1] - 2025-11-22 ### Added - **Comprehensive Logging System**: Implemented complete logging infrastructure throughout MCP server - Added comprehensive logging system to MCP server for enhanced debugging and monitoring - Added logging to all 8 core tool functions for better operation tracking - Improved StataDo constructor documentation for clearer usage guidance ### Changed - **Enhanced System Observability**: Improved debugging capabilities with comprehensive logging coverage - Better visibility into MCP server operations and tool function executions - Enhanced error tracking and performance monitoring capabilities - Improved developer experience with detailed operation logs ### Technical - **Logging Infrastructure**: Complete logging system integration with configurable log levels - **Documentation**: Enhanced constructor documentation for better developer understanding - **Debugging**: Improved troubleshooting capabilities with comprehensive operation logging </details> <details> <summary>Click to expand v1.13.0 details</summary> ## [1.13.0] - 2025-11-20 ### Added - **Agent-as-Tools Framework**: Complete framework for converting agents to MCP tools with seamless integration - New comprehensive agent conversion system for enhanced workflow automation - Flexible error handling and type safety throughout the agent-as-tools ecosystem - Enhanced module exports for improved discoverability and integration - **ADO Package Installation Framework**: Comprehensive Stata package management system - Complete framework for installing Stata packages from multiple sources - SSC (Statistical Software Components) archive integration with enhanced search capabilities - Direct GitHub repository installation support for custom packages - Net install functionality for additional package distribution methods - Extensible architecture supporting future package sources and installation methods - **Multi-Provider API System**: Enhanced model provider flexibility and management - New Provider class for flexible API provider management in set_model functionality - Support for multiple LLM providers with unified configuration interface - Improved API switching and configuration management for different provider environments ### Security - **Shell-Escape Protection**: Critical security enhancement to prevent OS command execution - Added validation step to block Stata shell-escape directives (`!cmd`, `shell cmd`) - Comprehensive input validation before do-file execution to prevent malicious commands - Enhanced security posture for production environments (Contributed by @123mutouren321414) - Fixes security issue #20 with robust protection mechanisms ### Changed - **Pathlib Migration**: Complete migration from os.path to pathlib.Path for enhanced cross-platform support - System-wide replacement of os.path operations with modern pathlib.Path interface - Improved cross-platform compatibility and path handling reliability - Enhanced type safety and better IDE support with path operations - More robust and maintainable path manipulation throughout the codebase - **Enhanced Error Handling**: Comprehensive type safety improvements and parameter design enhancements - Fixed get_data_info tool write type errors for improved data processing reliability - Resolved get_exp_cwd to properly return Path object instead of string - Fixed dict -> str function return type errors throughout the application - Updated default args in get_data_info tool for better parameter design - Improved type annotations and validation across core functionality - **Code Architecture Enhancements**: Improved maintainability and performance optimizations - Refactored help functionality into dedicated StataHelp class for better modularity - Enhanced log width issue resolution through terminal size environment configuration - Improved overall code organization with better separation of concerns - Enhanced performance and reliability through systematic code improvements ### Fixed - **Type Safety Issues**: Resolved multiple type-related errors for improved application stability - Fixed function return type errors that could cause runtime issues - Enhanced parameter validation and type checking across core tools - Improved error handling for edge cases and invalid input scenarios - Better integration between different components with consistent type handling - **Terminal and Logging Issues**: Resolved display and logging problems for better user experience - Fixed log width issues by properly setting terminal size environment variables - Improved overall terminal output formatting and readability - Enhanced debugging capabilities with better error message formatting ### Technical - **Code Quality**: Comprehensive improvements to code maintainability and extensibility - Enhanced type annotations throughout the application for better IDE support - Improved error handling patterns with comprehensive exception management - Better separation of concerns with modular architecture enhancements - Enhanced documentation and code examples for improved developer experience - **Performance**: Optimized application performance through systematic improvements - Faster startup times with optimized module loading and initialization - Improved memory usage patterns through better resource management - Enhanced overall application responsiveness and stability - Better integration efficiency between different system components - **Security**: Strengthened security posture with comprehensive protection mechanisms - Enhanced input validation and sanitization throughout the application - Improved protection against common web and CLI security vulnerabilities - Better error handling that prevents information leakage in production environments - Comprehensive security review and hardening of core functionality </details> <details> <summary>Click to expand v1.12.1 details</summary> ## [1.12.1] - 2025-11-02 ### Added - **Linux Platform Support**: Complete Linux platform Stata detection with intelligent directory search - New `FinderLinux` implementation with configurable search paths for Linux systems - Enhanced directory search in `/usr/local/bin` with automatic detection of Stata-related directories - Support for custom Stata installation locations through flexible path configuration - Full integration with existing StataFinder architecture maintaining cross-platform consistency - **Enhanced StataEditionConfig**: Advanced comparison logic with comprehensive priority system - Priority-based sorting system (mp > se > be > ic > default) with configurable edition preferences - Support for float version comparison (e.g., 19.5 > 19) within same edition type - Automatic path detection and version parsing from executable names and paths - Comprehensive docstring with practical examples for easy integration - Fallback priority handling for unknown editions with graceful degradation - **Project Organization Improvements**: Enhanced directory structure for better maintainability - Moved `agent_examples` directory to `source/agent_examples` for centralized documentation - Updated all documentation references to reflect new directory structure - Maintained file integrity through git rename operations preserving history - Improved project structure consistency with better separation of concerns ### Changed - **Documentation Synchronization**: Ensured consistency across multilingual documentation - Updated Chinese README news section with English version content including StataFinder updates - Added newest research section with links to reports website for better user guidance - Enhanced environment variable configuration documentation with setup examples - Maintained consistency between English and Chinese documentation for better user experience - **StataFinder Architecture**: Enhanced cross-platform support with Linux integration - Enabled Linux platform in `FINDER_MAPPING` removing "Not Support now" limitation - Improved error handling with proper exception messages for missing Stata installations - Enhanced type annotations and documentation throughout the StataFinder system - Maintained backward compatibility while adding comprehensive Linux support ### Fixed - **Documentation Consistency**: Resolved discrepancies between English and Chinese README files - Added missing StataFinder update notices with environment variable configuration guidance - Included newest research links that were present in English but missing in Chinese version - Ensured all news content is properly synchronized across supported languages - Improved documentation accuracy for better user guidance and setup experience ### Technical - **Code Quality**: Enhanced type safety and error handling throughout Linux finder implementation - **Performance**: Optimized directory search with intelligent path validation and iteration - **Compatibility**: Maintained full backward compatibility with existing StataFinder functionality - **Extensibility**: Clean architecture allows easy addition of new platforms and search strategies - **Documentation**: Comprehensive docstrings and examples for enhanced developer experience </details> <details> <summary>Click to expand v1.12.0 details</summary> ## [1.12.0] - 2025-10-31 ### Added - **Unified Priority System**: Complete StataFinder architecture overhaul with intelligent version and edition comparison - New `StataEditionConfig` class with comprehensive version extraction and sorting capabilities - Priority system: MP > SE > BE > IC > default with configurable edition preferences - Automatic version detection from file paths, directory names, and executable names - Support for floating-point versions (e.g., 19.5 > 19) and reasonable version range validation (1-30) - Magic methods for easy data access (`__str__`, `__int__`, `__float__`) and path properties - **Complete Windows Platform Support**: Full implementation of `FinderWindows` with three-layer search strategy - **Layer 1**: Standard installation path search (Program Files, Program Files (x86)) - **Layer 2**: Non-standard custom installation locations with drive scanning - **Layer 3**: Deep scan fallback for comprehensive discovery across all drives - Intelligent drive detection and depth-limited scanning for performance optimization - Skip pattern system to avoid redundant searching of standard directories in non-standard scans - **Enhanced macOS Application Detection**: Improved `FinderMacOS` with comprehensive app bundle support - `/Applications` directory scanning with version extraction from `isstata.*` files - Automatic edition detection from Stata app names (StataMP, StataSE, StataBE, StataIC) - Support for both `/Applications/Stata` unified directory and separate versioned applications - Robust executable path resolution within app bundles (`Contents/MacOS/stata-{edition}`) ### Fixed - **Critical Empty List Handling**: Prevents crashes when no Stata installations are found - Fixed `max()` calls on empty lists in both Windows and macOS finder methods - Proper empty list validation before attempting to find highest priority Stata executable - Graceful fallback behavior when search layers return no results - Enhanced error handling with meaningful exception messages - **Platform-Specific Search Optimization**: Improved search efficiency and reliability - Windows: Simple matching approach replaces overly strict regex filtering for broader compatibility - macOS: Better handling of Homebrew installations without version numbers (defaults to version 99) - Enhanced path validation and executable checking across all platforms - Improved exception handling for permission errors and inaccessible directories ### Changed - **Architecture Modernization**: Complete StataFinder system redesign for better maintainability - Abstract `FinderBase` class with comprehensive documentation and type annotations - Platform-specific implementations following consistent design patterns - Enhanced `finder.py` integration with improved error handling and exception management - Updated utility modules (`usable.py`, `installer.py`, `mcp_servers.py`) for better integration - **Enhanced Documentation and Type Safety**: Improved code quality and developer experience - Comprehensive docstrings for all new classes and methods with examples - Full type annotations throughout the StataFinder system - Detailed abstract method documentation explaining platform-specific requirements - Clear separation of concerns between different search strategies and platform implementations ### Technical - **Performance**: Three-layer search strategy balances speed with thoroughness - **Reliability**: Robust error handling prevents crashes across all search scenarios - **Compatibility**: Maintains backward compatibility while adding new functionality - **Extensibility**: Clean architecture allows easy addition of new platforms and search strategies - **Testing**: Comprehensive validation across different installation patterns and platforms </details> <details> <summary>Click to expand v1.11.1 details</summary> ## [1.11.1] - 2025-10-23 ### Fixed - **Cross-Platform Initialization Error**: Critical fix for Windows and Linux StataFinder initialization failure - Fixed AttributeError in `src/stata_mcp/core/stata/stata_finder/finder.py:43` - Updated finder initialization from `finder_mapping.get(self.current_os)()` to `_os_finders.get(self.current_os, None)` - Resolves RuntimeError on Windows and Linux systems during StataFinder initialization - Ensures consistent behavior across all supported platforms (macOS, Windows, Linux) - **Platform Compatibility**: Enhanced cross-platform stability and reliability - Proper None handling in StataFinder initialization prevents function call errors - Eliminates startup failures for Windows and Linux users - Maintains existing functionality for macOS users - Improved error prevention with defensive programming practices ### Technical - **Code Quality**: Single-line critical fix with maximum impact and minimal risk - **Testing**: Comprehensive cross-platform verification completed - **Compatibility**: 100% backward compatible with existing installations - **Stability**: Enhanced system reliability for all supported operating systems </details> <details> <summary>Click to expand v1.11.0 details</summary> ## [1.11.0] - 2025-10-20 ### Added - **Claude Code Client Mode**: Added dedicated support for Claude Code client environment - New `-c/--client` CLI option for Claude Code client mode - Automatic detection and configuration for Claude Code environment - Enhanced working directory handling for client-specific workflows - Optimized MCP server integration for Claude Code platform ### Changed - **Code Architecture**: Major refactoring to improve modularity and maintainability - Extracted MCP server initialization and tools from `__init__.py` to dedicated `mcp_servers.py` module - Updated main.py import path to use new modular structure - Streamlined package initialization with better separation of concerns - Improved code organization for enhanced development experience ### Changed - **Dependency Management**: Optimized dependency structure for cleaner installation - Removed python-dotenv from active dependencies as it's no longer required - Updated uv.lock file to reflect dependency changes - Improved CLI import structure for better performance - Enhanced version import using importlib.metadata instead of package-level import ### Changed - **CLI Enhancements**: Improved command-line interface with new client mode support - Restructured CLI imports for better loading performance - Added lazy loading patterns for non-critical components - Enhanced error handling and user feedback - Better separation between different CLI modes (agent, client, mcp) ### Technical - **Performance**: Enhanced startup performance through optimized imports and modular architecture - **Maintainability**: Improved code organization with clear separation between server initialization and package metadata - **Compatibility**: Better support for different client environments and use cases - **Dependencies**: Streamlined dependency list with removal of unnecessary python-dotenv requirement </details> <details> <summary>Click to expand v1.10.2 details</summary> ## [1.10.2] - 2025-10-17 ### Added - **AgentRunner Evaluation Method**: Complete evaluation workflow implementation in AgentRunner class - New `evaluate()` method for seamless ScoreModel integration with automatic task execution and scoring - Type conversion handling for processer data (List[Dict] to String format) for ScoreModel compatibility - Optional result display with `is_display` parameter for immediate feedback and debugging - Automatic conversation history extraction and formatting for evaluation purposes - Direct parameter passing and type-safe integration between AgentRunner and ScoreModel - **Enhanced Evaluation Integration**: Streamlined ScoreModel connection with agent execution - Automatic task execution and result processing in a single method call - Built-in error handling and validation throughout the evaluation pipeline - Comprehensive fallback mechanisms for robust evaluation operations - Simplified evaluation workflow with reduced boilerplate code ### Changed - **Developer Experience**: Improved evaluation workflow simplicity and usability - Single `evaluate()` call replaces multi-step evaluation process - Automatic handling of type conversions between AgentRunner and ScoreModel components - Optional display functionality for real-time monitoring and debugging - Enhanced error reporting and validation for evaluation scenarios - **Type Compatibility**: Enhanced data flow between evaluation components - Robust integration between different data structures (List[Dict] to String conversion) - Preserved conversation structure and context during type conversion - Maintained data integrity throughout the evaluation pipeline - Type-safe parameter handling for reliable evaluation workflows ### Technical - **Code Architecture**: Enhanced AgentRunner with complete evaluation capabilities - Clean separation between task execution and evaluation logic - Modular design allowing for easy customization and extension - Comprehensive type annotations and documentation for evaluation methods - Improved error handling and validation throughout the evaluation framework - **Backward Compatibility**: Maintained full compatibility with existing evaluation workflows - All existing AgentRunner functionality remains unchanged - New evaluate() method is additive without disrupting existing code - Seamless integration with existing ScoreModel evaluation framework - Zero impact on current evaluation processes and tools </details> <details> <summary>Click to expand v1.10.1 details</summary> ## [1.10.1] - 2025-10-16 ### Added - **AgentRunner Class**: New comprehensive agent management system for simplified LLM evaluation workflows - OpenAI-compatible API integration with support for multiple providers (OpenAI, DeepSeek, etc.) - `get_processer()` static method for automatic conversation history extraction from agent results - `get_final_result()` static method for extracting final answers from agent outputs - Built-in error handling and graceful fallback mechanisms for robust operation - Full type annotations and comprehensive documentation with practical examples - **Comprehensive Testing Framework**: Complete test suite for AgentRunner functionality validation - Mock-based testing system for reliable validation without API dependencies - Real API testing with automatic fallback to mock tests when credentials unavailable - Comprehensive error handling validation and conversation structure verification - Integrity checks for method outputs and data format validation - Complete test coverage in `tar.py` with both mock and real API scenarios - **Enhanced Documentation**: Updated evaluation guide with AgentRunner integration examples - Step-by-step AgentRunner usage instructions with practical Stata analysis examples - Complete code examples for real-world evaluation scenarios including auto dataset analysis - Batch evaluation workflows for processing multiple tasks efficiently - Custom evaluation criteria and metrics implementation examples - Environment setup guides for different API providers (OpenAI, DeepSeek) ### Changed - **Module Organization**: Enhanced evaluate module structure with better component integration - AgentRunner now properly exported in `evaluate.__init__.py` for direct imports - Cleaner module structure with improved separation of concerns - Better discoverability of evaluation components and enhanced import experience - Updated `Evaluation.md` documentation with comprehensive AgentRunner usage examples - **Developer Experience**: Streamlined evaluation workflow with simplified task execution - One-click conversation extraction and result processing through AgentRunner methods - Reduced boilerplate code for common evaluation scenarios and use cases - Better error messages and debugging information for improved development experience - Enhanced integration between agents and evaluation tools - **Evaluation Framework**: Improved evaluation workflow with better tool integration - Seamless integration between AgentRunner and existing ScoreModel functionality - Enhanced support for OpenAI Agents result processing and extraction - Better handling of complex conversation structures with multi-turn interactions - Improved role detection and content extraction for diverse agent response formats ### Fixed - **Conversation Processing**: Enhanced handling of complex conversation structures in agent outputs - Better support for multi-turn conversations with tool interactions and role switching - Enhanced role detection and content extraction from various agent response formats - More robust parsing of agent response data with improved error resilience - Better handling of edge cases in conversation structure processing - **Testing Reliability**: Enhanced test stability and comprehensive error handling - Improved mock data structure for more realistic testing scenarios - Better exception handling in test environments with detailed error reporting - More comprehensive validation of method outputs and data integrity - Enhanced test reliability through better error recovery mechanisms ### Technical - **Dependencies**: No new dependencies added for AgentRunner functionality - AgentRunner uses existing project dependencies (openai-agents, openai, langchain) - Lightweight implementation with minimal performance impact - Backward compatibility maintained for all existing features and workflows - **Code Architecture**: Enhanced evaluation module with improved component integration - Clean separation between agent execution and result processing logic - Modular design allows for easy extension and customization - Standardized evaluation criteria based on professional statistical standards - Improved error handling and fallback mechanisms throughout the framework </details> <details> <summary>Click to expand v1.10.0 details</summary> ## [1.10.0] - 2025-10-14 ### Added - **LLM Evaluation Module Framework**: Comprehensive evaluation system for Large Language Model performance assessment - New `evaluate` package with complete module structure (`src/stata_mcp/evaluate/`) - `_model.py` providing structured assessment framework and evaluation criteria - `advice.py` for evaluation advice generation and result analysis - `score_it.py` for automated LLM performance scoring and assessment - Full type annotations and comprehensive documentation for evaluation use - **ScoreModel Evaluation System**: Automated LLM performance assessment framework - Task completion accuracy evaluation based on reference answers - Response quality assessment against expected outcomes - Process analysis for LLM reasoning quality evaluation - Historical message processing for context assessment - Quantitative metrics for model comparison and benchmarking - **Structured Evaluation Framework**: Systematic approach to LLM performance evaluation - Task definition and reference answer management system - Process evaluation for analyzing LLM reasoning chains - Final answer scoring and validation mechanisms - Configurable evaluation parameters for different use cases - Extensible framework for custom evaluation criteria - **Research Assessment Tools**: Built-in evaluation capabilities for AI research workflows - Standardized evaluation methodology for reproducible research - Benchmarking framework for model performance comparison - Reference answer management for accuracy assessment - Process analysis capabilities for reasoning evaluation ### Changed - **Enhanced Research Capabilities**: Integrated LLM evaluation into existing Stata-MCP functionality - Evaluation framework works seamlessly with current research workflows - Optional enhancement for AI performance assessment without disrupting existing functionality - Flexible configuration for different evaluation scenarios and research requirements - Multi-language support for evaluation feedback and assessment results - **Documentation Updates**: Enhanced user documentation with LLM evaluation features - Updated main README with LLM evaluation module announcement - Synchronized Chinese README with new evaluation capabilities - Added Evaluation.md documentation for LLM assessment workflows - Enhanced quick start guides with evaluation setup examples ### Technical - **Code Architecture**: New evaluation module with clean separation of concerns - Modular design allows for easy extension and customization - Standardized evaluation criteria based on professional statistical standards - Configurable scoring parameters for different assessment requirements - Professional statistical standards integration for academic use - **Dependencies**: No new dependencies added for evaluation functionality - Evaluation module uses existing project dependencies - Lightweight implementation with minimal performance impact - Backward compatibility maintained for all existing features </details> <details> <summary>Click to expand v1.9.1 details</summary> ## [1.9.1] - 2025-10-12 ### Removed - **WebUI Module**: Completely removed Flask-based web interface and all related functionality - Removed Flask dependency and all web-related dependencies from `pyproject.toml` - Deleted webui module (`src/stata_mcp/webui/`) including templates, static assets, and utilities - Removed `--webui` CLI argument and related webui startup functionality - Deleted `WEBUI.md` documentation file - **Config Module**: Discontinued TOML-based configuration system - Removed config module (`src/stata_mcp/config/`) and all configuration management logic - Deleted `Configuration.md` documentation file - Removed `example.toml` configuration template - Simplified project to use environment variable-based configuration only ### Changed - **Project Structure**: Major simplification to focus on core MCP functionality - Streamlined project structure by removing 17 files and 2299 lines of code - Reduced dependency footprint for faster installation and smaller package size - Improved startup performance by eliminating complex configuration loading - Enhanced code maintainability through reduced complexity - **Dependency Management**: Optimized dependency list for lightweight installation - Removed Flask and web-related dependencies - Commented out optional jupyter-related dependencies not currently used - Maintained all core dependencies for Stata-MCP functionality - Updated `uv.lock` to reflect new dependency structure - **Configuration Simplification**: Streamlined configuration approach - Now relies solely on environment variables for configuration - Maintained dotenv loading for essential settings - Removed complex TOML parsing and validation logic - Better defaults for improved out-of-the-box experience ### Technical - **Code Quality**: Improved maintainability and focus - Reduced attack surface by removing web interface components - Fewer potential points of failure in initialization - Cleaner separation of concerns between CLI and core functionality - Better alignment with MCP protocol's primary use case - **Performance**: Enhanced startup and runtime performance - Faster initialization due to reduced module loading - Lower memory footprint from fewer loaded dependencies - Simplified error handling paths - Improved reliability through reduced complexity ### Migration Notes - **WebUI Users**: Web interface no longer available - use CLI interface instead - **Config File Users**: TOML configuration no longer supported - migrate to environment variables - **Minimal Impact**: Most users unaffected as they were already using CLI-based workflow - **Simple Migration**: Straightforward migration path for affected users </details> <details> <summary>Click to expand v1.9.0 details</summary> ## [1.9.0] - 2025-10-11 ### Added - **Agent as Tool Framework**: Revolutionary multi-agent workflow support for Stata analysis - New `StataAgent` class with comprehensive ReAct (Reasoning-Action-Observation) framework - Professional Stata Data Analysis Expert role with economic research assistant capabilities - Seamless integration as a tool within other AI agents for complex workflows - Default comprehensive instructions covering data understanding, code generation, execution, and results interpretation - Configurable tool descriptions with clear capabilities and input/output specifications - **Multi-Model Provider Support**: Enhanced compatibility with various LLM providers - Extended type hints to support `OpenAIChatCompletionsModel | Model` union types - `set_model()` utility function for easy configuration of alternative providers (DeepSeek, etc.) - Native support for OpenAI ChatCompletionsModel with fallback to generic Model interface - Improved IDE support and code completion through enhanced type annotations - **Comprehensive Documentation Suite**: Complete bilingual documentation for Agent as Tool functionality - Detailed `agent_as_tool.md` guide with practical examples and use cases - Quick start guide for basic usage and advanced configuration examples - Integration patterns with existing agent frameworks (OpenAI Agents, LangChain) - Multi-provider setup examples with DeepSeek and other OpenAI-compatible models - **Enhanced README Integration**: Improved user onboarding with Agent as Tool examples - New "Agent as Tool" section in main README with working code examples - Synchronized Chinese README with all new features and examples - Updated news sections highlighting new multi-agent capabilities - Clear navigation to detailed documentation and quick start guides ### Changed - **Agent Architecture Enhancements**: Modular and flexible agent design - Clean separation between agent logic and tool integration through `as_tool` property - Flexible MCP server configuration with environment variable support - Enhanced tracing control for performance optimization and debugging - Configurable agent behavior through custom instructions, models, and tools - **Developer Experience Improvements**: Enhanced usability and flexibility - Support for custom agent names, instructions, and tool descriptions - Adjustable `max_turns` parameter for complex analysis tasks - Configurable `DISABLE_TRACING` for performance optimization - Better error handling and connection management for MCP servers - **Type Safety and IDE Support**: Improved development experience - Enhanced type annotations throughout the agent framework - Support for union types (`OpenAIChatCompletionsModel | Model`) - Better IDE support with improved code completion and error detection - Reduced runtime errors through comprehensive type checking ### Technical - **New Dependencies**: Added `agents` library for Agent as Tool functionality - Support for OpenAI Agents framework with seamless integration - Enhanced MCP server configuration and management - Improved error handling and connection stability - **Code Organization**: Enhanced module structure for agent functionality - New `agent_as_tool` module with `StataAgent` and `set_model` utilities - Clean separation of concerns between agent logic and tool integration - Improved maintainability and extensibility for future agent features - **Configuration Flexibility**: Enhanced customization options - Environment variable support for Stata CLI configuration - Customizable agent instructions and tool descriptions - Flexible model provider configuration with easy switching between providers </details> <details> <summary>Click to expand v1.8.2 details</summary> ## [1.8.2] - 2025-10-10 ### Added - **URL-based DTA File Reading**: Implemented support for reading Stata DTA files directly from HTTP/HTTPS URLs - Added URL detection and validation in DtaDataInfo class - Implemented memory-efficient reading using BytesIO for optimal performance - Support for both `http://` and `https://` protocols with comprehensive error handling - Seamless integration with existing local file functionality - Automatic URL format validation and file extension verification ### Changed - **Enhanced DtaDataInfo Architecture**: Extended DtaDataInfo class to support both local and remote files - Unified `_read_data()` method handles both file sources without code duplication - Intelligent file path detection (URL vs local path) for appropriate processing - Streamlined DataInfoBase class by removing unnecessary abstract method `_read_data_from_url()` - Cleaner separation of concerns between local and remote operations - **Documentation Updates**: Enhanced API documentation and examples - Updated docstring examples in `__init__.py` with comprehensive output format examples - Added clear demonstration of remote data analysis capabilities - Improved error handling documentation for network operations ### Fixed - **URL Handling Conflicts**: Resolved Path object conflicts when processing URLs as file paths - Fixed URL validation to properly parse and validate HTTP/HTTPS URLs - Corrected file extension checking for remote files using URL path parsing - Improved error messages to provide clearer feedback for URL-related issues - **Network Error Handling**: Enhanced error handling for network operations - Added comprehensive timeout configurations and status code validation - Improved error reporting for network failures, invalid URLs, and file format issues - Better exception handling with informative error messages for troubleshooting ### Technical - **New Dependencies**: Added `requests` library for HTTP operations - Robust HTTP client with built-in error handling and retry mechanisms - Efficient content handling for binary DTA files with proper encoding - Support for HTTP/HTTPS protocols with TLS security - **Memory Optimization**: Implemented memory-efficient data processing - Direct loading into BytesIO eliminates temporary file overhead - Streaming content handling for large files with optimal memory usage - Zero intermediate file operations for URL-based data access </details> <details> <summary>Click to expand v1.8.1 details</summary> ## [1.8.1] - 2025-10-09 ### Fixed - **MCP Version Compatibility**: Enhanced MCP initialization logic for better version compatibility - Improved error handling for different MCP implementations (v1.16.0+) - Enhanced FastMCP initialization with fallback mechanisms - Better robustness when encountering validation errors - Streamlined version-specific initialization logic ### Changed - **Initialization Process**: Reorganized FastMCP initialization sequence - Prioritized MCP v1.16.0+ configuration with proper icon array format - Improved fallback error handling with non-config initialization - Enhanced user guidance for MCP version upgrades ### Technical - **Code Robustness**: Improved error handling and initialization reliability - **Version Support**: Better compatibility with MCP v1.16.0 and newer versions </details> <details> <summary>Click to expand v1.8.0 details</summary> ## [1.8.0] - 2025-10-09 ### Added - **Enhanced Data Info Support**: Added comprehensive multi-format data information functionality - New `CsvDataInfo` class for handling CSV file metadata and statistics - Enhanced `DtaDataInfo` class for Stata .dta file data information extraction - Improved `DataInfoBase` base class with kwargs support for extensibility - Enhanced `get_data_info` function with CSV and enhanced DTA file format support - Added save functionality with configurable output options - Implemented temporary directory management for data processing - Full type annotations and comprehensive documentation - **Enabled Data Info Tool**: Reactivated `get_data_info` functionality - Tool decorator re-enabled for production use - Support for multiple file formats: .dta, .csv, and Excel files - Improved error handling and user feedback - Enhanced data summary statistics and metadata extraction ### Changed - **MCP Version Upgrade**: Updated MCP dependency from v1.15.0 to v1.16.0 - Enhanced FastMCP initialization logic for better version compatibility - Improved error handling for different MCP implementations - Better robustness in initialization process - Streamlined dependency management ### Technical - **Code Architecture**: Improved data info module structure with base classes - **Type Safety**: Enhanced type annotations across data info functionality - **Module Organization**: Better separation of concerns in data processing modules </details> <details> <summary>Click to expand v1.7.4 details</summary> ## [1.7.4] - 2025-10-09 ### Fixed - **MCP Dependency Conflicts**: Resolved version conflicts in MCP dependency chain - Fixed compatibility issues with different MCP implementations - Enhanced system stability through streamlined dependency management - Improved error handling for dependency-related edge cases ### Technical - **Dependency Optimization**: Streamlined MCP dependencies for better stability - **Version Update**: Updated version from 1.7.3 to 1.7.4 </details> <details> <summary>Click to expand v1.7.3 details</summary> ## [1.7.3] - 2025-10-06 ### Added - **Enhanced Encoding Support**: Added configurable encoding parameters to dofile functions - `write_dofile` now supports optional `encoding` parameter (default: utf-8) - `append_dofile` enhanced with configurable encoding for read/write operations - Better support for international character sets including Chinese, Japanese, Korean - Maintains full backward compatibility with existing code ### Fixed - **Issue #18**: Resolved potential Chinese character encoding problems in dofile operations - Proactive fix for international character set support - Enables flexible encoding handling for various environments ### Technical - **Encoding Flexibility**: Improved dofile encoding handling without breaking changes - **Version Update**: Updated version from 1.7.2 to 1.7.3 </details> <details> <summary>Click to expand v1.7.2 details</summary> ## [1.7.2] - 2025-10-06 ### Added - **Agent Mode Support**: Added comprehensive agent mode functionality - New `stata-mcp --agent` command line option for interactive AI-driven analysis - `StataAgent` class with LangChain integration for AI-powered Stata operations - Support for GPT-5, DeepSeek, and other OpenAI-compatible models - ReAct (Reasoning + Acting) prompt template for enhanced AI reasoning - MultiServerMCPClient integration for seamless Stata command execution - Interactive workflow with data source and task input prompts - **Agent Examples**: Added complete agent implementation examples - LangChain and LangGraph integration examples - OpenAI-based agent implementation - Advanced prompt generation system for agent tasks - Comprehensive documentation and README files - **Agent Startup Script**: Added `agent.sh` automated startup script - Auto-detection of uv package manager with fallback to pip - Python 3.11+ version validation and environment checking - Interactive installation prompts for uv package manager - Automatic package installation and version validation - Seamless agent mode launch with proper error handling - Cross-platform compatibility with colored output for better UX ### Changed - **Jupyter Dependencies**: Removed unused Jupyter-related dependencies from `pyproject.toml` - Commented out `jupyter-client>=8.6.3` and `stata-kernel>=1.12.2` - Commented out `notebook>=7.4.5` and `jupyter>=1.1.1` - Streamlined installation process and reduced package size - No impact on core Stata-MCP functionality ### Technical - **Dependency Optimization**: Cleaned up unused dependencies for faster installation - **Agent Mode Integration**: Enhanced CLI with agent mode support via `-a/--agent` flag - **Version Update**: Updated version from 1.7.1 to 1.7.2 </details> <details> <summary>Click to expand v1.7.1 details</summary> ## [1.7.1] - 2025-10-05 ### Changed - **mk_dir Security**: Re-enabled `mk_dir` tool with enhanced security using pathvalidate library - Added comprehensive path validation and sanitization - Implemented secure directory creation with proper permissions (0o755) - Added detailed error handling for invalid paths and permission issues - Improved function documentation with comprehensive parameter descriptions ### Technical - **Dependencies**: Added `pathvalidate>=3.3.1` for secure path validation - **Version Update**: Updated version from 1.7.0 to 1.7.1 </details> <details> <summary>Click to expand v1.7.0 details</summary> ## [1.7.0] - 2025-10-4 ### Added - **AI-Assisted Research**: Added comprehensive AI-assisted empirical research report with latest findings - **Prompt Engineering**: Introduced comprehensive task prompt guide and examples for better AI interaction - **Template System**: Added prompt-generator template for standardized AI request formatting - **Research Documentation**: Added detailed research report on StataMCP usage for social science research - **Prompt Examples**: Added two practical examples for PromptGenerator usage - **Load Figure**: Added `load_figure` functionality for image handling - **Sandbox Infrastructure**: Added sandbox infrastructure for testing - **Main Entry Point**: Added `main.py` entry point for local development - **Multilingual Documentation**: Updated Chinese, French, and Spanish README files - **Agent Mode Support**: Added agent mode support documentation - **China Users Guide**: Added specialized documentation for China users - **LLM Integration Guide**: Added comprehensive LLM documentation for AI integration ### Changed - **MCP Protocol**: Upgraded MCP from version 1.14 to 1.15 for latest features - **Module Naming**: Renamed `StataFinder` to `stata_finder` for snake_case consistency - **Directory Structure**: Improved code organization with better directory structure - **Contributing Guide**: Updated CONTRIBUTING.md documentation - **Security Policy**: Enhanced security policy with comprehensive privacy disclaimer - **Git Standards**: Updated CLAUDE.md with git push restrictions and standards - **App Icon**: Updated app icon to higher resolution image - **Project Dependencies**: Updated project dependencies and lock files ### Disabled (Commented Out) - **Directory Creation**: `mk_dir` tool implemented but decorator commented out for safety considerations - **Data Info Function**: `get_data_info` tool implemented but decorator commented out ### Fixed - **ValueError Prevention**: Fixed default instructions setting to avoid ValueError - **macOS Compatibility**: Fixed errors in StataFinder.macos - **Citation Corrections**: Fixed citation mistakes in research documentation - **Environment Configuration**: Fixed environment name errors in configuration - **Debug Cleanup**: Removed leftover debug print statements ### Technical - **Code Architecture**: Improved code organization and maintainability - **Function Safety**: Temporarily disabled certain functions via decorator commenting for security - **Development Environment**: Enhanced development environment setup - **Data Info Stability**: Temporarily disabled `get_data_info` for stability considerations </details> <details> <summary>Click to expand v1.6.3 details</summary> ## [1.6.3] - 2025-09-12 ### Added - **MCP Resource Support**: Added `@mcp.resource` decorator for `help` function with URI `help://stata/{cmd}` - **AI Coding Ability Report**: Added comprehensive comparison chart of different AI models' Stata code generation capabilities in source documentation ### Changed - **Dependency Upgrade**: Upgraded `mcp[cli]` from `>=1.9.0` to `>=1.13.0` for latest MCP protocol features - **Version Updates**: Updated version numbers across all documentation files and CITATION.cff ### Technical - **Enhanced MCP Support**: Improved MCP protocol compatibility with resource URI support </details> <details> <summary>Click to expand v1.6.2 details</summary> ## [1.6.2] - 2025-08-15 ### Changed - **CLI Architecture**: Refactored CLI entry point from `__init__.py` to dedicated CLI module - Moved CLI functionality to `stata_mcp/cli/_cli.py` - Improved code modularity and separation of concerns - Updated entry point configuration in `pyproject.toml` - Enhanced maintainability following Python packaging best practices ### Technical - **Code Organization**: Clean separation between package initialization and CLI execution - **Entry Point**: Updated to use dedicated CLI module instead of `__init__.py` - **Module Structure**: Reduced complexity in main module initialization </details> <details> <summary>Click to expand v1.6.1 details</summary> ## [1.6.1] - 2025-08-09 ### Fixed - Fixed Excel file reading issue in `get_data_info` function by adding missing `openpyxl` dependency - Resolved compatibility issues with Excel (.xlsx) file formats ### Added - Added `openpyxl>=3.1.5` to project dependencies for Excel file support ### Security - Updated license from MIT to Apache License 2.0 for better legal protection and compatibility ### Changed - **License**: Migrated from MIT License to Apache License 2.0 - Updated LICENSE file to Apache 2.0 full text - Updated all documentation files (README, README-cn, README-fr, README-sp) - Updated CITATION.cff license field - Updated pyproject.toml license field - Updated Statement.md in all languages (中文, English, Français) - Updated all license badges from MIT to Apache 2.0 - Ensured consistent Apache 2.0 licensing across entire project </details> <details> <summary>Click to expand v1.6.0 details</summary> ## [1.6.0] - 2025-06-28 ### Added - Initial release with core Stata-MCP functionality - Support for regression analysis via LLM integration - Multi-language documentation (English, Chinese, French, Spanish) - PyPI package distribution - Jupyter integration support - Web UI interface - Cross-platform support (macOS, Windows, Linux) ### Features - Stata command execution via MCP protocol - Data analysis automation - Regression model building assistance - Statistical output interpretation - Code generation and debugging support </details>

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SepineTam/stata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server