AnomalyArmor
Data observability for AI agents.
What it can do
- Get Alerts Summary: Get alert overview with counts by status and severity. Quick snapshot of triggered, acknowledged, and resolved alerts. For individual alerts use list_alerts.
- List Alerts: List recent alerts with severity, status, and asset info. Use update_alert to acknowledge, resolve, dismiss, or snooze alerts.
- List Inbox Alerts: List unresolved alerts in inbox view (triggered + acknowledged only). Focused view for triaging active alerts. Use update_alert to take action.
What data it sees
Do you need an account
No: the server works without sign-in
Data observability for AI agents. Query alerts, monitor freshness, investigate schema drift, and trace lineage across your data warehouse via 53 MCP tools.
How to connect
How to connect AnomalyArmor to Claude
The server address to paste into Claude settings:
https://armor--anomalyarmor-uib0.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect AnomalyArmor to ChatGPT
The server address to paste into ChatGPT settings:
https://armor--anomalyarmor-uib0.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect AnomalyArmor to Cursor
The server address to paste into Cursor settings:
https://armor--anomalyarmor-uib0.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (53)
Raw names from tools/list. Only developers need these.
| get_alerts_summary | Get alert overview with counts by status and severity. Quick snapshot of triggered, acknowledged, and resolved alerts. For individual alerts use list_alerts. |
| list_alerts | List recent alerts with severity, status, and asset info. Use update_alert to acknowledge, resolve, dismiss, or snooze alerts. |
| list_inbox_alerts | List unresolved alerts in inbox view (triggered + acknowledged only). Focused view for triaging active alerts. Use update_alert to take action. |
| update_alert | Update an alert's lifecycle status. Use list_alerts to find alert IDs. |
| list_alert_rules | List configured alert rules showing which events and severities each rule monitors. Use create_alert_rule to add new rules, list_destinations to find destination IDs for routing. |
| create_alert_rule | Create an alert rule to notify when data issues are detected. Routes to specified destinations (or default email). Use list_destinations to find destination IDs, list_assets for asset IDs. |
| manage_alert_rule | Manage an existing alert rule: get details, update, or delete. Use list_alert_rules to find rule IDs. |
| get_alert_trends | Get aggregate alert trend data across all assets. Shows alert volume and patterns over time for trend analysis. |
| get_alert_history | Get status change history for a specific alert. Shows the full lifecycle: when it was triggered, acknowledged, resolved, etc., with notes and who made each change. |
| get_api_key_info | View API key information (read-only). Cannot create or revoke keys. |
| list_assets | List all connected data assets (databases, warehouses). Returns asset IDs needed by most other tools. Start here to find asset UUIDs for use with check_freshness, list_metrics, explore, etc. |
| trigger_asset_discovery | Start schema discovery for an asset. Discovers all schemas, tables, columns, and metadata. Runs as background job. Use job_status() to track progress, then explore() to browse results. |
| create_asset | Connect a new data source to AnomalyArmor. After creating, use trigger_asset_discovery to discover tables and columns. |
| manage_asset | Get asset details or test its connection. |
| get_lineage | Get data lineage for an asset showing upstream sources and downstream consumers. Requires a dbt manifest to be uploaded via the UI or API. |
| job_status | Check status of an async job (discovery, intelligence generation, etc.). Returns a user_status field with simplified status: "in_progress", "completed", "failed", or "cancelled". Internal states like "pending" and "claimed" are mapped to "in_progress" so consumers don't need to handle them. |
| cancel_job | Cancel a running or pending background job. Use this when a long-running operation (intelligence generation, asset discovery) needs to be stopped. |
| create_tag | Create a new tag for labeling database objects. After creating, use apply_tags to attach it to tables or columns. |
| list_tags | List tags applied to database objects within an asset. Use explore to find valid object paths. |
| apply_tags | Apply tags to database objects. Supports single or cross-asset bulk tagging. Use explore to find valid object paths before tagging. |
| get_coverage | Get monitoring coverage score and tier information. Shows how well your data assets are monitored with scores, tiers, and per-feature breakdowns. |
| manage_coverage | Analyze coverage gaps or apply monitoring recommendations in batch. Use get_coverage to see current scores first. |
| list_destinations | List configured alert destinations (Slack, email, webhook). Returns ALL destinations by default, including disabled ones. Check the is_active field to see if a destination is enabled or disabled. Prefer re-enabling existing destinations over creating new ones. Returns destination IDs needed for create_alert_rule. Use setup_destination to create new destinations, or manage_destination to re-enable an inactive one. |
| setup_destination | Create an alert destination with auto-discovery. For Slack: provide channel_name (auto-discovers OAuth connection). For webhook: provide webhook_url. For email: provide email address. After creating, use create_alert_rule to route alerts to the destination. |
| manage_destination | Manage an existing alert destination: get details, update, delete, or test. Use list_destinations to find destination IDs. |
| manage_rule_destinations | Manage which destinations an alert rule routes to. |
| get_freshness_summary | Get freshness monitoring summary with counts of fresh, stale, and unknown tables. For a quick overview use health_summary. For per-table details use check_freshness. |
| check_freshness | Check freshness status for all monitored tables in an asset. Shows which tables are fresh, stale, or unknown. Use setup_freshness to add monitoring for new tables. |
| setup_freshness | Create freshness monitoring for one or more tables. Use explore to find table paths, recommend_freshness for suggested intervals. |
| list_freshness_schedules | List freshness monitoring schedules showing check intervals and status. Use setup_freshness to add new schedules. |
| manage_freshness_schedule | Update or delete a freshness monitoring schedule. Use list_freshness_schedules to find schedule IDs. |
| health_summary | Start here for a quick overview of data health. Returns aggregated status across alerts, freshness, schema drift, metrics, and validity. For per-table details, use check_freshness or list_schema_changes. |
| get_todays_briefing | Get today's data health briefing with key events and recommendations. Provides a daily summary of alerts fired, freshness issues, schema changes, and suggested actions. Good starting point for a morning check-in. |
| ask_question | Ask a natural language question about your data. Uses AI to analyze your schema, metadata, and monitoring data to answer. |
| generate_intelligence | Generate AI analysis for an asset. Analyzes schema, data patterns, and metadata to generate insights. Results are cached. Runs as a background job with progress reporting. |
| get_metrics_summary | Get metrics monitoring summary for an asset. Shows total metrics, active count, anomaly count, and per-type breakdown. |
| list_metrics | List data quality metrics configured for an asset. Shows metric type, table, column, and active status. Use create_metric to add new metrics. |
| create_metric | Create a data quality metric for a table. Use explore to find table paths and column names. |
| manage_metric | Manage an existing metric: get details, update, delete, trigger capture, or view snapshots. Use list_metrics to find metric IDs. |
| get_validity_summary | Get validity rules summary for an asset. Shows total rules, active count, failing count, and per-type breakdown. |
| list_validity_rules | List data validity rules configured for an asset. Shows rule type, table, column, and active status. Use create_validity_rule to add new rules. |
| create_validity_rule | Create a data validity rule for a specific column. Checks column values against defined constraints. Use explore to find table and column names. |
| manage_validity_rule | Manage an existing validity rule: get details, update, delete, check, or view results. Use list_validity_rules to find rule IDs. |
| recommend | Get AI-driven monitoring recommendations for an asset. Analyzes historical patterns, schema, and alert data to suggest monitoring improvements. |
| create_referential_check | Create a referential integrity check between two columns. Detects orphaned foreign key references. Use explore to find table and column names. |
| manage_referential | Manage referential integrity checks: view, update, delete, execute, or get results. Use create_referential_check to create new checks. |
| get_schema_summary | Get schema drift summary with total changes, unacknowledged count, and severity breakdown. For individual changes use list_schema_changes. |
| list_schema_changes | List recent schema changes showing change type, severity, and acknowledgment status. For summary counts use get_schema_summary. To enable monitoring use enable_schema_monitoring. |
| create_schema_baseline | Capture current schema as baseline for drift detection. Required before enable_schema_monitoring can detect changes. |
| enable_schema_monitoring | Enable schema drift monitoring for an asset. Detects column additions, removals, type changes, and other schema modifications. Use list_schema_changes to view detected changes. |
| disable_schema_monitoring | Disable schema drift monitoring for an asset. Keeps baseline for re-enabling. |
| get_schema_monitoring | Get schema monitoring configuration for an asset. Shows whether monitoring is enabled, schedule type, baseline info, and last check timestamp. |
| dry_run_schema | Preview schema drift detection without persisting. Compares current schema against baseline to show what changes would be detected. Use this to test before enabling monitoring. |