AnomalyArmor
Data observability for AI agents. Query alerts, monitor freshness, investigate schema drift, and trace lineage across your data warehouse via 53 MCP tools.
README
AnomalyArmor Agents
AI 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.
Version: 0.6.0 | Tools: 52 consolidated MCP tools | Skills: 14 slash commands
Quick Start
Option 1: Claude Code Plugin (Recommended)
# Install the plugin
claude plugin marketplace add anomalyarmor/agents
claude plugin install armor@anomalyarmor
# Or via skills.sh
npx skills add anomalyarmor/agents
Then use skills like:
/armor:status- Check data health/armor:alerts- View and manage alerts/armor:recommend- Get AI monitoring recommendations/armor:ask- Ask questions about your data
Option 2: MCP Server
Add to your MCP configuration (Claude Code, Cursor, etc.):
{
"mcpServers": {
"armor": {
"command": "uvx",
"args": ["armor-mcp"]
}
}
}
Prerequisites
- AnomalyArmor Account: Sign up at anomalyarmor.ai
- API Key: Generate at Settings > API Keys
- Configure: Set
ARMOR_API_KEYenv var or create~/.armor/config.yaml:
api_key: aa_live_your_key_here
Available Skills
| Skill | Description | Example |
|---|---|---|
/armor:start |
Guided onboarding for new users | "Help me get set up" |
/armor:status |
Health summary across all assets | "Is my data healthy?" |
/armor:connect |
Connect a new data source | "Connect my Snowflake warehouse" |
/armor:monitor |
Set up freshness and schema monitoring | "Monitor freshness for orders table" |
/armor:alerts |
Query and manage alerts | "What alerts fired yesterday?" |
/armor:ask |
Natural language Q&A about your data | "What tables contain customer data?" |
/armor:analyze |
Trigger AI analysis | "Analyze the finance schema" |
/armor:quality |
Data quality metrics and validity rules | "Add null check for customer_id" |
/armor:coverage |
Monitoring coverage analysis | "What tables have no monitoring?" |
/armor:recommend |
AI-driven monitoring recommendations | "What should I monitor?" |
/armor:tags |
Asset tagging and classification | "Tag this table as PII" |
/armor:investigate |
Root cause analysis | "Why is this table stale?" |
/armor:lineage |
Data lineage exploration | "What depends on this table?" |
/armor:profile |
Table profiling and stats | "Profile the orders table" |
MCP Tools (29 consolidated)
Tools follow a consolidated pattern: one tool per domain handles multiple operations via an action parameter, reducing context window usage while maintaining full functionality.
Health and Briefing
health_summary()- Overall data health across all assetsget_todays_briefing()- Daily AI briefing with alerts, freshness, and coverage gaps
Alerts (5 tools)
get_alerts_summary()- Alert counts by severity and statuslist_alerts(status, severity, asset_id, from_date, to_date)- Query alerts with filterslist_inbox_alerts(status, limit)- Unresolved alerts inboxupdate_alert(alert_id, action, ...)- Acknowledge, resolve, snooze, or comment on alertsget_alert_trends(period)- Alert trends over timeget_alert_history(alert_id)- Full history for a specific alert
Alert Rules (3 tools)
list_alert_rules(asset_id, is_active)- List configured rulescreate_alert_rule(asset_id, rule_type, ...)- Create new alert rulemanage_alert_rule(rule_id, action, ...)- Update, delete, enable/disable, or duplicate rules
Assets (3 tools)
list_assets(source, asset_type, search)- List monitored assetscreate_asset(name, source_type, connection_config)- Create data sourcemanage_asset(asset_id, action, ...)- Update, delete, test connection, or trigger discoverytrigger_asset_discovery(asset_id)- Start schema discovery
Freshness (4 tools)
get_freshness_summary()- Freshness overview across all assetscheck_freshness(asset_id, table_path)- Check specific table freshnesssetup_freshness(asset_id, table_path, check_interval, ...)- Create freshness schedulelist_freshness_schedules(asset_id)- List configured schedulesmanage_freshness_schedule(schedule_id, action, ...)- Update, delete, pause/resume schedules
Schema Drift (5 tools)
get_schema_summary()- Schema drift overviewlist_schema_changes(asset_id, severity, from_date, to_date)- List detected changescreate_schema_baseline(asset_id, description)- Create baselineenable_schema_monitoring(asset_id, schedule_type, notify_on)- Enable monitoringdisable_schema_monitoring(asset_id)- Disable monitoringget_schema_monitoring(asset_id)- View current monitoring configdry_run_schema(asset_id, schedule_type)- Test schema monitoring before enabling
Data Quality (4 tools)
get_metrics_summary(asset_id)/list_metrics(asset_id)- View metricscreate_metric(asset_id, metric_type, table_path, ...)- Create row count, null rate, or custom metricmanage_metric(metric_id, action, ...)- Update, delete, capture, or view snapshotsget_validity_summary(asset_id)/list_validity_rules(asset_id)- View validity rulescreate_validity_rule(asset_id, rule_type, table_path, ...)- Create validity rulemanage_validity_rule(rule_id, action, ...)- Update, delete, check, or view results
Referential Integrity (2 tools)
create_referential_check(asset_id, ...)- Create cross-table referential checkmanage_referential(check_id, action, ...)- List, delete, run, or view results
Destinations (4 tools)
list_destinations(destination_type)- List alert destinations (Slack, email, webhook)setup_destination(destination_type, ...)- Create Slack channel, email, or webhook destinationmanage_destination(destination_id, action, ...)- Update, delete, test, enable/disablemanage_rule_destinations(rule_id, action, ...)- Link/unlink destinations to alert rules
Coverage and Recommendations (3 tools)
get_coverage(asset_id)- Coverage tier and score for an assetmanage_coverage(asset_id, action)- Get next steps or apply recommended monitoringrecommend(asset_id, recommendation_type)- AI recommendations for freshness, metrics, coverage, or thresholds
Intelligence (2 tools)
ask_question(asset, question)- Natural language Q&Agenerate_intelligence(asset)- Trigger AI knowledge base generation
Catalog (4 tools)
get_lineage(asset_id, depth, direction)- Data lineage graphjob_status(job_id)- Check async job statuscreate_tag(asset_id, name, object_path, ...)- Create and assign tagslist_tags(asset_id)/apply_tags(asset_id, ...)- List and apply tags
API Keys
get_api_key_info()- View current API key details and permissions
Examples
Check Data Health
User: Is my data healthy?
Your data health status:
- Overall: WARNING
- 3 unresolved alerts (1 critical, 2 warning)
- 2 stale tables (orders, customers)
- 1 unacknowledged schema change
- Coverage: 65% (Tier 2: Protected)
Get AI Recommendations
User: What should I monitor on my Snowflake warehouse?
Based on your table patterns and update frequency:
1. orders (high traffic) - Add freshness check (hourly), row count metric
2. customers (PII) - Enable schema drift monitoring, add null checks
3. payments (financial) - Add freshness + row count + validity rules
Want me to set these up? I can configure all three in one go.
Daily Briefing
User: What happened overnight?
Your daily briefing:
- 2 new alerts: orders table stale (6h), schema change in users
- Coverage improved: finance schema now at Tier 3 (Verified)
- Recommendation: 4 tables still have no monitoring. Run /armor:recommend.
Root Cause Analysis
User: Why is the orders table stale?
Investigation results:
- Last update: 6 hours ago (expected: hourly)
- Upstream dependency: raw_orders was last updated 8 hours ago
- Likely cause: upstream ETL job failed or delayed
- Impact: 3 downstream dashboards affected
Troubleshooting
Authentication Failed
Error: No API key configured
Solution: Set ARMOR_API_KEY environment variable or create ~/.armor/config.yaml
MCP Server Not Found
Error: MCP server 'armor' not found
Solution:
- Restart your AI tool after config changes
- Verify uvx is installed:
uvx --version - Check MCP config syntax
Skills Not Loading
Solution:
- Verify plugin installed:
claude plugin list - Check skills directory exists
- Restart Claude Code
Development
See AGENTS.md for development guidelines.
Support
- Issues: GitHub Issues
- Docs: docs.anomalyarmor.ai
- Email: support@anomalyarmor.ai
License
MIT License - see LICENSE
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.