# AWS Transform for mainframe (ATX) - Mainframe Dependency Manager
[](https://pypi.org/project/atx-mainframe-dependency-manager/)
[](https://pepy.tech/projects/atx-mainframe-dependency-manager)
[](https://pypi.org/project/atx-mainframe-dependency-manager/)
[](https://opensource.org/licenses/MIT)
A comprehensive tool for managing mainframe component dependencies and relationships as part of **[AWS Transform for mainframe (ATX)](https://aws.amazon.com/transform/mainframe/)** initiatives. Can be used as both an MCP server and a Python library.
## Overview
This tool extends the **[AWS Transform for mainframe (ATX)](https://aws.amazon.com/transform/mainframe/) analysis workflow** by providing advanced dependency analysis capabilities for mainframe applications. It works with the codebase and dependency graph JSON produced by the ATX analysis step to enable deeper insights and impact analysis.
### ATX Integration Workflow
```
ATX Analysis โ dependencies.json + codebase โ ATX Mainframe Dependency Manager โ Advanced Analysis
```
1. **ATX Analysis**: Analyzes your mainframe codebase and produces `dependencies.json`
2. **ATX Mainframe Dependency Manager**: Uses the same codebase and generated dependency graph for further analysis
3. **Advanced Analysis**: Provides 18+ analysis tools for dependency tracking, impact assessment, and source code access
## Features
- **Dependency Analysis**: Analyze direct and recursive dependencies between mainframe components
- **Impact Assessment**: Understand the impact of changes to specific components
- **Component Discovery**: Find components by name, type, or file path
- **Orphan Detection**: Identify unused components with no dependencies or dependents
- **Statistics and Reporting**: Get comprehensive statistics about your mainframe codebase
- **Source Code Access**: Read and analyze mainframe source code files
- **Dual Usage**: Works as both MCP server and Python library
## Prerequisites
- **ATX Analysis**: Must be completed first to generate the dependency graph
- **Same Codebase**: Use the identical codebase that was analyzed by ATX
- **Dependencies JSON**: The `dependencies.json` file produced by ATX analysis
## Installation
### For MCP Server Usage
No installation needed! The MCP configuration with `uvx` will automatically download and run the package.
### For Python Library Usage
```bash
pip install atx-mainframe-dependency-manager
```
## Quick Start
### Configuration
Set these environment variables to point to your ATX analysis outputs:
```bash
export ATX_MF_DEPENDENCIES_FILE="/path/to/atx-dependencies.json"
export ATX_MF_CODE_BASE="/path/to/mainframe/codebase"
```
### As MCP Server
```json
{
"mcpServers": {
"atx-mainframe-dependency-manager": {
"command": "uvx",
"args": ["atx-mainframe-dependency-manager"],
"env": {
"ATX_MF_DEPENDENCIES_FILE": "/path/to/atx-dependencies.json",
"ATX_MF_CODE_BASE": "/path/to/mainframe/codebase"
}
}
}
}
```
### As Python Library
```python
from atx_mainframe_dependency_manager import DependencyManager
import os
# Initialize and load dependencies
dm = DependencyManager()
dm.load_dependencies("/path/to/atx-dependencies.json")
os.environ['ATX_MF_CODE_BASE'] = "/path/to/mainframe/codebase"
# Analyze dependencies
component_info = dm.get_component_info("PAYROLL")
dependencies = dm.get_dependencies("PAYROLL")
stats = dm.get_statistics()
```
## Sample Prompts for Mainframe Modernization
Once the MCP server is configured, you can use these prompts to guide your mainframe modernization project:
### ๐ Discovery & Analysis Phase
#### 1. Get Overall System Overview
"Show me the complete mainframe system statistics and component breakdown to understand the modernization scope"
#### 2. Identify Core Business Programs
"Find all COBOL programs that have the most dependencies and dependents - these are likely our core business logic components"
#### 3. Analyze Transaction Processing Components
"Get detailed information about COTRN00C, COTRN01C, and COTRN02C components including their dependencies and source code to understand the transaction processing flow"
#### 4. Discover Account Management Components
"Show me all components related to account management (COACTUPC, COACTVWC, CBACT*) and their dependency relationships"
### ๐ Dependency Analysis for Modernization Planning
#### 5. Find High-Impact Components
"Identify components with the highest number of dependents - these should be modernized first as they impact the most other components"
#### 6. Discover Isolated Components
"Show me all orphaned components that have no dependencies or dependents - these can be modernized independently"
#### 7. Analyze Copybook Dependencies
"Get all CPY (copybook) components and show which COBOL programs depend on them - this will help plan data structure modernization"
#### 8. Map JCL Job Dependencies
"Show me all JCL components and their program dependencies to understand batch processing workflows"
### ๐๏ธ Microservices Architecture Planning
#### 9. Group Related Components for Service Boundaries
"Analyze the dependency relationships between COBOL programs to identify logical groupings for microservices (e.g., customer management, card management, transaction processing)"
#### 10. Identify Service Interface Points
"Find components that are called by multiple other components - these are candidates for service interfaces in the modernized architecture"
#### 11. Analyze Data Access Patterns
"Show me all components that access the same datasets/files to understand data sharing patterns for database design"
### ๐ Migration Strategy Development
#### 12. Plan Incremental Migration
"Identify components with the fewest dependencies that can be modernized first in an incremental migration approach"
#### 13. Find Critical Path Components
"Show me the dependency chain from user interface components (COUSR*, COADM*) to data access components to understand the critical modernization path"
#### 14. Analyze Cross-Component Communication
"Get detailed information about how CICS programs call each other to design API interfaces for the modernized system"
### ๐พ Data Modernization Planning
#### 15. Map Data Structures
"Read the source code of key copybooks (CVACT01Y, CVCUS01Y, CVTRA05Y) to understand data structures that need to be modernized"
#### 16. Identify File Access Patterns
"Show me all components that read/write to the same files to plan database table design and data access services"
#### 17. Analyze Data Validation Logic
"Get the source code of validation-heavy components like COACTUPC to extract business rules for modern validation services"
### ๐งช Testing Strategy Development
#### 18. Identify Test Boundaries
"Find components that can be tested independently (low coupling) vs. those requiring integration testing (high coupling)"
#### 19. Plan Component Testing Order
"Show me the dependency hierarchy to plan the order of component testing during modernization"
## Usage Examples
### Basic Analysis
```python
# Get component information
info = dm.get_component_info("PAYROLL")
print(f"Type: {info['type']}, Path: {info['path']}")
# Find dependencies and dependents
deps = dm.get_dependencies("PAYROLL")
dependents = dm.get_dependents("PAYROLL")
# Get recursive impact analysis
recursive_deps = dm.get_recursive_dependencies("PAYROLL")
recursive_dependents = dm.get_recursive_dependents("PAYROLL")
```
### Component Discovery
```python
# Find components by type
cobol_programs = dm.get_components_by_type("COB")
copybooks = dm.get_components_by_type("CPY")
# Find orphaned components
orphans = dm.get_orphaned_components()
# Search by file path
component = dm.find_component_by_path("/cobol/PAYROLL.cob")
# Get comprehensive statistics
stats = dm.get_statistics()
print(f"Total components: {stats['total_components']}")
```
### Source Code Access
```python
# Read source code content
source_code = dm.read_component_source("PAYROLL")
# Get source file information
source_info = dm.get_component_source_info("PAYROLL")
# Validate source code access
validation_results = dm.validate_source_access()
```
## Analysis Tools Reference
### Component Analysis
- `get_component_info` - Get detailed component information
- `get_component_dependencies` - Get direct dependencies
- `get_recursive_dependencies` - Get complete dependency tree
- `get_component_dependents` - Get components that depend on this one
- `get_recursive_dependents` - Get complete impact tree
### Discovery Tools
- `get_components_by_type` - List components by type (COB, JCL, CPY, etc.)
- `find_component_by_path` - Find components by file path
- `get_orphaned_components` - Find unused components
### Source Code Tools
- `read_component_source` - Read actual source code content
- `get_component_source_info` - Get source file accessibility details
- `list_component_directory` - List files in component directories
- `validate_source_access` - Check source file accessibility
### System Analysis
- `get_dependency_statistics` - Get comprehensive codebase statistics
- `get_configuration_info` - Get current configuration status
### Management Tools
- `load_dependencies` - Load dependency data from ATX JSON file
- `add_component` - Add new components *(experimental)*
- `add_dependency` - Add new dependency relationships *(experimental)*
- `save_dependencies` - Save current state to JSON file *(experimental)*
**Note**: Management tools marked as *experimental* are available but not fully tested. Use with caution in production environments.
## ATX Dependencies JSON Format
The dependency graph JSON is produced by the ATX analysis step and follows this structure:
```json
[
{
"name": "PAYROLL",
"type": "COB",
"path": "/mainframe/cobol/PAYROLL.cob",
"dependencies": [
{
"name": "EMPLOYEE",
"dependencyType": "COPY"
}
]
}
]
```
**Note**: This JSON file is automatically generated by ATX analysis - you don't need to create it manually.
## AWS Transform Integration
This tool is designed to work seamlessly with [AWS Transform for mainframe (ATX)](https://aws.amazon.com/transform/mainframe/) workflows:
1. **Run ATX Analysis** on your mainframe codebase
2. **Use the same codebase** and generated `dependencies.json`
3. **Launch this tool** (as MCP server or library) for advanced dependency analysis
4. **Perform impact analysis** before making changes
5. **Track dependencies** throughout your transformation journey
## License
MIT License - see LICENSE file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "atx-mainframe-dependency-manager",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "mainframe, dependency, management, mcp, cobol, jcl, copybook, cross-platform",
"author": null,
"author_email": "Arunkumar Selvam <aruninfy123@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/7a/f2/640b9b878517e55797dd6d1a4b7bed5acf1a0fe63e2f285c08c3157ee069/atx_mainframe_dependency_manager-0.1.5.tar.gz",
"platform": null,
"description": "# AWS Transform for mainframe (ATX) - Mainframe Dependency Manager\n\n[](https://pypi.org/project/atx-mainframe-dependency-manager/)\n[](https://pepy.tech/projects/atx-mainframe-dependency-manager)\n[](https://pypi.org/project/atx-mainframe-dependency-manager/)\n[](https://opensource.org/licenses/MIT)\n\nA comprehensive tool for managing mainframe component dependencies and relationships as part of **[AWS Transform for mainframe (ATX)](https://aws.amazon.com/transform/mainframe/)** initiatives. Can be used as both an MCP server and a Python library.\n\n## Overview\n\nThis tool extends the **[AWS Transform for mainframe (ATX)](https://aws.amazon.com/transform/mainframe/) analysis workflow** by providing advanced dependency analysis capabilities for mainframe applications. It works with the codebase and dependency graph JSON produced by the ATX analysis step to enable deeper insights and impact analysis.\n\n### ATX Integration Workflow\n\n```\nATX Analysis \u2192 dependencies.json + codebase \u2192 ATX Mainframe Dependency Manager \u2192 Advanced Analysis\n```\n\n1. **ATX Analysis**: Analyzes your mainframe codebase and produces `dependencies.json`\n2. **ATX Mainframe Dependency Manager**: Uses the same codebase and generated dependency graph for further analysis\n3. **Advanced Analysis**: Provides 18+ analysis tools for dependency tracking, impact assessment, and source code access\n\n## Features\n\n- **Dependency Analysis**: Analyze direct and recursive dependencies between mainframe components\n- **Impact Assessment**: Understand the impact of changes to specific components \n- **Component Discovery**: Find components by name, type, or file path\n- **Orphan Detection**: Identify unused components with no dependencies or dependents\n- **Statistics and Reporting**: Get comprehensive statistics about your mainframe codebase\n- **Source Code Access**: Read and analyze mainframe source code files\n- **Dual Usage**: Works as both MCP server and Python library\n\n## Prerequisites\n\n- **ATX Analysis**: Must be completed first to generate the dependency graph\n- **Same Codebase**: Use the identical codebase that was analyzed by ATX\n- **Dependencies JSON**: The `dependencies.json` file produced by ATX analysis\n\n## Installation\n\n### For MCP Server Usage\nNo installation needed! The MCP configuration with `uvx` will automatically download and run the package.\n\n### For Python Library Usage\n```bash\npip install atx-mainframe-dependency-manager\n```\n\n## Quick Start\n\n### Configuration\n\nSet these environment variables to point to your ATX analysis outputs:\n\n```bash\nexport ATX_MF_DEPENDENCIES_FILE=\"/path/to/atx-dependencies.json\"\nexport ATX_MF_CODE_BASE=\"/path/to/mainframe/codebase\"\n```\n\n### As MCP Server\n\n```json\n{\n \"mcpServers\": {\n \"atx-mainframe-dependency-manager\": {\n \"command\": \"uvx\",\n \"args\": [\"atx-mainframe-dependency-manager\"],\n \"env\": {\n \"ATX_MF_DEPENDENCIES_FILE\": \"/path/to/atx-dependencies.json\",\n \"ATX_MF_CODE_BASE\": \"/path/to/mainframe/codebase\"\n }\n }\n }\n}\n```\n\n### As Python Library\n\n```python\nfrom atx_mainframe_dependency_manager import DependencyManager\nimport os\n\n# Initialize and load dependencies\ndm = DependencyManager()\ndm.load_dependencies(\"/path/to/atx-dependencies.json\")\nos.environ['ATX_MF_CODE_BASE'] = \"/path/to/mainframe/codebase\"\n\n# Analyze dependencies\ncomponent_info = dm.get_component_info(\"PAYROLL\")\ndependencies = dm.get_dependencies(\"PAYROLL\")\nstats = dm.get_statistics()\n```\n\n## Sample Prompts for Mainframe Modernization\n\nOnce the MCP server is configured, you can use these prompts to guide your mainframe modernization project:\n\n### \ud83d\udd0d Discovery & Analysis Phase\n\n#### 1. Get Overall System Overview\n\"Show me the complete mainframe system statistics and component breakdown to understand the modernization scope\"\n\n#### 2. Identify Core Business Programs\n\"Find all COBOL programs that have the most dependencies and dependents - these are likely our core business logic components\"\n\n#### 3. Analyze Transaction Processing Components\n\"Get detailed information about COTRN00C, COTRN01C, and COTRN02C components including their dependencies and source code to understand the transaction processing flow\"\n\n#### 4. Discover Account Management Components\n\"Show me all components related to account management (COACTUPC, COACTVWC, CBACT*) and their dependency relationships\"\n\n### \ud83d\udcca Dependency Analysis for Modernization Planning\n\n#### 5. Find High-Impact Components\n\"Identify components with the highest number of dependents - these should be modernized first as they impact the most other components\"\n\n#### 6. Discover Isolated Components\n\"Show me all orphaned components that have no dependencies or dependents - these can be modernized independently\"\n\n#### 7. Analyze Copybook Dependencies\n\"Get all CPY (copybook) components and show which COBOL programs depend on them - this will help plan data structure modernization\"\n\n#### 8. Map JCL Job Dependencies\n\"Show me all JCL components and their program dependencies to understand batch processing workflows\"\n\n### \ud83c\udfd7\ufe0f Microservices Architecture Planning\n\n#### 9. Group Related Components for Service Boundaries\n\"Analyze the dependency relationships between COBOL programs to identify logical groupings for microservices (e.g., customer management, card management, transaction processing)\"\n\n#### 10. Identify Service Interface Points\n\"Find components that are called by multiple other components - these are candidates for service interfaces in the modernized architecture\"\n\n#### 11. Analyze Data Access Patterns\n\"Show me all components that access the same datasets/files to understand data sharing patterns for database design\"\n\n### \ud83d\udd04 Migration Strategy Development\n\n#### 12. Plan Incremental Migration\n\"Identify components with the fewest dependencies that can be modernized first in an incremental migration approach\"\n\n#### 13. Find Critical Path Components\n\"Show me the dependency chain from user interface components (COUSR*, COADM*) to data access components to understand the critical modernization path\"\n\n#### 14. Analyze Cross-Component Communication\n\"Get detailed information about how CICS programs call each other to design API interfaces for the modernized system\"\n\n### \ud83d\udcbe Data Modernization Planning\n\n#### 15. Map Data Structures\n\"Read the source code of key copybooks (CVACT01Y, CVCUS01Y, CVTRA05Y) to understand data structures that need to be modernized\"\n\n#### 16. Identify File Access Patterns\n\"Show me all components that read/write to the same files to plan database table design and data access services\"\n\n#### 17. Analyze Data Validation Logic\n\"Get the source code of validation-heavy components like COACTUPC to extract business rules for modern validation services\"\n\n### \ud83e\uddea Testing Strategy Development\n\n#### 18. Identify Test Boundaries\n\"Find components that can be tested independently (low coupling) vs. those requiring integration testing (high coupling)\"\n\n#### 19. Plan Component Testing Order\n\"Show me the dependency hierarchy to plan the order of component testing during modernization\"\n\n## Usage Examples\n\n### Basic Analysis\n\n```python\n# Get component information\ninfo = dm.get_component_info(\"PAYROLL\")\nprint(f\"Type: {info['type']}, Path: {info['path']}\")\n\n# Find dependencies and dependents\ndeps = dm.get_dependencies(\"PAYROLL\")\ndependents = dm.get_dependents(\"PAYROLL\")\n\n# Get recursive impact analysis\nrecursive_deps = dm.get_recursive_dependencies(\"PAYROLL\")\nrecursive_dependents = dm.get_recursive_dependents(\"PAYROLL\")\n```\n\n### Component Discovery\n\n```python\n# Find components by type\ncobol_programs = dm.get_components_by_type(\"COB\")\ncopybooks = dm.get_components_by_type(\"CPY\")\n\n# Find orphaned components\norphans = dm.get_orphaned_components()\n\n# Search by file path\ncomponent = dm.find_component_by_path(\"/cobol/PAYROLL.cob\")\n\n# Get comprehensive statistics\nstats = dm.get_statistics()\nprint(f\"Total components: {stats['total_components']}\")\n```\n\n### Source Code Access\n\n```python\n# Read source code content\nsource_code = dm.read_component_source(\"PAYROLL\")\n\n# Get source file information\nsource_info = dm.get_component_source_info(\"PAYROLL\")\n\n# Validate source code access\nvalidation_results = dm.validate_source_access()\n```\n\n## Analysis Tools Reference\n\n### Component Analysis\n- `get_component_info` - Get detailed component information\n- `get_component_dependencies` - Get direct dependencies\n- `get_recursive_dependencies` - Get complete dependency tree\n- `get_component_dependents` - Get components that depend on this one\n- `get_recursive_dependents` - Get complete impact tree\n\n### Discovery Tools \n- `get_components_by_type` - List components by type (COB, JCL, CPY, etc.)\n- `find_component_by_path` - Find components by file path\n- `get_orphaned_components` - Find unused components\n\n### Source Code Tools\n- `read_component_source` - Read actual source code content\n- `get_component_source_info` - Get source file accessibility details\n- `list_component_directory` - List files in component directories\n- `validate_source_access` - Check source file accessibility\n\n### System Analysis\n- `get_dependency_statistics` - Get comprehensive codebase statistics\n- `get_configuration_info` - Get current configuration status\n\n### Management Tools\n- `load_dependencies` - Load dependency data from ATX JSON file\n- `add_component` - Add new components *(experimental)*\n- `add_dependency` - Add new dependency relationships *(experimental)*\n- `save_dependencies` - Save current state to JSON file *(experimental)*\n\n**Note**: Management tools marked as *experimental* are available but not fully tested. Use with caution in production environments.\n\n## ATX Dependencies JSON Format\n\nThe dependency graph JSON is produced by the ATX analysis step and follows this structure:\n\n```json\n[\n {\n \"name\": \"PAYROLL\",\n \"type\": \"COB\", \n \"path\": \"/mainframe/cobol/PAYROLL.cob\",\n \"dependencies\": [\n {\n \"name\": \"EMPLOYEE\",\n \"dependencyType\": \"COPY\"\n }\n ]\n }\n]\n```\n\n**Note**: This JSON file is automatically generated by ATX analysis - you don't need to create it manually.\n\n## AWS Transform Integration\n\nThis tool is designed to work seamlessly with [AWS Transform for mainframe (ATX)](https://aws.amazon.com/transform/mainframe/) workflows:\n\n1. **Run ATX Analysis** on your mainframe codebase\n2. **Use the same codebase** and generated `dependencies.json` \n3. **Launch this tool** (as MCP server or library) for advanced dependency analysis\n4. **Perform impact analysis** before making changes\n5. **Track dependencies** throughout your transformation journey\n\n## License\n\nMIT License - see LICENSE file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "MCP server for managing mainframe component dependencies and relationships",
"version": "0.1.5",
"project_urls": {
"Bug Reports": "https://github.com/arunkumars-mf/atx-mainframe-dependency-manager/issues",
"Homepage": "https://github.com/arunkumars-mf/atx-mainframe-dependency-manager",
"Source": "https://github.com/arunkumars-mf/atx-mainframe-dependency-manager"
},
"split_keywords": [
"mainframe",
" dependency",
" management",
" mcp",
" cobol",
" jcl",
" copybook",
" cross-platform"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "05a0955ed3d5bf53b5b256ee4cf9a52de4a2078de85cacee7cdf5ce781505081",
"md5": "fbd44ea4e384d972f712705163983414",
"sha256": "de0ca2b0b6d8ae7177c2c5a6c5d1bab28d30d0a5279c9d622dbab5c7aad28873"
},
"downloads": -1,
"filename": "atx_mainframe_dependency_manager-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fbd44ea4e384d972f712705163983414",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 18377,
"upload_time": "2025-09-02T10:52:09",
"upload_time_iso_8601": "2025-09-02T10:52:09.959704Z",
"url": "https://files.pythonhosted.org/packages/05/a0/955ed3d5bf53b5b256ee4cf9a52de4a2078de85cacee7cdf5ce781505081/atx_mainframe_dependency_manager-0.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7af2640b9b878517e55797dd6d1a4b7bed5acf1a0fe63e2f285c08c3157ee069",
"md5": "ff3fab401c8a84167957998a85a3eefd",
"sha256": "3a7c04b927c91b3628e6d9e04f93c8aacac664eaebab084937847814b7c02baa"
},
"downloads": -1,
"filename": "atx_mainframe_dependency_manager-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "ff3fab401c8a84167957998a85a3eefd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 22657,
"upload_time": "2025-09-02T10:52:10",
"upload_time_iso_8601": "2025-09-02T10:52:10.820218Z",
"url": "https://files.pythonhosted.org/packages/7a/f2/640b9b878517e55797dd6d1a4b7bed5acf1a0fe63e2f285c08c3157ee069/atx_mainframe_dependency_manager-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-02 10:52:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "arunkumars-mf",
"github_project": "atx-mainframe-dependency-manager",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "atx-mainframe-dependency-manager"
}