Every MAMA pack is defined by a single JSON file. This file describes the pack metadata, agents, integrations, and configuration.
// pack.json { "id": "pack_sales_pipeline_pro", "name": "Sales Pipeline Pro", "version": "1.0.0", "description": "End-to-end sales pipeline automation", "category": "Sales", "industryTags": ["SaaS", "Agency"], "author": "your-handle", "agents": [ { "id": "lead_qualifier", "name": "Lead Qualifier", "model": "claude-haiku", "systemPrompt": "You are a lead qualification agent...", "tools": ["crm_read", "crm_write"], "schedule": "*/15 * * * *" } ], "integrations": ["HubSpot", "Slack"], "config": { "maxConcurrentAgents": 3, "costBudgetUsd": 5.0, "retryPolicy": "exponential" } }
| Field | Type | Status | Description |
|---|---|---|---|
id |
string | Required |
Unique pack identifier. Use snake_case with
pack_ prefix.
|
name |
string | Required | Human-readable pack name. Max 50 chars. |
version |
string | Required | Semver version (e.g. "1.0.0"). |
description |
string | Required | What the pack does. 1-3 sentences. |
category |
string | Required | Primary category (Sales, Finance, Legal, etc.). |
industryTags |
string[] | Optional | Industry verticals: Real Estate, Healthcare, Legal, Finance, E-commerce, SaaS, Agency. |
author |
string | Required | Author handle or org name. |
agents |
Agent[] | Required | Array of agent definitions (see below). |
integrations |
string[] | Optional | Required third-party integrations. |
config |
object | Optional | Runtime configuration overrides. |
certification |
string | Auto | Set during review: "official", "verified", or "community". |
Each agent in the agents array describes a single
autonomous worker.
| Field | Type | Description |
|---|---|---|
id |
string | Unique agent ID within the pack. |
name |
string | Human-readable agent name. |
model |
string | LLM model: "claude-haiku", "claude-sonnet", "claude-opus". |
systemPrompt |
string | System prompt defining agent behavior. |
tools |
string[] | Tool access list (e.g. "crm_read", "email_send"). |
schedule |
string | Cron expression for scheduled runs. Omit for on-demand. |
maxTokens |
number | Max output tokens per run. Default: 4096. |
Use the MAMA CLI to test your pack locally before submission:
# Install the MAMA CLI npm install -g @oliwoods/mama-cli # Validate pack schema mama pack validate ./pack.json # Run a dry-run (no real API calls) mama pack test ./pack.json --dry-run # Run with mock integrations mama pack test ./pack.json --mock-integrations # Run a single agent from the pack mama agent run ./pack.json --agent lead_qualifier --mock
mama pack lint ./pack.json to
catch common issues like missing fields, invalid cron expressions, and
overly broad tool access.
/api/marketplace/submit.
Review typically takes 2-3 business days. You will receive a Slack notification when your pack is approved or if changes are needed.
| Badge | Level | Requirements |
|---|---|---|
| MAMA Official | Gold | Built and maintained by the MAMA team. Full test coverage, SLA-backed. |
| Verified | Silver | Community-built, reviewed and approved. Meets security and quality standards. |
| Community | Bronze | Community-built, basic validation passed. Use at your own discretion. |
POST /api/marketplace/submit
Content-Type: application/json
{
"name": "My Pack",
"description": "...",
"category": "Sales",
"agents": [...],
"integrations": [...]
}
// Response
{
"success": true,
"submissionId": "sub_abc123",
"status": "queued"
}
GET /api/marketplace/analytics // Response { "totalPacks": 42, "installsByPack": { ... }, "mostPopularCategory": "Sales", "trendingPacks": [...] }
GET /api/marketplace/health // Response { "packs": [ { "name": "Sales", "uptimePercent": 99.7, "avgResponseMs": 340, "errorRate": 0.3 } ] }