Name | albumentations-mcp JSON |
Version |
0.1.0b3
JSON |
| download |
home_page | None |
Summary | MCP-compliant image augmentation server using Albumentations |
upload_time | 2025-08-14 10:48:57 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | MIT License
Copyright (c) 2025 Ramsi Kalia
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. |
keywords |
ai
albumentations
computer-vision
image-augmentation
mcp
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Albumentations-MCP
> **π Beta v0.1 - Production Ready** - Core functionality complete, published on PyPI
## Natural Language Image Augmentation via MCP Protocol
Transform images using plain English with this MCP-compliant server built on [Albumentations](https://albumentations.ai/). Designed for computer vision teams who need quick, reliable image transformations without repetitive coding.
**Example:** `"add blur and rotate 15 degrees"` β Applies GaussianBlur + Rotate transforms automatically
## π― Quick Start
```bash
# Install from PyPI (coming soon)
pip install albumentations-mcp
# Or install from source
git clone https://github.com/ramsi-k/albumentations-mcp
cd albumentations-mcp
uv sync
# Run as MCP server
uvx albumentations-mcp
# Or test with CLI demo
uv run python -m albumentations_mcp.demo --image examples/cat.jpg --prompt "add blur" --seed 42
```
## π§ MCP Client Setup
### Claude Desktop
Add to your `~/.claude_desktop_config.json`:
```json
{
"mcpServers": {
"albumentations": {
"command": "uvx",
"args": ["albumentations-mcp"],
"env": {
"MCP_LOG_LEVEL": "INFO",
"OUTPUT_DIR": "./outputs",
"ENABLE_VISION_VERIFICATION": "true",
"DEFAULT_SEED": "42"
}
}
}
}
```
### Kiro IDE
Add to your `.kiro/settings/mcp.json`:
```json
{
"mcpServers": {
"albumentations": {
"command": "uvx",
"args": ["albumentations-mcp"],
"env": {
"MCP_LOG_LEVEL": "INFO",
"OUTPUT_DIR": "./outputs",
"ENABLE_VISION_VERIFICATION": "true",
"DEFAULT_SEED": "42"
},
"disabled": false,
"autoApprove": ["augment_image", "list_available_transforms"]
}
}
}
```
## π οΈ Available MCP Tools
### `augment_image`
Apply image augmentations based on natural language prompt or preset.
```python
# Example usage in MCP client
augment_image(
image_b64="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...",
prompt="add blur and increase contrast",
seed=42 # Optional for reproducible results
)
```
**Parameters:**
- `image_b64` (str): Base64-encoded image data
- `prompt` (str): Natural language description of desired augmentations
- `seed` (int, optional): Random seed for reproducible results
- `preset` (str, optional): Use preset instead of prompt ("segmentation", "portrait", "lowlight")
**Returns:** Base64-encoded augmented image
### `list_available_transforms`
Get list of supported transforms with descriptions and parameters.
```python
# Returns comprehensive list of available transforms
list_available_transforms()
```
**Returns:** List of transform objects with names, descriptions, and parameter ranges
### `validate_prompt`
Parse and validate a natural language prompt without applying transforms.
```python
# Test what transforms would be applied
validate_prompt(prompt="add blur and rotate 15 degrees")
```
**Parameters:**
- `prompt` (str): Natural language prompt to validate
**Returns:** Parsed transform pipeline with parameters and warnings
### `set_default_seed`
Set default seed for consistent reproducibility across all augment_image calls.
```python
# Set default seed for all future operations
set_default_seed(seed=42)
# Clear default seed
set_default_seed(seed=None)
```
**Parameters:**
- `seed` (int, optional): Default seed value (0 to 4294967295), or None to clear
**Returns:** Dictionary with operation status and current default seed
### `list_available_presets`
List all available preset configurations.
```python
# Get all available presets
list_available_presets()
```
**Returns:** Dictionary containing available presets and their descriptions
### `get_pipeline_status`
Get current pipeline status and hook system information.
```python
# Check pipeline health and configuration
get_pipeline_status()
```
**Returns:** Pipeline status, registered hooks, and system information
## Usage Examples
### Basic Image Augmentation
```python
# Simple blur and rotation
result = augment_image(
image_b64=your_image_b64,
prompt="add blur and rotate 15 degrees"
)
# Multiple transforms
result = augment_image(
image_b64=your_image_b64,
prompt="increase brightness, add noise, and flip horizontally"
)
# Reproducible results
result = augment_image(
image_b64=your_image_b64,
prompt="add blur and rotate",
seed=42 # Same seed = same result
)
```
### Using Presets
```python
# Optimized for segmentation tasks
result = augment_image(
image_b64=your_image_b64,
preset="segmentation"
)
# Portrait photography enhancements
result = augment_image(
image_b64=your_image_b64,
preset="portrait"
)
# Low-light image improvements
result = augment_image(
image_b64=your_image_b64,
preset="lowlight"
)
```
### Natural Language Parsing
The parser understands various ways to describe transforms:
- **Blur**: "add blur", "make blurry", "gaussian blur"
- **Rotation**: "rotate 15 degrees", "turn clockwise", "rotate left"
- **Brightness**: "increase brightness", "make brighter", "brighten"
- **Contrast**: "add contrast", "increase contrast", "make more contrasty"
- **Noise**: "add noise", "make noisy", "gaussian noise"
- **Flipping**: "flip horizontally", "mirror", "flip vertical"
- **Cropping**: "crop center", "random crop", "crop 224x224"
## β
Features
### Core Functionality
- β
**4 MCP Tools**: Complete API for image augmentation
- β
**Natural Language Parser**: Converts prompts to Albumentations transforms
- β
**Reproducible Results**: Seeding support for consistent outputs
- β
**Preset Pipelines**: Pre-configured transforms for common use cases
- β
**CLI Demo**: Test functionality without MCP client
### Advanced Features
- β
**7-Stage Hook System**: Complete processing pipeline with all hooks active
- β
**Visual Verification**: AI-powered result validation
- β
**Error Recovery**: Graceful handling of edge cases
- β
**Comprehensive Testing**: 90%+ test coverage
- β
**Production Logging**: Structured JSON logs with session tracking
### Quality & Reliability
- β
**Type Safety**: Full type hints with mypy validation
- β
**Code Quality**: Black formatting, Ruff linting
- β
**Documentation**: Comprehensive API docs and examples
- β
**PyPI Ready**: Proper package structure for distribution
## ποΈ Architecture
### User Flow Diagram
```mermaid
flowchart TD
A[User Request] --> B{Input Type?}
B -->|Natural Language| C[LLM calls augment_image with prompt]
B -->|Direct API| D[Direct augment_image call]
C --> E{Prompt Content?}
E -->|"add blur"| F[Parse transforms from prompt]
E -->|"use segmentation preset"| G[Parse preset request from prompt]
D --> H{Parameters?}
H -->|prompt only| F
H -->|preset only| I[Load preset transforms directly]
H -->|both provided| J[Prefer preset, warn user]
F --> K[Apply transforms via full pipeline]
G --> L[Extract preset name from prompt]
L --> M[Load preset transforms]
M --> K
I --> N[Apply preset transforms directly]
J --> N
K --> O[7-stage hook system]
N --> P[Simplified processing]
O --> Q[Save files + metadata]
P --> R[Return success message]
Q --> R
R --> S[Return to user]
```
### Processing Flows
#### Flow 1: Natural Language Processing
```
User: "make this image blurry and rotate it"
β LLM: augment_image(image, prompt="add blur and rotate")
β Parser: "add blur" β Blur transform, "rotate" β Rotate transform
β Pipeline: Full 7-stage hook system
β Result: Augmented image with comprehensive metadata
```
#### Flow 2: Preset via Natural Language
```
User: "apply the segmentation preset to this image"
β LLM: augment_image(image, prompt="apply segmentation preset")
β Parser: Recognizes preset request β Extract "segmentation"
β System: Load segmentation preset transforms
β Pipeline: Full 7-stage hook system with preset transforms
β Result: Augmented image with preset metadata
```
#### Flow 3: Direct Preset (API/Testing)
```
API: augment_image(image, preset="segmentation")
β System: Load segmentation preset transforms directly
β Processing: Simplified or full pipeline?
β Result: Augmented image
```
### MCP Protocol Compliance
- **Standard JSON-RPC**: Full MCP protocol implementation
- **Tool Discovery**: Automatic schema generation and validation
- **Error Handling**: Proper status codes and error messages
- **Streaming Support**: Efficient handling of large images
### Complete Hook System
All 7 implemented hooks are active and run automatically in sequence:
1. **pre_mcp**: Input sanitization and preprocessing β
2. **post_mcp**: JSON spec logging and validation β
3. **pre_transform**: Image and configuration validation β
4. **post_transform**: Metadata generation and attachment β
5. **post_transform_verify**: AI-powered visual verification β
6. **pre_save**: File management and versioning β
7. **post_save**: Cleanup and completion logging β
**Coming in v0.2:**
- **post_transform_classify**: Classification consistency checking (8th hook)
- Individual hook toggles via environment variables
- Custom hook development framework
## πΊοΈ Version Roadmap
### v0.2 (Next Release) - Performance & Reliability
**Priority Fixes:**
- π§ **MCP Client Timeout Resolution**: Optimize pipeline to stay under 30-second client timeouts
- π§ **Preset Parameter Fix**: Resolve direct preset parameter issues in MCP clients
- π§ **Enhanced Error Handling**: Better debugging for MCP client parameter passing
**New Features:**
- β‘ **Pipeline Optimization**: Faster processing for large images and multi-transforms
- π¦ **Batch Processing**: `batch_augment_images` tool for processing multiple images
- ποΈ **Hook Toggles**: Environment variables to enable/disable specific hooks
- π **Progress Callbacks**: Real-time progress updates to prevent client timeouts
### v0.3 (Future) - Advanced Features
**Performance:**
- π **GPU Acceleration**: CUDA-enabled transforms for 10x faster processing
- π― **Transform Caching**: Cache compiled transforms for repeated operations
- β‘ **Async Optimization**: Parallel hook execution
**Features:**
- π€ **AI-Enhanced Transforms**: PyTorch/TensorFlow integration
- π¨ **Custom Presets**: User-defined preset creation and sharing
- π **Advanced Analytics**: Detailed performance and quality metrics
### Production-Ready Design
- **Async Processing**: Non-blocking operations with proper resource management
- **Memory Management**: Automatic cleanup of large image arrays
- **Session Tracking**: Unique session IDs for request correlation
- **Structured Logging**: JSON logs with contextual information
## π§ Development Setup
### Prerequisites
- Python 3.9+
- [uv](https://docs.astral.sh/uv/) package manager
### Installation
```bash
# Clone repository
git clone https://github.com/ramsi-k/albumentations-mcp
cd albumentations-mcp
# Install dependencies
uv sync
# Install pre-commit hooks
uv run pre-commit install
# Run tests
uv run pytest
# Run MCP server
uv run python -m albumentations_mcp
```
### Development Commands
```bash
# Format code
uv run black src/ tests/
# Lint code
uv run ruff check src/ tests/ --fix
# Type checking
uv run mypy src/
# Run all quality checks
uv run pre-commit run --all-files
# Run tests with coverage
uv run pytest --cov=src --cov-report=html
# Build package
uv build
```
### Testing the MCP Server
```bash
# Test with CLI demo
uv run python -m albumentations_mcp.demo --image examples/cat.jpg --prompt "add blur"
# Test MCP protocol (requires MCP client)
uvx albumentations-mcp
# Run integration tests
uv run python scripts/test_mcp_integration.py
```
## π Use Cases
Perfect for computer vision teams working on:
- **Data preprocessing pipelines** - Quick augmentation without boilerplate
- **ML model training** - Reproducible transforms with seeding support
- **Image analysis workflows** - Natural language interface for non-technical users
- **Rapid prototyping** - Test augmentation ideas without writing code
## π Project Structure
```yaml
src/albumentations_mcp/
βββ server.py # FastMCP server with 4 working tools
βββ parser.py # Natural language β Albumentations transforms
βββ pipeline.py # Hook-integrated processing pipeline
βββ processor.py # Image processing engine
βββ verification.py # AI-powered visual verification
βββ hooks/ # Complete 7-stage hook system
β βββ pre_mcp.py # Input sanitization β
β βββ post_mcp.py # JSON spec logging β
β βββ pre_transform.py # Image validation β
β βββ post_transform.py # Metadata generation β
β βββ post_transform_verify.py # Visual verification β
β βββ pre_save.py # File management β
β βββ post_save.py # Cleanup and completion β
βββ image_utils.py # Base64 β PIL conversion utilities
tests/ # Comprehensive test suite
βββ test_image_utils.py # Image handling tests
βββ test_parser.py # Natural language parsing tests
βββ test_hooks_integration.py # Hook system tests
βββ test_mcp_protocol_compliance.py # MCP protocol tests
```
## π Code Quality & Best Practices
- **Type Safety**: Full type hints with mypy validation
- **Code Quality**: Black formatting, Ruff linting, pre-commit hooks
- **Testing**: 90%+ test coverage with pytest and async testing
- **Documentation**: Google-style docstrings and comprehensive specs
- **Error Handling**: Graceful degradation with detailed error messages
- **Performance**: Async/await patterns with efficient resource management
## β οΈ Known Limitations
### File Size Limits
**Default Security Limits:**
- **Base64 Input**: 5MB (approximately 3.75MB actual image)
- **Actual Image File**: 50MB maximum
- **Processing Timeout**: 300 seconds (5 minutes)
**Adjusting File Size Limits:**
If you need to process larger images, you can modify the limits in `src/albumentations_mcp/validation.py`:
```python
# Increase base64 input limit (currently 5MB)
MAX_SECURITY_CHECK_LENGTH = 10000000 # 10MB base64 input
# Increase actual file size limit (currently 50MB)
MAX_FILE_SIZE_MB = 100 # 100MB actual image files
# Increase processing timeout (currently 300 seconds)
PROCESSING_TIMEOUT_SECONDS = 600 # 10 minutes
```
Or set via environment variables:
```bash
export MAX_FILE_SIZE_MB=100
export PROCESSING_TIMEOUT_SECONDS=600
# Note: MAX_SECURITY_CHECK_LENGTH must be changed in code
```
### Performance Considerations
**Processing Time Scaling:**
- Small images (< 1MB): ~0.5-1 seconds
- Medium images (1-5MB): ~1-3 seconds
- Large images (5-10MB): ~3-10 seconds
- Very large images (> 10MB): May exceed MCP client timeouts
**Planned Performance Improvements:**
- π **Batch Processing**: Process multiple images in single request (v0.2)
- π **GPU Acceleration**: CUDA-enabled transforms for faster processing (v0.3)
- β‘ **Async Optimization**: Parallel hook execution (v0.2)
- π― **Transform Caching**: Cache compiled transforms for repeated use (v0.3)
### MCP Client Timeouts
**β οΈ Known Issue - Large Images & Multi-Transforms:**
- **Symptom**: MCP Inspector shows "Request timed out" error after ~30-60 seconds
- **Reality**: Processing completes successfully in <10 seconds, files are saved correctly
- **Cause**: MCP client timeout is shorter than our comprehensive processing pipeline
- **Affected**: Large images (>1MB) with complex multi-transforms like `"blur and rotate and brighten"`
- **Workaround**: β
Check output directory - files are generated despite timeout error
**Client-Specific Timeouts:**
- **MCP Inspector**: ~30-60 second timeout (not configurable)
- **Claude Desktop**: ~60 second timeout
- **Kiro IDE**: Configurable timeout settings
**Current Solutions:**
- β
Use smaller images for testing (<500KB work reliably)
- β
Check output directory even if timeout error occurs
- β
Monitor processing with `MCP_LOG_LEVEL=DEBUG`
- β
Single transforms work better than multi-transforms for large images
**Planned Solutions (v0.2):**
- π **Pipeline Optimization**: Faster processing to stay under client timeouts
- π **Batch Processing**: Process multiple images efficiently
- π **Progress Callbacks**: Real-time progress updates to prevent timeouts
### GPU Support Status
**Current Status**: CPU-only processing
**Planned GPU Support (v0.3)**:
- CUDA-enabled Albumentations transforms
- GPU-accelerated image processing with CuPy
- PyTorch/TensorFlow integration for AI-based transforms
- Automatic GPU detection and fallback to CPU
**Note**: MCP tools can absolutely use GPU acceleration - they're just Python functions that can leverage any available hardware and libraries.
### Preset Parameter Issues
**β οΈ Known Issue - Direct Preset Parameter:**
- **Symptom**: `augment_image(image, preset="segmentation")` may not work in some MCP clients
- **Cause**: MCP client parameter passing inconsistencies
- **Affected**: Direct preset parameter usage in MCP Inspector
- **Workaround**: β
Use natural language instead: `augment_image(image, prompt="apply segmentation preset")`
**Working Preset Usage:**
```python
# β
Works reliably - Natural language preset requests
augment_image(image, prompt="apply segmentation preset")
augment_image(image, prompt="use portrait preset")
augment_image(image, prompt="segmentation preset")
# β May fail in some MCP clients - Direct parameter
augment_image(image, preset="segmentation")
```
**Planned Fix (v0.2):**
- π **Enhanced Parameter Validation**: Better handling of MCP client parameter variations
- π **Preset Parameter Debugging**: Detailed logging for parameter passing issues
## π Troubleshooting
### Common Issues
**MCP Server Not Starting**
```bash
# Check if uv is installed
uv --version
# Ensure dependencies are installed
uv sync
# Run with debug logging
MCP_LOG_LEVEL=DEBUG uvx albumentations-mcp
```
**Image Processing Errors**
- Ensure image is valid Base64-encoded data
- Check image format is supported (JPEG, PNG, WebP, etc.)
- **File too large errors**: See "Known Limitations" section above for adjusting size limits
- **Timeout errors**: Try smaller images or check MCP client timeout settings
**Natural Language Parsing Issues**
- Use simple, clear descriptions: "add blur" vs "make it blurry"
- Check available transforms with `list_available_transforms`
- Validate prompts with `validate_prompt` before processing
**File Saving Issues**
- Hook system creates session directories but file saving may fail
- MCP tools return base64 images correctly (core functionality works)
- CLI demo shows file paths but actual file creation is in development
**MCP Client Integration**
- Verify MCP client supports stdio transport
- Check configuration file syntax (JSON formatting)
- Ensure `uvx` command is available in PATH
### Getting Help
1. Check the [Issues](https://github.com/ramsi-k/albumentations-mcp/issues) page
2. Run with debug logging: `MCP_LOG_LEVEL=DEBUG`
3. Test with CLI demo to isolate MCP vs processing issues
4. Review the comprehensive test suite for usage examples
## π€ Contributing
Contributions welcome! This project follows standard Python development practices:
- **Code Style**: Black formatting, Ruff linting
- **Type Safety**: Full type hints with mypy validation
- **Testing**: Pytest with 90%+ coverage requirement
- **Documentation**: Google-style docstrings
### Code Review Options
**For Contributors:**
- **GitHub Pull Requests**: Standard review process with maintainer feedback
- **AI Code Review**: Use tools like CodeRabbit, Codacy, or SonarCloud
- **Community Review**: Post in GitHub Discussions for community feedback
**For Users/Developers:**
- **Professional Review**: Consider hiring Python/CV experts for production use
- **Automated Analysis**: Use tools like DeepCode, Snyk, or GitHub's CodeQL
- **Peer Review**: Share with colleagues or Python communities (Reddit r/Python, Stack Overflow)
Areas of particular interest:
- Additional transform mappings for natural language parser
- New preset pipelines for specific use cases
- Performance optimizations for large images
- GPU acceleration implementation
- Additional MCP client integrations
## π Contact & Support
**Ramsi Kalia** - [ramsi.kalia@gmail.com](mailto:ramsi.kalia@gmail.com)
- π **Bug Reports**: [GitHub Issues](https://github.com/ramsi-k/albumentations-mcp/issues)
- π‘ **Feature Requests**: [GitHub Discussions](https://github.com/ramsi-k/albumentations-mcp/discussions)
- π§ **Direct Contact**: ramsi.kalia@gmail.com
_This project demonstrates production-ready system design with clean architecture, comprehensive testing, and thoughtful user experience. Built for the Kiro Hackathon._
---
## π Detailed Specifications
For technical deep-dive and implementation details:
π **[Requirements](/.kiro/specs/albumentations-mcp/requirements.md)** - User stories and acceptance criteria
ποΈ **[Design](/.kiro/specs/albumentations-mcp/design.md)** - System architecture and component interfaces
π **[Tasks](/.kiro/specs/albumentations-mcp/tasks.md)** - Development roadmap and implementation plan
π§ͺ **[Testing](/.kiro/specs/albumentations-mcp/testing.md)** - Comprehensive test strategy
**License:** MIT
**Status:** Beta v0.1 - Core features complete, advanced features in development
_Developed for the Kiro Hackathon_
Raw data
{
"_id": null,
"home_page": null,
"name": "albumentations-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "ai, albumentations, computer-vision, image-augmentation, mcp",
"author": null,
"author_email": "ramsi-k <ramsi.kalia@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/5b/09/971ffe6da379f6be432e3973fdf95196e6df9d30e7258c92c33b81ed7b6d/albumentations_mcp-0.1.0b3.tar.gz",
"platform": null,
"description": "# Albumentations-MCP\n\n> **\ud83d\ude80 Beta v0.1 - Production Ready** - Core functionality complete, published on PyPI\n\n## Natural Language Image Augmentation via MCP Protocol\n\nTransform images using plain English with this MCP-compliant server built on [Albumentations](https://albumentations.ai/). Designed for computer vision teams who need quick, reliable image transformations without repetitive coding.\n\n**Example:** `\"add blur and rotate 15 degrees\"` \u2192 Applies GaussianBlur + Rotate transforms automatically\n\n## \ud83c\udfaf Quick Start\n\n```bash\n# Install from PyPI (coming soon)\npip install albumentations-mcp\n\n# Or install from source\ngit clone https://github.com/ramsi-k/albumentations-mcp\ncd albumentations-mcp\nuv sync\n\n# Run as MCP server\nuvx albumentations-mcp\n\n# Or test with CLI demo\nuv run python -m albumentations_mcp.demo --image examples/cat.jpg --prompt \"add blur\" --seed 42\n```\n\n## \ud83d\udd27 MCP Client Setup\n\n### Claude Desktop\n\nAdd to your `~/.claude_desktop_config.json`:\n\n```json\n{\n \"mcpServers\": {\n \"albumentations\": {\n \"command\": \"uvx\",\n \"args\": [\"albumentations-mcp\"],\n \"env\": {\n \"MCP_LOG_LEVEL\": \"INFO\",\n \"OUTPUT_DIR\": \"./outputs\",\n \"ENABLE_VISION_VERIFICATION\": \"true\",\n \"DEFAULT_SEED\": \"42\"\n }\n }\n }\n}\n```\n\n### Kiro IDE\n\nAdd to your `.kiro/settings/mcp.json`:\n\n```json\n{\n \"mcpServers\": {\n \"albumentations\": {\n \"command\": \"uvx\",\n \"args\": [\"albumentations-mcp\"],\n \"env\": {\n \"MCP_LOG_LEVEL\": \"INFO\",\n \"OUTPUT_DIR\": \"./outputs\",\n \"ENABLE_VISION_VERIFICATION\": \"true\",\n \"DEFAULT_SEED\": \"42\"\n },\n \"disabled\": false,\n \"autoApprove\": [\"augment_image\", \"list_available_transforms\"]\n }\n }\n}\n```\n\n## \ud83d\udee0\ufe0f Available MCP Tools\n\n### `augment_image`\n\nApply image augmentations based on natural language prompt or preset.\n\n```python\n# Example usage in MCP client\naugment_image(\n image_b64=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...\",\n prompt=\"add blur and increase contrast\",\n seed=42 # Optional for reproducible results\n)\n```\n\n**Parameters:**\n\n- `image_b64` (str): Base64-encoded image data\n- `prompt` (str): Natural language description of desired augmentations\n- `seed` (int, optional): Random seed for reproducible results\n- `preset` (str, optional): Use preset instead of prompt (\"segmentation\", \"portrait\", \"lowlight\")\n\n**Returns:** Base64-encoded augmented image\n\n### `list_available_transforms`\n\nGet list of supported transforms with descriptions and parameters.\n\n```python\n# Returns comprehensive list of available transforms\nlist_available_transforms()\n```\n\n**Returns:** List of transform objects with names, descriptions, and parameter ranges\n\n### `validate_prompt`\n\nParse and validate a natural language prompt without applying transforms.\n\n```python\n# Test what transforms would be applied\nvalidate_prompt(prompt=\"add blur and rotate 15 degrees\")\n```\n\n**Parameters:**\n\n- `prompt` (str): Natural language prompt to validate\n\n**Returns:** Parsed transform pipeline with parameters and warnings\n\n### `set_default_seed`\n\nSet default seed for consistent reproducibility across all augment_image calls.\n\n```python\n# Set default seed for all future operations\nset_default_seed(seed=42)\n\n# Clear default seed\nset_default_seed(seed=None)\n```\n\n**Parameters:**\n\n- `seed` (int, optional): Default seed value (0 to 4294967295), or None to clear\n\n**Returns:** Dictionary with operation status and current default seed\n\n### `list_available_presets`\n\nList all available preset configurations.\n\n```python\n# Get all available presets\nlist_available_presets()\n```\n\n**Returns:** Dictionary containing available presets and their descriptions\n\n### `get_pipeline_status`\n\nGet current pipeline status and hook system information.\n\n```python\n# Check pipeline health and configuration\nget_pipeline_status()\n```\n\n**Returns:** Pipeline status, registered hooks, and system information\n\n## Usage Examples\n\n### Basic Image Augmentation\n\n```python\n# Simple blur and rotation\nresult = augment_image(\n image_b64=your_image_b64,\n prompt=\"add blur and rotate 15 degrees\"\n)\n\n# Multiple transforms\nresult = augment_image(\n image_b64=your_image_b64,\n prompt=\"increase brightness, add noise, and flip horizontally\"\n)\n\n# Reproducible results\nresult = augment_image(\n image_b64=your_image_b64,\n prompt=\"add blur and rotate\",\n seed=42 # Same seed = same result\n)\n```\n\n### Using Presets\n\n```python\n# Optimized for segmentation tasks\nresult = augment_image(\n image_b64=your_image_b64,\n preset=\"segmentation\"\n)\n\n# Portrait photography enhancements\nresult = augment_image(\n image_b64=your_image_b64,\n preset=\"portrait\"\n)\n\n# Low-light image improvements\nresult = augment_image(\n image_b64=your_image_b64,\n preset=\"lowlight\"\n)\n```\n\n### Natural Language Parsing\n\nThe parser understands various ways to describe transforms:\n\n- **Blur**: \"add blur\", \"make blurry\", \"gaussian blur\"\n- **Rotation**: \"rotate 15 degrees\", \"turn clockwise\", \"rotate left\"\n- **Brightness**: \"increase brightness\", \"make brighter\", \"brighten\"\n- **Contrast**: \"add contrast\", \"increase contrast\", \"make more contrasty\"\n- **Noise**: \"add noise\", \"make noisy\", \"gaussian noise\"\n- **Flipping**: \"flip horizontally\", \"mirror\", \"flip vertical\"\n- **Cropping**: \"crop center\", \"random crop\", \"crop 224x224\"\n\n## \u2705 Features\n\n### Core Functionality\n\n- \u2705 **4 MCP Tools**: Complete API for image augmentation\n- \u2705 **Natural Language Parser**: Converts prompts to Albumentations transforms\n- \u2705 **Reproducible Results**: Seeding support for consistent outputs\n- \u2705 **Preset Pipelines**: Pre-configured transforms for common use cases\n- \u2705 **CLI Demo**: Test functionality without MCP client\n\n### Advanced Features\n\n- \u2705 **7-Stage Hook System**: Complete processing pipeline with all hooks active\n- \u2705 **Visual Verification**: AI-powered result validation\n- \u2705 **Error Recovery**: Graceful handling of edge cases\n- \u2705 **Comprehensive Testing**: 90%+ test coverage\n- \u2705 **Production Logging**: Structured JSON logs with session tracking\n\n### Quality & Reliability\n\n- \u2705 **Type Safety**: Full type hints with mypy validation\n- \u2705 **Code Quality**: Black formatting, Ruff linting\n- \u2705 **Documentation**: Comprehensive API docs and examples\n- \u2705 **PyPI Ready**: Proper package structure for distribution\n\n## \ud83c\udfd7\ufe0f Architecture\n\n### User Flow Diagram\n\n```mermaid\nflowchart TD\n A[User Request] --> B{Input Type?}\n\n B -->|Natural Language| C[LLM calls augment_image with prompt]\n B -->|Direct API| D[Direct augment_image call]\n\n C --> E{Prompt Content?}\n E -->|\"add blur\"| F[Parse transforms from prompt]\n E -->|\"use segmentation preset\"| G[Parse preset request from prompt]\n\n D --> H{Parameters?}\n H -->|prompt only| F\n H -->|preset only| I[Load preset transforms directly]\n H -->|both provided| J[Prefer preset, warn user]\n\n F --> K[Apply transforms via full pipeline]\n G --> L[Extract preset name from prompt]\n L --> M[Load preset transforms]\n M --> K\n\n I --> N[Apply preset transforms directly]\n J --> N\n\n K --> O[7-stage hook system]\n N --> P[Simplified processing]\n\n O --> Q[Save files + metadata]\n P --> R[Return success message]\n Q --> R\n\n R --> S[Return to user]\n```\n\n### Processing Flows\n\n#### Flow 1: Natural Language Processing\n\n```\nUser: \"make this image blurry and rotate it\"\n\u2192 LLM: augment_image(image, prompt=\"add blur and rotate\")\n\u2192 Parser: \"add blur\" \u2192 Blur transform, \"rotate\" \u2192 Rotate transform\n\u2192 Pipeline: Full 7-stage hook system\n\u2192 Result: Augmented image with comprehensive metadata\n```\n\n#### Flow 2: Preset via Natural Language\n\n```\nUser: \"apply the segmentation preset to this image\"\n\u2192 LLM: augment_image(image, prompt=\"apply segmentation preset\")\n\u2192 Parser: Recognizes preset request \u2192 Extract \"segmentation\"\n\u2192 System: Load segmentation preset transforms\n\u2192 Pipeline: Full 7-stage hook system with preset transforms\n\u2192 Result: Augmented image with preset metadata\n```\n\n#### Flow 3: Direct Preset (API/Testing)\n\n```\nAPI: augment_image(image, preset=\"segmentation\")\n\u2192 System: Load segmentation preset transforms directly\n\u2192 Processing: Simplified or full pipeline?\n\u2192 Result: Augmented image\n```\n\n### MCP Protocol Compliance\n\n- **Standard JSON-RPC**: Full MCP protocol implementation\n- **Tool Discovery**: Automatic schema generation and validation\n- **Error Handling**: Proper status codes and error messages\n- **Streaming Support**: Efficient handling of large images\n\n### Complete Hook System\n\nAll 7 implemented hooks are active and run automatically in sequence:\n\n1. **pre_mcp**: Input sanitization and preprocessing \u2705\n2. **post_mcp**: JSON spec logging and validation \u2705\n3. **pre_transform**: Image and configuration validation \u2705\n4. **post_transform**: Metadata generation and attachment \u2705\n5. **post_transform_verify**: AI-powered visual verification \u2705\n6. **pre_save**: File management and versioning \u2705\n7. **post_save**: Cleanup and completion logging \u2705\n\n**Coming in v0.2:**\n\n- **post_transform_classify**: Classification consistency checking (8th hook)\n- Individual hook toggles via environment variables\n- Custom hook development framework\n\n## \ud83d\uddfa\ufe0f Version Roadmap\n\n### v0.2 (Next Release) - Performance & Reliability\n\n**Priority Fixes:**\n\n- \ud83d\udd27 **MCP Client Timeout Resolution**: Optimize pipeline to stay under 30-second client timeouts\n- \ud83d\udd27 **Preset Parameter Fix**: Resolve direct preset parameter issues in MCP clients\n- \ud83d\udd27 **Enhanced Error Handling**: Better debugging for MCP client parameter passing\n\n**New Features:**\n\n- \u26a1 **Pipeline Optimization**: Faster processing for large images and multi-transforms\n- \ud83d\udce6 **Batch Processing**: `batch_augment_images` tool for processing multiple images\n- \ud83c\udf9b\ufe0f **Hook Toggles**: Environment variables to enable/disable specific hooks\n- \ud83d\udcca **Progress Callbacks**: Real-time progress updates to prevent client timeouts\n\n### v0.3 (Future) - Advanced Features\n\n**Performance:**\n\n- \ud83d\ude80 **GPU Acceleration**: CUDA-enabled transforms for 10x faster processing\n- \ud83c\udfaf **Transform Caching**: Cache compiled transforms for repeated operations\n- \u26a1 **Async Optimization**: Parallel hook execution\n\n**Features:**\n\n- \ud83e\udd16 **AI-Enhanced Transforms**: PyTorch/TensorFlow integration\n- \ud83c\udfa8 **Custom Presets**: User-defined preset creation and sharing\n- \ud83d\udcc8 **Advanced Analytics**: Detailed performance and quality metrics\n\n### Production-Ready Design\n\n- **Async Processing**: Non-blocking operations with proper resource management\n- **Memory Management**: Automatic cleanup of large image arrays\n- **Session Tracking**: Unique session IDs for request correlation\n- **Structured Logging**: JSON logs with contextual information\n\n## \ud83d\udd27 Development Setup\n\n### Prerequisites\n\n- Python 3.9+\n- [uv](https://docs.astral.sh/uv/) package manager\n\n### Installation\n\n```bash\n# Clone repository\ngit clone https://github.com/ramsi-k/albumentations-mcp\ncd albumentations-mcp\n\n# Install dependencies\nuv sync\n\n# Install pre-commit hooks\nuv run pre-commit install\n\n# Run tests\nuv run pytest\n\n# Run MCP server\nuv run python -m albumentations_mcp\n```\n\n### Development Commands\n\n```bash\n# Format code\nuv run black src/ tests/\n\n# Lint code\nuv run ruff check src/ tests/ --fix\n\n# Type checking\nuv run mypy src/\n\n# Run all quality checks\nuv run pre-commit run --all-files\n\n# Run tests with coverage\nuv run pytest --cov=src --cov-report=html\n\n# Build package\nuv build\n```\n\n### Testing the MCP Server\n\n```bash\n# Test with CLI demo\nuv run python -m albumentations_mcp.demo --image examples/cat.jpg --prompt \"add blur\"\n\n# Test MCP protocol (requires MCP client)\nuvx albumentations-mcp\n\n# Run integration tests\nuv run python scripts/test_mcp_integration.py\n```\n\n## \ud83d\udcca Use Cases\n\nPerfect for computer vision teams working on:\n\n- **Data preprocessing pipelines** - Quick augmentation without boilerplate\n- **ML model training** - Reproducible transforms with seeding support\n- **Image analysis workflows** - Natural language interface for non-technical users\n- **Rapid prototyping** - Test augmentation ideas without writing code\n\n## \ud83d\udcc1 Project Structure\n\n```yaml\nsrc/albumentations_mcp/\n\u251c\u2500\u2500 server.py # FastMCP server with 4 working tools\n\u251c\u2500\u2500 parser.py # Natural language \u2192 Albumentations transforms\n\u251c\u2500\u2500 pipeline.py # Hook-integrated processing pipeline\n\u251c\u2500\u2500 processor.py # Image processing engine\n\u251c\u2500\u2500 verification.py # AI-powered visual verification\n\u251c\u2500\u2500 hooks/ # Complete 7-stage hook system\n\u2502 \u251c\u2500\u2500 pre_mcp.py # Input sanitization \u2705\n\u2502 \u251c\u2500\u2500 post_mcp.py # JSON spec logging \u2705\n\u2502 \u251c\u2500\u2500 pre_transform.py # Image validation \u2705\n\u2502 \u251c\u2500\u2500 post_transform.py # Metadata generation \u2705\n\u2502 \u251c\u2500\u2500 post_transform_verify.py # Visual verification \u2705\n\u2502 \u251c\u2500\u2500 pre_save.py # File management \u2705\n\u2502 \u2514\u2500\u2500 post_save.py # Cleanup and completion \u2705\n\u2514\u2500\u2500 image_utils.py # Base64 \u2194 PIL conversion utilities\n\ntests/ # Comprehensive test suite\n\u251c\u2500\u2500 test_image_utils.py # Image handling tests\n\u251c\u2500\u2500 test_parser.py # Natural language parsing tests\n\u251c\u2500\u2500 test_hooks_integration.py # Hook system tests\n\u2514\u2500\u2500 test_mcp_protocol_compliance.py # MCP protocol tests\n```\n\n## \ud83d\udd0d Code Quality & Best Practices\n\n- **Type Safety**: Full type hints with mypy validation\n- **Code Quality**: Black formatting, Ruff linting, pre-commit hooks\n- **Testing**: 90%+ test coverage with pytest and async testing\n- **Documentation**: Google-style docstrings and comprehensive specs\n- **Error Handling**: Graceful degradation with detailed error messages\n- **Performance**: Async/await patterns with efficient resource management\n\n## \u26a0\ufe0f Known Limitations\n\n### File Size Limits\n\n**Default Security Limits:**\n\n- **Base64 Input**: 5MB (approximately 3.75MB actual image)\n- **Actual Image File**: 50MB maximum\n- **Processing Timeout**: 300 seconds (5 minutes)\n\n**Adjusting File Size Limits:**\n\nIf you need to process larger images, you can modify the limits in `src/albumentations_mcp/validation.py`:\n\n```python\n# Increase base64 input limit (currently 5MB)\nMAX_SECURITY_CHECK_LENGTH = 10000000 # 10MB base64 input\n\n# Increase actual file size limit (currently 50MB)\nMAX_FILE_SIZE_MB = 100 # 100MB actual image files\n\n# Increase processing timeout (currently 300 seconds)\nPROCESSING_TIMEOUT_SECONDS = 600 # 10 minutes\n```\n\nOr set via environment variables:\n\n```bash\nexport MAX_FILE_SIZE_MB=100\nexport PROCESSING_TIMEOUT_SECONDS=600\n# Note: MAX_SECURITY_CHECK_LENGTH must be changed in code\n```\n\n### Performance Considerations\n\n**Processing Time Scaling:**\n\n- Small images (< 1MB): ~0.5-1 seconds\n- Medium images (1-5MB): ~1-3 seconds\n- Large images (5-10MB): ~3-10 seconds\n- Very large images (> 10MB): May exceed MCP client timeouts\n\n**Planned Performance Improvements:**\n\n- \ud83d\udd04 **Batch Processing**: Process multiple images in single request (v0.2)\n- \ud83d\ude80 **GPU Acceleration**: CUDA-enabled transforms for faster processing (v0.3)\n- \u26a1 **Async Optimization**: Parallel hook execution (v0.2)\n- \ud83c\udfaf **Transform Caching**: Cache compiled transforms for repeated use (v0.3)\n\n### MCP Client Timeouts\n\n**\u26a0\ufe0f Known Issue - Large Images & Multi-Transforms:**\n\n- **Symptom**: MCP Inspector shows \"Request timed out\" error after ~30-60 seconds\n- **Reality**: Processing completes successfully in <10 seconds, files are saved correctly\n- **Cause**: MCP client timeout is shorter than our comprehensive processing pipeline\n- **Affected**: Large images (>1MB) with complex multi-transforms like `\"blur and rotate and brighten\"`\n- **Workaround**: \u2705 Check output directory - files are generated despite timeout error\n\n**Client-Specific Timeouts:**\n\n- **MCP Inspector**: ~30-60 second timeout (not configurable)\n- **Claude Desktop**: ~60 second timeout\n- **Kiro IDE**: Configurable timeout settings\n\n**Current Solutions:**\n\n- \u2705 Use smaller images for testing (<500KB work reliably)\n- \u2705 Check output directory even if timeout error occurs\n- \u2705 Monitor processing with `MCP_LOG_LEVEL=DEBUG`\n- \u2705 Single transforms work better than multi-transforms for large images\n\n**Planned Solutions (v0.2):**\n\n- \ud83d\udd04 **Pipeline Optimization**: Faster processing to stay under client timeouts\n- \ud83d\udd04 **Batch Processing**: Process multiple images efficiently\n- \ud83d\udd04 **Progress Callbacks**: Real-time progress updates to prevent timeouts\n\n### GPU Support Status\n\n**Current Status**: CPU-only processing\n**Planned GPU Support (v0.3)**:\n\n- CUDA-enabled Albumentations transforms\n- GPU-accelerated image processing with CuPy\n- PyTorch/TensorFlow integration for AI-based transforms\n- Automatic GPU detection and fallback to CPU\n\n**Note**: MCP tools can absolutely use GPU acceleration - they're just Python functions that can leverage any available hardware and libraries.\n\n### Preset Parameter Issues\n\n**\u26a0\ufe0f Known Issue - Direct Preset Parameter:**\n\n- **Symptom**: `augment_image(image, preset=\"segmentation\")` may not work in some MCP clients\n- **Cause**: MCP client parameter passing inconsistencies\n- **Affected**: Direct preset parameter usage in MCP Inspector\n- **Workaround**: \u2705 Use natural language instead: `augment_image(image, prompt=\"apply segmentation preset\")`\n\n**Working Preset Usage:**\n\n```python\n# \u2705 Works reliably - Natural language preset requests\naugment_image(image, prompt=\"apply segmentation preset\")\naugment_image(image, prompt=\"use portrait preset\")\naugment_image(image, prompt=\"segmentation preset\")\n\n# \u274c May fail in some MCP clients - Direct parameter\naugment_image(image, preset=\"segmentation\")\n```\n\n**Planned Fix (v0.2):**\n\n- \ud83d\udd04 **Enhanced Parameter Validation**: Better handling of MCP client parameter variations\n- \ud83d\udd04 **Preset Parameter Debugging**: Detailed logging for parameter passing issues\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues\n\n**MCP Server Not Starting**\n\n```bash\n# Check if uv is installed\nuv --version\n\n# Ensure dependencies are installed\nuv sync\n\n# Run with debug logging\nMCP_LOG_LEVEL=DEBUG uvx albumentations-mcp\n```\n\n**Image Processing Errors**\n\n- Ensure image is valid Base64-encoded data\n- Check image format is supported (JPEG, PNG, WebP, etc.)\n- **File too large errors**: See \"Known Limitations\" section above for adjusting size limits\n- **Timeout errors**: Try smaller images or check MCP client timeout settings\n\n**Natural Language Parsing Issues**\n\n- Use simple, clear descriptions: \"add blur\" vs \"make it blurry\"\n- Check available transforms with `list_available_transforms`\n- Validate prompts with `validate_prompt` before processing\n\n**File Saving Issues**\n\n- Hook system creates session directories but file saving may fail\n- MCP tools return base64 images correctly (core functionality works)\n- CLI demo shows file paths but actual file creation is in development\n\n**MCP Client Integration**\n\n- Verify MCP client supports stdio transport\n- Check configuration file syntax (JSON formatting)\n- Ensure `uvx` command is available in PATH\n\n### Getting Help\n\n1. Check the [Issues](https://github.com/ramsi-k/albumentations-mcp/issues) page\n2. Run with debug logging: `MCP_LOG_LEVEL=DEBUG`\n3. Test with CLI demo to isolate MCP vs processing issues\n4. Review the comprehensive test suite for usage examples\n\n## \ud83e\udd1d Contributing\n\nContributions welcome! This project follows standard Python development practices:\n\n- **Code Style**: Black formatting, Ruff linting\n- **Type Safety**: Full type hints with mypy validation\n- **Testing**: Pytest with 90%+ coverage requirement\n- **Documentation**: Google-style docstrings\n\n### Code Review Options\n\n**For Contributors:**\n\n- **GitHub Pull Requests**: Standard review process with maintainer feedback\n- **AI Code Review**: Use tools like CodeRabbit, Codacy, or SonarCloud\n- **Community Review**: Post in GitHub Discussions for community feedback\n\n**For Users/Developers:**\n\n- **Professional Review**: Consider hiring Python/CV experts for production use\n- **Automated Analysis**: Use tools like DeepCode, Snyk, or GitHub's CodeQL\n- **Peer Review**: Share with colleagues or Python communities (Reddit r/Python, Stack Overflow)\n\nAreas of particular interest:\n\n- Additional transform mappings for natural language parser\n- New preset pipelines for specific use cases\n- Performance optimizations for large images\n- GPU acceleration implementation\n- Additional MCP client integrations\n\n## \ud83d\udcde Contact & Support\n\n**Ramsi Kalia** - [ramsi.kalia@gmail.com](mailto:ramsi.kalia@gmail.com)\n\n- \ud83d\udc1b **Bug Reports**: [GitHub Issues](https://github.com/ramsi-k/albumentations-mcp/issues)\n- \ud83d\udca1 **Feature Requests**: [GitHub Discussions](https://github.com/ramsi-k/albumentations-mcp/discussions)\n- \ud83d\udce7 **Direct Contact**: ramsi.kalia@gmail.com\n\n_This project demonstrates production-ready system design with clean architecture, comprehensive testing, and thoughtful user experience. Built for the Kiro Hackathon._\n\n---\n\n## \ud83d\udccb Detailed Specifications\n\nFor technical deep-dive and implementation details:\n\n\ud83d\udccb **[Requirements](/.kiro/specs/albumentations-mcp/requirements.md)** - User stories and acceptance criteria\n\ud83c\udfd7\ufe0f **[Design](/.kiro/specs/albumentations-mcp/design.md)** - System architecture and component interfaces\n\ud83d\udcdd **[Tasks](/.kiro/specs/albumentations-mcp/tasks.md)** - Development roadmap and implementation plan\n\ud83e\uddea **[Testing](/.kiro/specs/albumentations-mcp/testing.md)** - Comprehensive test strategy\n\n**License:** MIT\n**Status:** Beta v0.1 - Core features complete, advanced features in development\n_Developed for the Kiro Hackathon_\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2025 Ramsi Kalia\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.",
"summary": "MCP-compliant image augmentation server using Albumentations",
"version": "0.1.0b3",
"project_urls": {
"Homepage": "https://github.com/ramsi-k/albumentations-mcp",
"Issues": "https://github.com/ramsi-k/albumentations-mcp/issues",
"Repository": "https://github.com/ramsi-k/albumentations-mcp"
},
"split_keywords": [
"ai",
" albumentations",
" computer-vision",
" image-augmentation",
" mcp"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "30679d9a574eddb169ab31de13bb248e9e9482cc4c86529b06bbfadb72dead4d",
"md5": "3d4fc5052d53f795af52bb99d84898ab",
"sha256": "b63511d303608bb3e520aa19c063741d33e17a3e8efed7674070f34973adeebf"
},
"downloads": -1,
"filename": "albumentations_mcp-0.1.0b3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3d4fc5052d53f795af52bb99d84898ab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 91802,
"upload_time": "2025-08-14T10:48:54",
"upload_time_iso_8601": "2025-08-14T10:48:54.913997Z",
"url": "https://files.pythonhosted.org/packages/30/67/9d9a574eddb169ab31de13bb248e9e9482cc4c86529b06bbfadb72dead4d/albumentations_mcp-0.1.0b3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5b09971ffe6da379f6be432e3973fdf95196e6df9d30e7258c92c33b81ed7b6d",
"md5": "c3bbe6209989d3460a922688de926ebb",
"sha256": "e6a143cc33d739e96ce70e684cbc30d16b290781ca966c87cc888ba8c7dcf303"
},
"downloads": -1,
"filename": "albumentations_mcp-0.1.0b3.tar.gz",
"has_sig": false,
"md5_digest": "c3bbe6209989d3460a922688de926ebb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 233866,
"upload_time": "2025-08-14T10:48:57",
"upload_time_iso_8601": "2025-08-14T10:48:57.045329Z",
"url": "https://files.pythonhosted.org/packages/5b/09/971ffe6da379f6be432e3973fdf95196e6df9d30e7258c92c33b81ed7b6d/albumentations_mcp-0.1.0b3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-14 10:48:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ramsi-k",
"github_project": "albumentations-mcp",
"github_not_found": true,
"lcname": "albumentations-mcp"
}