Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

AnomalyArmor

PYPI · ARMOR-MCP · 2 COMPONENTS

Data observability tools for engineering teams: alerts, freshness, schema drift, lineage, quality.

0 this week 97 Trust /100

Last scanned (20 hours ago)

Scores higher than 99% of PyPI servers

Category Monitoring and Observability

Trust breakdown (7 categories)

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 Security99
  • 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 build step with no custom scripting around it. View diagnostics → Pass
  • 3 of 28 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to anomalyarmor/agents). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 158 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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
Changelog

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.

  • 31 Oct 26 0
    • Stability: 0.97 → pass security
  • 30 Oct 26 0
    • Stability: pass → 0.97 functional
  • 24 Oct 26 0
    • Stability: 0.97 → pass security
  • 23 Oct 26 0
    • Stability: pass → 0.97 functional
  • 17 Oct 26 0
    • Stability: 0.97 → pass security
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
Diagnostics

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 4 Nov 2026 · Analysed pypi/armor-mcp@0.6.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo anomalyarmor/agents
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/anomalyarmor/agents/.github/workflows/publish-pypi.yml@refs/tags/v0.6.1
Rekor log index 1333844257
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:25d1c940dbd5cf6af188b337540c7ee8b2492ac6abd4571a994b24e8c81573ab

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 28 packages
Packages resolved 28
Stale 3
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 53 exposed · ~5,496 tokens

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 →

Tool Tokens
apply_tags ~130

Apply tags to database objects. Supports single or cross-asset bulk tagging. Use explore to find valid object paths before tagging.

NameTypeReqDescription
asset_idstringyesAsset 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_typestring–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 ~108

Ask a natural language question about your data. Uses AI to analyze your schema, metadata, and monitoring data to answer.

NameTypeReqDescription
asset_id––Asset UUID to scope the question (from list_assets). Omit for all assets.
include_lineageboolean–Include lineage info in context (default False)
include_schemaboolean–Include schema info in context (default True)
questionstringyesNatural language question (e.g., "What tables contain customer PII?")

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
job_idstringyesJob UUID (from trigger_asset_discovery, generate_intelligence, etc.)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
stale_onlyboolean–Only return stale tables (default False)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
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.
namestringyesHuman-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 ~178

Connect a new data source to AnomalyArmor. After creating, use trigger_asset_discovery to discover tables and columns.

NameTypeReqDescription
connection_configobjectyesConnection details (varies by source_type). Examples: PostgreSQL: {"host": "...", "port": 5432, "database": "...", "username": "...", "password": "..."} Snowflake…
description––Optional description of the data source
namestringyesDisplay name for the asset (e.g., "Production PostgreSQL")
source_typestringyesDatabase type: "postgresql", "snowflake", "bigquery", "redshift", "mysql", "databricks"

No output schema declared.

No examples provided.

create_metric ~120

Create a data quality metric for a table. Use explore to find table paths and column names.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
column_name––Column to monitor (required for column-level metrics like null_rate, mean, etc.)
metric_typestringyesType of metric: "row_count", "null_rate", "unique_rate", "min", "max", "mean", "stddev"
table_pathstringyesFull table path (e.g., "public.orders")

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
name––Human-readable name (auto-generated if omitted)
severitystring–Alert severity: "warning" (default), "error", "critical"
source_columnstringyesForeign key column (e.g., "customer_id")
source_tablestringyesTable containing the foreign key (e.g., "public.orders")
target_columnstringyesReferenced column (e.g., "id")
target_tablestringyesReferenced table (e.g., "public.customers")

No output schema declared.

No examples provided.

create_schema_baseline ~53

Capture current schema as baseline for drift detection. Required before enable_schema_monitoring can detect changes.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
description––Optional description for the baseline

No output schema declared.

No examples provided.

create_tag ~84

Create a new tag for labeling database objects. After creating, use apply_tags to attach it to tables or columns.

