AnomalyArmor
PYPI · ARMOR-MCP · 2 COMPONENTS · SCANNED SEP 20
Data observability tools for engineering teams: alerts, freshness, schema drift, lineage, quality.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 3 of 29 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 113 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability88
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 5788 tokens (~101/item across 57 items; 53 tools + 4 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 53 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 55 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the AnomalyArmor MCP server?
AnomalyArmor runs locally as a PyPI package, launched with uvx armor-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · armor-mcp
claude mcp add ai-anomalyarmor-armor-mcp -- uvx armor-mcp
{
"mcpServers": {
"ai-anomalyarmor-armor-mcp": {
"command": "uvx",
"args": [
"armor-mcp"
]
}
}
} {
"servers": {
"ai-anomalyarmor-armor-mcp": {
"command": "uvx",
"args": [
"armor-mcp"
]
}
}
} codex mcp add ai-anomalyarmor-armor-mcp -- uvx armor-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-anomalyarmor-armor-mcp": {
"type": "local",
"command": [
"uvx",
"armor-mcp"
],
"enabled": true
}
}
} openclaw mcp add ai-anomalyarmor-armor-mcp --command uvx --arg armor-mcp
mcp_servers:
ai-anomalyarmor-armor-mcp:
command: "uvx"
args: ["armor-mcp"] {
"McpServers": {
"ai-anomalyarmor-armor-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"armor-mcp"
]
}
}
} assistant mcp add ai-anomalyarmor-armor-mcp -t stdio -c uvx -a armor-mcp
{
"mcpServers": {
"ai-anomalyarmor-armor-mcp": {
"command": "uvx",
"args": [
"armor-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 0
- Security disclosure: unverified → fail ▼ functional
- 19 Sept 26 0
- Security disclosure: fail → unverified ▼ functional
- 18 Sept 26 −3
- Stability: pass → 0.77 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 −3
- Stability: pass → 0.80 functional
- 10 Sept 26 +1
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/armor-mcp@0.6.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 29 packages
| Packages resolved | 29 |
|---|---|
| Stale | 3 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
apply_tags Apply Tags ~130
Apply tags to database objects. Supports single or cross-asset bulk tagging. Use explore to find valid object paths before tagging.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| asset_ids | – | – | Apply tags across multiple assets (for bulk apply, overrides asset_id) |
| object_path | – | – | Full path to the object (e.g., "public.users.email") |
| object_type | string | – | Type of database object: "column", "table", or "schema" |
| tags | – | – | List of tag names to apply (e.g., ["pii", "revenue-critical"]) |
No output schema declared.
No examples provided.
ask_question Ask Question ~108
Ask a natural language question about your data. Uses AI to analyze your schema, metadata, and monitoring data to answer.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | – | – | Asset UUID to scope the question (from list_assets). Omit for all assets. |
| include_lineage | boolean | – | Include lineage info in context (default False) |
| include_schema | boolean | – | Include schema info in context (default True) |
| question | string | yes | Natural language question (e.g., "What tables contain customer PII?") |
No output schema declared.
No examples provided.
cancel_job Cancel Job ~58
Cancel a running or pending background job. Use this when a long-running operation (intelligence generation, asset discovery) needs to be stopped.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | Job UUID (from trigger_asset_discovery, generate_intelligence, etc.) |
No output schema declared.
No examples provided.
check_freshness Check Freshness ~74
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| stale_only | boolean | – | Only return stale tables (default False) |
No output schema declared.
No examples provided.
create_alert_rule Create Alert Rule ~190
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_ids | – | – | UUIDs of assets to scope the rule to (from list_assets). Omit for all. |
| description | – | – | Optional description of the rule's purpose |
| destination_ids | – | – | UUIDs of destinations to route alerts to (from list_destinations). Falls back to default email if omitted. |
| event_types | – | – | Event types to monitor: "freshness_stale", "schema_drift", "metric_anomaly", "validity_failure", "custom_sql". Omit for all. |
| name | string | yes | Human-readable name for the alert rule |
| severities | – | – | Severity levels to trigger on: "info", "warning", "critical". Omit for all. |
No output schema declared.
No examples provided.
create_asset Create Asset ~178
Connect a new data source to AnomalyArmor. After creating, use trigger_asset_discovery to discover tables and columns.
| Name | Type | Req | Description |
|---|---|---|---|
| connection_config | object | yes | Connection details (varies by source_type). Examples: PostgreSQL: {"host": "...", "port": 5432, "database": "...", "username": "...", "password": "..."} Snowflake… |
| description | – | – | Optional description of the data source |
| name | string | yes | Display name for the asset (e.g., "Production PostgreSQL") |
| source_type | string | yes | Database type: "postgresql", "snowflake", "bigquery", "redshift", "mysql", "databricks" |
No output schema declared.
No examples provided.
create_metric Create Metric ~120
Create a data quality metric for a table. Use explore to find table paths and column names.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| column_name | – | – | Column to monitor (required for column-level metrics like null_rate, mean, etc.) |
| metric_type | string | yes | Type of metric: "row_count", "null_rate", "unique_rate", "min", "max", "mean", "stddev" |
| table_path | string | yes | Full table path (e.g., "public.orders") |
No output schema declared.
No examples provided.
create_referential_check Create Referential Check ~161
Create a referential integrity check between two columns. Detects orphaned foreign key references. Use explore to find table and column names.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| name | – | – | Human-readable name (auto-generated if omitted) |
| severity | string | – | Alert severity: "warning" (default), "error", "critical" |
| source_column | string | yes | Foreign key column (e.g., "customer_id") |
| source_table | string | yes | Table containing the foreign key (e.g., "public.orders") |
| target_column | string | yes | Referenced column (e.g., "id") |
| target_table | string | yes | Referenced table (e.g., "public.customers") |
No output schema declared.
No examples provided.
create_schema_baseline Create Schema Baseline ~53
Capture current schema as baseline for drift detection. Required before enable_schema_monitoring can detect changes.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| description | – | – | Optional description for the baseline |
No output schema declared.
No examples provided.
create_tag Create Tag ~84
Create a new tag for labeling database objects. After creating, use apply_tags to attach it to tables or columns.
| Name | Type | Req | Description |
|---|---|---|---|
| color | – | – | Optional hex color code (e.g., "#FF5733") |
| description | – | – | Optional description of the tag's purpose |
| name | string | yes | Tag name (e.g., "pii", "revenue-critical", "deprecated") |
No output schema declared.
No examples provided.
create_validity_rule Create Validity Rule ~209
Create a data validity rule for a specific column. Checks column values against defined constraints. Use explore to find table and column names.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| column_name | string | yes | Column to validate |
| name | – | – | Human-readable rule name (auto-generated if omitted) |
| rule_config | object | yes | Config for the rule type. Examples: {"pattern": "^[A-Z]"} for regex_match, {"values": ["a","b"]} for allowed_values, {"min": 0, "max": 100} for range_bounds |
| rule_type | string | yes | Type of check: "regex_match", "allowed_values", "range_bounds", "format", "length_bounds" |
| severity | string | – | Alert severity when rule fails: "error" (default), "warning", "critical" |
| table_path | string | yes | Full table path (e.g., "public.users") |
No output schema declared.
No examples provided.
disable_schema_monitoring Disable Schema Monitoring ~39
Disable schema drift monitoring for an asset. Keeps baseline for re-enabling.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
No output schema declared.
No examples provided.
dry_run_schema Dry Run Schema ~78
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| schedule_type | string | – | Schedule for alert estimation: "1h", "1d", "1w" |
No output schema declared.
No examples provided.
enable_schema_monitoring Enable Schema Monitoring ~111
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| auto_create_baseline | boolean | – | Create baseline if none exists (default True) |
| schedule_type | string | – | How often to check for drift: "5m", "1h", "6h", "1d", "1w" |
No output schema declared.
No examples provided.
generate_intelligence Generate Intelligence ~73
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| force_refresh | boolean | – | Force regeneration even if cached (default False) |
No output schema declared.
No examples provided.
get_alert_history Get Alert History ~57
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.
| Name | Type | Req | Description |
|---|---|---|---|
| alert_id | string | yes | Alert UUID (from list_alerts) |
No output schema declared.
No examples provided.
get_alert_trends Get Alert Trends ~61
Get aggregate alert trend data across all assets. Shows alert volume and patterns over time for trend analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | – | Time period: "24h", "7d", "30d", "90d" (default "7d") |
No output schema declared.
No examples provided.
get_alerts_summary Get Alerts Summary ~39
Get alert overview with counts by status and severity. Quick snapshot of triggered, acknowledged, and resolved alerts. For individual alerts use list_alerts.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_api_key_info Get Api Key Info ~91
View API key information (read-only). Cannot create or revoke keys.
| Name | Type | Req | Description |
|---|---|---|---|
| key_id | – | – | API key UUID (required for view="detail") |
| view | string | – | What to show: "list" - list all API keys with names and last-used dates "detail" - get details of a specific key (requires key_id) "usage" - show API usage statistics |
No output schema declared.
No examples provided.
get_coverage Get Coverage ~89
Get monitoring coverage score and tier information. Shows how well your data assets are monitored with scores, tiers, and per-feature breakdowns.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | – | – | Asset UUID (required when scope="asset") |
| scope | string | – | Coverage scope: "company" - company-wide rollup across all assets "asset" - per-asset score with feature breakdown (requires asset_id) |
No output schema declared.
No examples provided.
get_freshness_summary Get Freshness Summary ~45
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_lineage Get Lineage ~115
Get data lineage for an asset showing upstream sources and downstream consumers. Requires a dbt manifest to be uploaded via the UI or API.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| depth | integer | – | How many hops to traverse (default 2) |
| direction | string | – | Lineage direction: "upstream", "downstream", or "both" (default "both") |
| list_all | boolean | – | List all lineage entries for the asset instead of graph view (default False) |
No output schema declared.
No examples provided.
get_metrics_summary Get Metrics Summary ~46
Get metrics monitoring summary for an asset. Shows total metrics, active count, anomaly count, and per-type breakdown.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
No output schema declared.
No examples provided.
get_schema_monitoring Get Schema Monitoring ~49
Get schema monitoring configuration for an asset. Shows whether monitoring is enabled, schedule type, baseline info, and last check timestamp.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
No output schema declared.
No examples provided.
get_schema_summary Get Schema Summary ~35
Get schema drift summary with total changes, unacknowledged count, and severity breakdown. For individual changes use list_schema_changes.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_todays_briefing Get Todays Briefing ~51
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_validity_summary Get Validity Summary ~47
Get validity rules summary for an asset. Shows total rules, active count, failing count, and per-type breakdown.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
No output schema declared.
No examples provided.
health_summary Health Summary ~50
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
job_status Job Status ~95
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.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | Job UUID (from trigger_asset_discovery, generate_intelligence, etc.) |
No output schema declared.
No examples provided.
list_alert_rules List Alert Rules ~72
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.
| Name | Type | Req | Description |
|---|---|---|---|
| active_only | boolean | – | Only return active rules (default True) |
| asset_id | – | – | Filter by asset UUID (from list_assets) |
No output schema declared.
No examples provided.
list_alerts List Alerts ~160
List recent alerts with severity, status, and asset info. Use update_alert to acknowledge, resolve, dismiss, or snooze alerts.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | – | – | Filter by asset UUID (from list_assets) |
| from_date | – | – | Start of date range (ISO 8601, e.g., "2026-01-29T00:00:00Z") |
| limit | integer | – | Maximum results (default 25, max 100) |
| severity | – | – | Filter by severity ("info", "warning", "critical") |
| status | – | – | Filter by status ("triggered", "acknowledged", "resolved", "dismissed", "snoozed") |
| to_date | – | – | End of date range (ISO 8601) |
No output schema declared.
No examples provided.
list_assets List Assets ~86
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_type | – | – | Filter by type ("postgresql", "snowflake", "bigquery", etc.) |
| limit | integer | – | Maximum results (default 25) |
No output schema declared.
No examples provided.
list_destinations List Destinations ~122
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.
| Name | Type | Req | Description |
|---|---|---|---|
| active_only | boolean | – | Only return active destinations (default False, shows all) |
| destination_type | – | – | Filter by type: "slack", "webhook", "email" |
No output schema declared.
No examples provided.
list_freshness_schedules List Freshness Schedules ~59
List freshness monitoring schedules showing check intervals and status. Use setup_freshness to add new schedules.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | – | – | Filter by asset UUID (from list_assets) |
| limit | integer | – | Maximum results (default 25) |
No output schema declared.
No examples provided.
list_inbox_alerts List Inbox Alerts ~82
List unresolved alerts in inbox view (triggered + acknowledged only). Focused view for triaging active alerts. Use update_alert to take action.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | – | – | Filter by asset UUID (from list_assets) |
| limit | integer | – | Maximum results (default 25) |
| severity | – | – | Filter by severity ("info", "warning", "critical") |
No output schema declared.
No examples provided.
list_metrics List Metrics ~64
List data quality metrics configured for an asset. Shows metric type, table, column, and active status. Use create_metric to add new metrics.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| limit | integer | – | Maximum results (default 25) |
No output schema declared.
No examples provided.
list_schema_changes List Schema Changes ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | – | – | Filter by asset UUID (from list_assets) |
| limit | integer | – | Maximum results (default 25) |
| severity | – | – | Filter by severity: "critical", "warning", "info" |
| unacknowledged_only | boolean | – | Only return unacknowledged changes (default false) |
No output schema declared.
No examples provided.
list_tags List Tags ~61
List tags applied to database objects within an asset. Use explore to find valid object paths.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| object_path | – | – | Filter to tags on a specific object (e.g., "public.users.email") |
No output schema declared.
No examples provided.
list_validity_rules List Validity Rules ~68
List data validity rules configured for an asset. Shows rule type, table, column, and active status. Use create_validity_rule to add new rules.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| limit | integer | – | Maximum results (default 25) |
No output schema declared.
No examples provided.
manage_alert_rule Manage Alert Rule ~123
Manage an existing alert rule: get details, update, or delete. Use list_alert_rules to find rule IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation: "get", "update", or "delete" |
| description | – | – | New description (for update) |
| event_types | – | – | New event types (for update) |
| is_active | – | – | Enable/disable rule (for update) |
| name | – | – | New name (for update) |
| rule_id | string | yes | Alert rule UUID (from list_alert_rules) |
| severities | – | – | New severity levels (for update) |
No output schema declared.
No examples provided.
manage_asset Manage Asset ~69
Get asset details or test its connection.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation to perform: "get" - get full asset details including schema, table count, etc. "test" - test the database connection is working |
| asset_id | string | yes | Asset UUID (from list_assets) |
No output schema declared.
No examples provided.
manage_coverage Manage Coverage ~146
Analyze coverage gaps or apply monitoring recommendations in batch. Use get_coverage to see current scores first.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation to perform: "gaps" - list unmonitored tables ranked by importance "apply" - apply recommended monitoring in batch |
| asset_id | string | yes | Asset UUID (from list_assets) |
| limit | integer | – | Maximum gap recommendations (for gaps action, default 20) |
| table_paths | – | – | Limit to specific tables (for apply action, omit for all) |
| types | – | – | Monitoring types to apply: "freshness", "metrics", "schema_drift" (for apply action, omit for all) |
No output schema declared.
No examples provided.
manage_destination Manage Destination ~114
Manage an existing alert destination: get details, update, delete, or test. Use list_destinations to find destination IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation: "get", "update", "delete", or "test" |
| config | – | – | New config dict (for update, e.g., {"webhook_url": "..."}) |
| destination_id | string | yes | Destination UUID (from list_destinations) |
| is_active | – | – | Enable/disable (for update) |
| name | – | – | New display name (for update) |
No output schema declared.
No examples provided.
manage_freshness_schedule Manage Freshness Schedule ~138
Update or delete a freshness monitoring schedule. Use list_freshness_schedules to find schedule IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation: "update" or "delete" |
| check_interval | – | – | New check interval (for update) |
| expected_interval_hours | – | – | New staleness threshold (for update) |
| freshness_column | – | – | New column to check (for update) |
| is_active | – | – | Enable/disable schedule (for update) |
| monitoring_mode | – | – | New mode: "auto_learn" or "explicit" (for update) |
| schedule_id | string | yes | Schedule UUID (from list_freshness_schedules) |
No output schema declared.
No examples provided.
manage_metric Manage Metric ~187
Manage an existing metric: get details, update, delete, trigger capture, or view snapshots. Use list_metrics to find metric IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation: "get" - get metric details and current value "update" - update metric settings "delete" - delete the metric "capture" - trigger an immediate metric capture "snapshots"… |
| asset_id | string | yes | Asset UUID (from list_assets) |
| capture_interval | – | – | New capture interval (for update) |
| is_active | – | – | Enable/disable metric (for update) |
| limit | integer | – | Max snapshots to return (for snapshots action, default 100) |
| metric_id | string | yes | Metric UUID (from list_metrics) |
| sensitivity | – | – | Anomaly detection sensitivity 0.0-1.0 (for update) |
No output schema declared.
No examples provided.
manage_referential Manage Referential ~231
Manage referential integrity checks: view, update, delete, execute, or get results. Use create_referential_check to create new checks.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation to perform: "summary" - get overview of all checks for the asset "list" - list all checks for the asset "get" - get details of a specific check (requires check_id) "update"… |
| asset_id | string | yes | Asset UUID (from list_assets) |
| check_id | – | – | Check UUID (required for get/update/delete/execute/results) |
| is_active | – | – | Enable/disable (for update action) |
| limit | integer | – | Max results (for list/results actions, default 25) |
| name | – | – | New name (for update action) |
| severity | – | – | New severity (for update action) |
No output schema declared.
No examples provided.
manage_rule_destinations Manage Rule Destinations ~116
Manage which destinations an alert rule routes to.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation: "list" - list destinations linked to this rule "link" - link destinations to the rule (requires destination_ids) "unlink" - unlink a destination from the rule (requires destina… |
| destination_id | – | – | Single destination UUID to unlink (for unlink action) |
| destination_ids | – | – | Destination UUIDs to link (for link action) |
| rule_id | string | yes | Alert rule UUID (from list_alert_rules) |
No output schema declared.
No examples provided.
manage_validity_rule Manage Validity Rule ~190
Manage an existing validity rule: get details, update, delete, check, or view results. Use list_validity_rules to find rule IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Operation: "get" - get rule details "update" - update rule settings "delete" - delete the rule "check" - run the validity check now "results" - view recent check results |
| asset_id | string | yes | Asset UUID (from list_assets) |
| is_active | – | – | Enable/disable (for update) |
| limit | integer | – | Max results to return (for results action, default 25) |
| name | – | – | New name (for update) |
| rule_config | – | – | New rule config (for update) |
| rule_id | string | yes | Validity rule UUID (from list_validity_rules) |
| severity | – | – | New severity (for update) |
No output schema declared.
No examples provided.
recommend Recommend ~208
Get AI-driven monitoring recommendations for an asset. Analyzes historical patterns, schema, and alert data to suggest monitoring improvements.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_id | string | yes | Asset UUID (from list_assets) |
| days | integer | – | Historical window in days (for thresholds, default 30) |
| include_monitored | boolean | – | Include already-monitored tables (for freshness, default False) |
| limit | integer | – | Maximum recommendations (default 20) |
| min_confidence | number | – | Minimum confidence threshold 0.0-1.0 (for freshness/metrics, default 0.5) |
| recommendation_type | string | yes | Type of recommendation: "freshness" - suggest tables and thresholds for freshness monitoring "metrics" - suggest quality metrics based on column analysis "coverage" - identify unmonitored… |
| table_path | – | – | Filter to specific table (for metrics) |
No output schema declared.
No examples provided.
setup_destination Setup Destination ~135
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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_name | – | – | Slack channel name without # (required for Slack) |
| destination_type | string | yes | Type of destination: "slack", "webhook", or "email" |
| – | – | Email address (required for email) | |
| name | – | – | Display name for the destination (auto-generated if omitted) |
| webhook_url | – | – | Full webhook URL (required for webhook) |
No output schema declared.
No examples provided.
What is the AnomalyArmor MCP server?
AnomalyArmor is an MCP server listed in the public MCP registry as ai.anomalyarmor/armor-mcp. Data observability tools for engineering teams: alerts, freshness, schema drift, lineage, quality. This page covers its PyPI package (armor-mcp).
Is the AnomalyArmor MCP server safe to use?
AnomalyArmor scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the AnomalyArmor MCP server expose?
AnomalyArmor exposes 53 tools: get_alerts_summary, list_alerts, list_inbox_alerts, update_alert, list_alert_rules, and 48 more. Their descriptions and schemas cost roughly 5,496 tokens of context every time the server is loaded.
Is the AnomalyArmor MCP server still maintained?
AnomalyArmor is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the AnomalyArmor MCP server under?
AnomalyArmor declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.