{
  "markdown": "# AnomalyArmor Agents\n\n[![PyPI](https://img.shields.io/pypi/v/armor-mcp.svg)](https://pypi.org/project/armor-mcp/)\n[![npm](https://img.shields.io/npm/v/@anomalyarmor/sdk.svg)](https://www.npmjs.com/package/@anomalyarmor/sdk)\n[![Glama](https://glama.ai/mcp/servers/anomalyarmor/agents/badges/score.svg)](https://glama.ai/mcp/servers/anomalyarmor/agents)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nAI skills and MCP server for AnomalyArmor data observability. Monitor data quality, detect schema drift, and manage alerts directly from Claude Code, Cursor, or any MCP-compatible AI tool.\n\n**Version**: 0.6.0 | **Tools**: 52 consolidated MCP tools | **Skills**: 14 slash commands\n\n## Quick Start\n\n### Option 1: Claude Code Plugin (Recommended)\n\n```bash\n# Install the plugin\nclaude plugin marketplace add anomalyarmor/agents\nclaude plugin install armor@anomalyarmor\n\n# Or via skills.sh\nnpx skills add anomalyarmor/agents\n```\n\nThen use skills like:\n- `/armor:status` - Check data health\n- `/armor:alerts` - View and manage alerts\n- `/armor:recommend` - Get AI monitoring recommendations\n- `/armor:ask` - Ask questions about your data\n\n### Option 2: MCP Server\n\nAdd to your MCP configuration (Claude Code, Cursor, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"armor\": {\n      \"command\": \"uvx\",\n      \"args\": [\"armor-mcp\"]\n    }\n  }\n}\n```\n\n## Prerequisites\n\n1. **AnomalyArmor Account**: Sign up at [anomalyarmor.ai](https://anomalyarmor.ai)\n2. **API Key**: Generate at Settings > API Keys\n3. **Configure**: Set `ARMOR_API_KEY` env var or create `~/.armor/config.yaml`:\n\n```yaml\napi_key: aa_live_your_key_here\n```\n\n## Available Skills\n\n| Skill | Description | Example |\n|-------|-------------|---------|\n| `/armor:start` | Guided onboarding for new users | \"Help me get set up\" |\n| `/armor:status` | Health summary across all assets | \"Is my data healthy?\" |\n| `/armor:connect` | Connect a new data source | \"Connect my Snowflake warehouse\" |\n| `/armor:monitor` | Set up freshness and schema monitoring | \"Monitor freshness for orders table\" |\n| `/armor:alerts` | Query and manage alerts | \"What alerts fired yesterday?\" |\n| `/armor:ask` | Natural language Q&A about your data | \"What tables contain customer data?\" |\n| `/armor:analyze` | Trigger AI analysis | \"Analyze the finance schema\" |\n| `/armor:quality` | Data quality metrics and validity rules | \"Add null check for customer_id\" |\n| `/armor:coverage` | Monitoring coverage analysis | \"What tables have no monitoring?\" |\n| `/armor:recommend` | AI-driven monitoring recommendations | \"What should I monitor?\" |\n| `/armor:tags` | Asset tagging and classification | \"Tag this table as PII\" |\n| `/armor:investigate` | Root cause analysis | \"Why is this table stale?\" |\n| `/armor:lineage` | Data lineage exploration | \"What depends on this table?\" |\n| `/armor:profile` | Table profiling and stats | \"Profile the orders table\" |\n\n## MCP Tools (29 consolidated)\n\nTools follow a consolidated pattern: one tool per domain handles multiple operations via an `action` parameter, reducing context window usage while maintaining full functionality.\n\n### Health and Briefing\n- `health_summary()` - Overall data health across all assets\n- `get_todays_briefing()` - Daily AI briefing with alerts, freshness, and coverage gaps\n\n### Alerts (5 tools)\n- `get_alerts_summary()` - Alert counts by severity and status\n- `list_alerts(status, severity, asset_id, from_date, to_date)` - Query alerts with filters\n- `list_inbox_alerts(status, limit)` - Unresolved alerts inbox\n- `update_alert(alert_id, action, ...)` - Acknowledge, resolve, snooze, or comment on alerts\n- `get_alert_trends(period)` - Alert trends over time\n- `get_alert_history(alert_id)` - Full history for a specific alert\n\n### Alert Rules (3 tools)\n- `list_alert_rules(asset_id, is_active)` - List configured rules\n- `create_alert_rule(asset_id, rule_type, ...)` - Create new alert rule\n- `manage_alert_rule(rule_id, action, ...)` - Update, delete, enable/disable, or duplicate rules\n\n### Assets (3 tools)\n- `list_assets(source, asset_type, search)` - List monitored assets\n- `create_asset(name, source_type, connection_config)` - Create data source\n- `manage_asset(asset_id, action, ...)` - Update, delete, test connection, or trigger discovery\n- `trigger_asset_discovery(asset_id)` - Start schema discovery\n\n### Freshness (4 tools)\n- `get_freshness_summary()` - Freshness overview across all assets\n- `check_freshness(asset_id, table_path)` - Check specific table freshness\n- `setup_freshness(asset_id, table_path, check_interval, ...)` - Create freshness schedule\n- `list_freshness_schedules(asset_id)` - List configured schedules\n- `manage_freshness_schedule(schedule_id, action, ...)` - Update, delete, pause/resume schedules\n\n### Schema Drift (5 tools)\n- `get_schema_summary()` - Schema drift overview\n- `list_schema_changes(asset_id, severity, from_date, to_date)` - List detected changes\n- `create_schema_baseline(asset_id, description)` - Create baseline\n- `enable_schema_monitoring(asset_id, schedule_type, notify_on)` - Enable monitoring\n- `disable_schema_monitoring(asset_id)` - Disable monitoring\n- `get_schema_monitoring(asset_id)` - View current monitoring config\n- `dry_run_schema(asset_id, schedule_type)` - Test schema monitoring before enabling\n\n### Data Quality (4 tools)\n- `get_metrics_summary(asset_id)` / `list_metrics(asset_id)` - View metrics\n- `create_metric(asset_id, metric_type, table_path, ...)` - Create row count, null rate, or custom metric\n- `manage_metric(metric_id, action, ...)` - Update, delete, capture, or view snapshots\n- `get_validity_summary(asset_id)` / `list_validity_rules(asset_id)` - View validity rules\n- `create_validity_rule(asset_id, rule_type, table_path, ...)` - Create validity rule\n- `manage_validity_rule(rule_id, action, ...)` - Update, delete, check, or view results\n\n### Referential Integrity (2 tools)\n- `create_referential_check(asset_id, ...)` - Create cross-table referential check\n- `manage_referential(check_id, action, ...)` - List, delete, run, or view results\n\n### Destinations (4 tools)\n- `list_destinations(destination_type)` - List alert destinations (Slack, email, webhook)\n- `setup_destination(destination_type, ...)` - Create Slack channel, email, or webhook destination\n- `manage_destination(destination_id, action, ...)` - Update, delete, test, enable/disable\n- `manage_rule_destinations(rule_id, action, ...)` - Link/unlink destinations to alert rules\n\n### Coverage and Recommendations (3 tools)\n- `get_coverage(asset_id)` - Coverage tier and score for an asset\n- `manage_coverage(asset_id, action)` - Get next steps or apply recommended monitoring\n- `recommend(asset_id, recommendation_type)` - AI recommendations for freshness, metrics, coverage, or thresholds\n\n### Intelligence (2 tools)\n- `ask_question(asset, question)` - Natural language Q&A\n- `generate_intelligence(asset)` - Trigger AI knowledge base generation\n\n### Catalog (4 tools)\n- `get_lineage(asset_id, depth, direction)` - Data lineage graph\n- `job_status(job_id)` - Check async job status\n- `create_tag(asset_id, name, object_path, ...)` - Create and assign tags\n- `list_tags(asset_id)` / `apply_tags(asset_id, ...)` - List and apply tags\n\n### API Keys\n- `get_api_key_info()` - View current API key details and permissions\n\n## Examples\n\n### Check Data Health\n\n```\nUser: Is my data healthy?\n\nYour data health status:\n- Overall: WARNING\n- 3 unresolved alerts (1 critical, 2 warning)\n- 2 stale tables (orders, customers)\n- 1 unacknowledged schema change\n- Coverage: 65% (Tier 2: Protected)\n```\n\n### Get AI Recommendations\n\n```\nUser: What should I monitor on my Snowflake warehouse?\n\nBased on your table patterns and update frequency:\n1. orders (high traffic) - Add freshness check (hourly), row count metric\n2. customers (PII) - Enable schema drift monitoring, add null checks\n3. payments (financial) - Add freshness + row count + validity rules\n\nWant me to set these up? I can configure all three in one go.\n```\n\n### Daily Briefing\n\n```\nUser: What happened overnight?\n\nYour daily briefing:\n- 2 new alerts: orders table stale (6h), schema change in users\n- Coverage improved: finance schema now at Tier 3 (Verified)\n- Recommendation: 4 tables still have no monitoring. Run /armor:recommend.\n```\n\n### Root Cause Analysis\n\n```\nUser: Why is the orders table stale?\n\nInvestigation results:\n- Last update: 6 hours ago (expected: hourly)\n- Upstream dependency: raw_orders was last updated 8 hours ago\n- Likely cause: upstream ETL job failed or delayed\n- Impact: 3 downstream dashboards affected\n```\n\n## Troubleshooting\n\n### Authentication Failed\n\n```\nError: No API key configured\n```\n\n**Solution**: Set `ARMOR_API_KEY` environment variable or create `~/.armor/config.yaml`\n\n### MCP Server Not Found\n\n```\nError: MCP server 'armor' not found\n```\n\n**Solution**:\n1. Restart your AI tool after config changes\n2. Verify uvx is installed: `uvx --version`\n3. Check MCP config syntax\n\n### Skills Not Loading\n\n**Solution**:\n1. Verify plugin installed: `claude plugin list`\n2. Check skills directory exists\n3. Restart Claude Code\n\n## Development\n\nSee [AGENTS.md](AGENTS.md) for development guidelines.\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/anomalyarmor/agents/issues)\n- **Docs**: [docs.anomalyarmor.ai](https://docs.anomalyarmor.ai)\n- **Email**: support@anomalyarmor.ai\n\n## License\n\nMIT License - see [LICENSE](LICENSE)\n",
  "bytes": 9394,
  "sha": "89737892bffa0eea94aeb9ca4e6ef95cea4427f735a9f5641e9e464e778088a3",
  "repo_slug": "anomalyarmor/agents",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_ai_anomalyarmor_armor_mcp_afb3c9b4/readme"
}