NameTypeReqDescription
color––Optional hex color code (e.g., "#FF5733")
description––Optional description of the tag's purpose
namestringyesTag name (e.g., "pii", "revenue-critical", "deprecated")

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
column_namestringyesColumn to validate
name––Human-readable rule name (auto-generated if omitted)
rule_configobjectyesConfig 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_typestringyesType of check: "regex_match", "allowed_values", "range_bounds", "format", "length_bounds"
severitystring–Alert severity when rule fails: "error" (default), "warning", "critical"
table_pathstringyesFull table path (e.g., "public.users")

No output schema declared.

No examples provided.

disable_schema_monitoring ~39

Disable schema drift monitoring for an asset. Keeps baseline for re-enabling.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
schedule_typestring–Schedule for alert estimation: "1h", "1d", "1w"

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
auto_create_baselineboolean–Create baseline if none exists (default True)
schedule_typestring–How often to check for drift: "5m", "1h", "6h", "1d", "1w"

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
force_refreshboolean–Force regeneration even if cached (default False)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
alert_idstringyesAlert UUID (from list_alerts)

No output schema declared.

No examples provided.

get_alert_trends ~61

Get aggregate alert trend data across all assets. Shows alert volume and patterns over time for trend analysis.

NameTypeReqDescription
periodstring–Time period: "24h", "7d", "30d", "90d" (default "7d")

No output schema declared.

No examples provided.

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 ~91

View API key information (read-only). Cannot create or revoke keys.

NameTypeReqDescription
key_id––API key UUID (required for view="detail")
viewstring–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 ~89

Get monitoring coverage score and tier information. Shows how well your data assets are monitored with scores, tiers, and per-feature breakdowns.

NameTypeReqDescription
asset_id––Asset UUID (required when scope="asset")
scopestring–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 ~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 ~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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
depthinteger–How many hops to traverse (default 2)
directionstring–Lineage direction: "upstream", "downstream", or "both" (default "both")
list_allboolean–List all lineage entries for the asset instead of graph view (default False)

No output schema declared.

No examples provided.

get_metrics_summary ~46

Get metrics monitoring summary for an asset. Shows total metrics, active count, anomaly count, and per-type breakdown.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)

No output schema declared.

No examples provided.

get_schema_monitoring ~49

Get schema monitoring configuration for an asset. Shows whether monitoring is enabled, schedule type, baseline info, and last check timestamp.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)

No output schema declared.

No examples provided.

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 ~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 ~47

Get validity rules summary for an asset. Shows total rules, active count, failing count, and per-type breakdown.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)

No output schema declared.

No examples provided.

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 ~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.

NameTypeReqDescription
job_idstringyesJob UUID (from trigger_asset_discovery, generate_intelligence, etc.)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
active_onlyboolean–Only return active rules (default True)
asset_id––Filter by asset UUID (from list_assets)

No output schema declared.

No examples provided.

list_alerts ~160

List recent alerts with severity, status, and asset info. Use update_alert to acknowledge, resolve, dismiss, or snooze alerts.

NameTypeReqDescription
asset_id––Filter by asset UUID (from list_assets)
from_date––Start of date range (ISO 8601, e.g., "2026-01-29T00:00:00Z")
limitinteger–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 ~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.

NameTypeReqDescription
asset_type––Filter by type ("postgresql", "snowflake", "bigquery", etc.)
limitinteger–Maximum results (default 25)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
active_onlyboolean–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 ~59

List freshness monitoring schedules showing check intervals and status. Use setup_freshness to add new schedules.

NameTypeReqDescription
asset_id––Filter by asset UUID (from list_assets)
limitinteger–Maximum results (default 25)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_id––Filter by asset UUID (from list_assets)
limitinteger–Maximum results (default 25)
severity––Filter by severity ("info", "warning", "critical")

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
limitinteger–Maximum results (default 25)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
asset_id––Filter by asset UUID (from list_assets)
limitinteger–Maximum results (default 25)
severity––Filter by severity: "critical", "warning", "info"
unacknowledged_onlyboolean–Only return unacknowledged changes (default false)

No output schema declared.

No examples provided.

list_tags ~61

List tags applied to database objects within an asset. Use explore to find valid object paths.

NameTypeReqDescription
asset_idstringyesAsset 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 ~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.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
limitinteger–Maximum results (default 25)

No output schema declared.

No examples provided.

manage_alert_rule ~123

