{
  "$schema": "https://a2a-protocol.org/schemas/agent-card/v0.2.json",
  "name": "AnomalyArmor",
  "description": "Data observability agent that monitors schema changes, freshness, and quality across your data warehouse. Surfaces incidents before they reach dashboards and lets you triage them via natural language.",
  "url": "https://www.anomalyarmor.ai",
  "documentationUrl": "https://docs.anomalyarmor.ai",
  "provider": {
    "organization": "AnomalyArmor",
    "url": "https://www.anomalyarmor.ai"
  },
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "stateTransitionHistory": true
  },
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["text/plain", "application/json", "text/markdown"],
  "skills": [
    {
      "id": "monitor-data-health",
      "name": "Monitor data health",
      "description": "Check overall health of your data warehouse: stale tables, schema drift, quality anomalies, and active incidents.",
      "tags": ["observability", "monitoring", "data-quality"],
      "examples": [
        "What's the health of my warehouse?",
        "Show me anything stale in the gold schema.",
        "Any new schema changes this week?"
      ]
    },
    {
      "id": "investigate-incident",
      "name": "Investigate an incident",
      "description": "Trace a freshness or schema-drift incident back to its root cause and identify all downstream impact.",
      "tags": ["incident-response", "lineage", "root-cause"],
      "examples": [
        "Why is gold.fact_orders stale?",
        "What downstream tables depend on this column?",
        "When did this schema change land?"
      ]
    },
    {
      "id": "configure-monitoring",
      "name": "Set up monitoring",
      "description": "Configure freshness SLAs, schema baselines, and validity rules for new tables or schemas.",
      "tags": ["configuration", "freshness", "schema"],
      "examples": [
        "Monitor every table in the analytics schema hourly.",
        "Add a NOT NULL check on customer_email.",
        "Capture a schema baseline for staging."
      ]
    },
    {
      "id": "manage-alerts",
      "name": "Manage alerts and destinations",
      "description": "Acknowledge, resolve, snooze incidents and route alerts to Slack, email, or webhooks.",
      "tags": ["alerts", "notifications", "incident-management"],
      "examples": [
        "Resolve incident #4521 with a note that the column removal was intentional.",
        "Route critical freshness alerts for the gold schema to #data-incidents.",
        "Snooze this alert for two hours."
      ]
    }
  ],
  "interfaces": [
    {
      "transport": "MCP",
      "url": "https://mcp.anomalyarmor.ai/mcp",
      "description": "Streamable HTTP MCP server with OAuth authentication"
    },
    {
      "transport": "REST",
      "url": "https://app.anomalyarmor.ai/api/v1",
      "description": "REST API; Bearer auth via aa_live_* API keys"
    }
  ],
  "authentication": {
    "schemes": ["oauth2", "apiKey"],
    "oauthProtectedResource": "https://app.anomalyarmor.ai/.well-known/oauth-protected-resource"
  }
}
