Mageflow — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mageflow (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center"> <img src="logo.png" alt="MageFlow Logo" width="200"/>
📚 [Full Documentation](https://imaginary-cherry.github.io/mageflow/) | Installation | API Reference
</div>
Manage Graph Execution Flow - A unified interface for task orchestration across different task managers.
Instead of spreading workflow logic throughout your codebase, MageFlow centralizes task orchestration with a clean, unified API. Switch between task managers (Hatchet, Taskiq, etc.) without rewriting your orchestration code.
🔗 Task Chaining - Sequential workflows where tasks depend on previous completions 🐝 Task Swarms - Parallel execution with intelligent coordination 📞 Callback System - Robust success/error handling 🎯 Task Signatures - Flexible task definition with validation ⏯️ Lifecycle Control - Pause, resume, and monitor task execution 💾 Persistent State - Redis-backed state management with recovery
pip install mageflow[hatchet] # For Hatchet backendimport asyncio
import redis
from hatchet_sdk import Hatchet, ClientConfig
import mageflow
# Configure backend and Redis
config = ClientConfig(token="your-hatchet-token")
redis_client = redis.asyncio.from_url("redis://localhost", decode_responses=True)
hatchet_client = Hatchet(config=config)
# Create MageFlow instance
mf = mageflow.Mageflow(hatchet_client, redis_client=redis_client)from pydantic import BaseModel
class ProcessData(BaseModel):
data: str
@mf.task(name="process-data", input_validator=ProcessData)
async def process_data(msg: ProcessData):
return {"processed": msg.data}
@mf.task(name="send-notification")
async def send_notification(msg):
print(f"Notification sent: {msg}")
return {"status": "sent"}# Sequential execution
workflow = await mageflow.chain([
process_data_task,
send_notification_task
], name="data-pipeline")# Parallel execution
swarm = await mageflow.swarm([
process_user_task,
update_cache_task,
send_email_task
], task_name="user-onboarding")task_signature = await mageflow.sign(
task_name="process-order",
task_identifiers={"order_id": "12345"},
success_callbacks=[send_confirmation_task],
error_callbacks=[handle_error_task]
)A desktop app for visualizing your workflows as interactive task graphs. See the full docs for details.
Homebrew (macOS):
brew install imaginary-cherry/mageflow/mage-voyance # stable
brew install imaginary-cherry/mageflow/mage-voyance-beta # betaDirect download: GitHub Releases
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.