Manage an existing alert rule: get details, update, or delete. Use list_alert_rules to find rule IDs.

NameTypeReqDescription
actionstringyesOperation: "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_idstringyesAlert rule UUID (from list_alert_rules)
severities––New severity levels (for update)

No output schema declared.

No examples provided.

manage_asset ~69

Get asset details or test its connection.

NameTypeReqDescription
actionstringyesOperation to perform: "get" - get full asset details including schema, table count, etc. "test" - test the database connection is working
asset_idstringyesAsset UUID (from list_assets)

No output schema declared.

No examples provided.

manage_coverage ~146

Analyze coverage gaps or apply monitoring recommendations in batch. Use get_coverage to see current scores first.

NameTypeReqDescription
actionstringyesOperation to perform: "gaps" - list unmonitored tables ranked by importance "apply" - apply recommended monitoring in batch
asset_idstringyesAsset UUID (from list_assets)
limitinteger–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 ~114

Manage an existing alert destination: get details, update, delete, or test. Use list_destinations to find destination IDs.

NameTypeReqDescription
actionstringyesOperation: "get", "update", "delete", or "test"
config––New config dict (for update, e.g., {"webhook_url": "..."})
destination_idstringyesDestination 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 ~138

Update or delete a freshness monitoring schedule. Use list_freshness_schedules to find schedule IDs.

NameTypeReqDescription
actionstringyesOperation: "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_idstringyesSchedule UUID (from list_freshness_schedules)

No output schema declared.

No examples provided.

manage_metric ~187

Manage an existing metric: get details, update, delete, trigger capture, or view snapshots. Use list_metrics to find metric IDs.

NameTypeReqDescription
actionstringyesOperation: "get" - get metric details and current value "update" - update metric settings "delete" - delete the metric "capture" - trigger an immediate metric capture "snapshots"…
asset_idstringyesAsset UUID (from list_assets)
capture_interval––New capture interval (for update)
is_active––Enable/disable metric (for update)
limitinteger–Max snapshots to return (for snapshots action, default 100)
metric_idstringyesMetric UUID (from list_metrics)
sensitivity––Anomaly detection sensitivity 0.0-1.0 (for update)

No output schema declared.

No examples provided.

manage_referential ~231

Manage referential integrity checks: view, update, delete, execute, or get results. Use create_referential_check to create new checks.

NameTypeReqDescription
actionstringyesOperation 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_idstringyesAsset UUID (from list_assets)
check_id––Check UUID (required for get/update/delete/execute/results)
is_active––Enable/disable (for update action)
limitinteger–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 ~116

Manage which destinations an alert rule routes to.

NameTypeReqDescription
actionstringyesOperation: "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_idstringyesAlert rule UUID (from list_alert_rules)

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
actionstringyesOperation: "get" - get rule details "update" - update rule settings "delete" - delete the rule "check" - run the validity check now "results" - view recent check results
asset_idstringyesAsset UUID (from list_assets)
is_active––Enable/disable (for update)
limitinteger–Max results to return (for results action, default 25)
name––New name (for update)
rule_config––New rule config (for update)
rule_idstringyesValidity rule UUID (from list_validity_rules)
severity––New severity (for update)

No output schema declared.

No examples provided.

recommend ~208

Get AI-driven monitoring recommendations for an asset. Analyzes historical patterns, schema, and alert data to suggest monitoring improvements.

NameTypeReqDescription
asset_idstringyesAsset UUID (from list_assets)
daysinteger–Historical window in days (for thresholds, default 30)
include_monitoredboolean–Include already-monitored tables (for freshness, default False)
limitinteger–Maximum recommendations (default 20)
min_confidencenumber–Minimum confidence threshold 0.0-1.0 (for freshness/metrics, default 0.5)
recommendation_typestringyesType 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 ~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.

NameTypeReqDescription
channel_name––Slack channel name without # (required for Slack)
destination_typestringyesType of destination: "slack", "webhook", or "email"
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.

Install

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

# add to Claude Code
claude mcp add ai-anomalyarmor-armor-mcp -- uvx armor-mcp
Common questions

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 97 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. Its build provenance is signed and verified. 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 4 November 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.