Skip to main content

AnomalyArmor MCP Server - Data observability tools for AI assistants

Project description

armor-mcp

PyPI License: MIT MCP Glama

The AnomalyArmor MCP server lets AI assistants (Claude Code, Cursor, Claude Desktop, any MCP client) interact with your data warehouse through 50+ structured tools: query alerts, monitor freshness, investigate schema drift, configure validity rules, and trace lineage in natural language.

Two ways to connect

Method Auth Best for
Remote (recommended) OAuth 2.1 (Clerk) Zero install, always up to date
Local API key Air-gapped, on-call laptops, custom proxies

Remote (recommended)

The server is hosted at https://mcp.anomalyarmor.ai/mcp (Streamable HTTP transport). First call opens a browser for OAuth; the token is cached for ~12h.

Claude Code

claude mcp add anomalyarmor --transport http https://mcp.anomalyarmor.ai/mcp

Cursor

Add to ~/Library/Application Support/Cursor/mcp.json (macOS), ~/.config/Cursor/mcp.json (Linux), or %APPDATA%\Cursor\mcp.json (Windows):

{
  "mcpServers": {
    "anomalyarmor": {
      "url": "https://mcp.anomalyarmor.ai/mcp"
    }
  }
}

Any MCP client

URL: https://mcp.anomalyarmor.ai/mcp
Transport: streamable-http
Auth: OAuth 2.1
Discovery: https://mcp.anomalyarmor.ai/.well-known/oauth-protected-resource

Local (API key)

Use when the remote server isn't reachable or when you want no third-party dependency.

Install

# Recommended: uvx (no install)
uvx armor-mcp

# Or pip
pip install armor-mcp

Configure

Get an API key from Settings → API Keys at https://app.anomalyarmor.ai.

export ARMOR_API_KEY=aa_live_your_key_here

Or persist to ~/.armor/config.yaml:

api_key: aa_live_your_key_here

Wire to a client

{
  "mcpServers": {
    "anomalyarmor": {
      "command": "uvx",
      "args": ["armor-mcp"],
      "env": {
        "ARMOR_API_KEY": "aa_live_your_key_here"
      }
    }
  }
}

Tools

53 tools across 8 categories. Every tool ships with MCP ToolAnnotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint: false) so hosts can decide when to auto-confirm.

Health & Briefings

Tool Description
health_summary Overall warehouse health: stale assets, drift, alerts
get_todays_briefing Daily digest with key insights
get_coverage Monitoring coverage analysis
manage_coverage Update coverage targets
recommend AI-suggested next monitoring actions

Alerts & Incidents

Tool Description
list_alerts Query alerts with filters (severity, date, status)
list_inbox_alerts Alerts not yet triaged
get_alerts_summary Aggregate counts and trends
get_alert_trends Period-over-period trend analysis
get_alert_history Activity timeline for an alert
update_alert Acknowledge / resolve / dismiss / snooze
list_alert_rules View configured rules
create_alert_rule Add a new alert rule
manage_alert_rule Update / delete / preview rules
manage_rule_destinations Wire rules to destinations

Assets

Tool Description
list_assets List data sources with filters
create_asset Connect a new source
manage_asset Update / delete / test connection
trigger_asset_discovery Start schema discovery (async)

Freshness

Tool Description
get_freshness_summary Freshness overview
check_freshness Check a specific asset / table
setup_freshness Bulk-create freshness schedules
list_freshness_schedules View configured schedules
manage_freshness_schedule Update / delete a schedule

Schema Monitoring

Tool Description
get_schema_summary Drift overview
list_schema_changes Recent changes with severity
create_schema_baseline Capture current schema as a baseline
enable_schema_monitoring Start drift detection
disable_schema_monitoring Stop drift detection

Data Quality (Metrics & Validity)

Tool Description
get_metrics_summary Metric health by asset
list_metrics List configured metrics
create_metric Add a metric (row count, null %, etc.)
manage_metric Update / delete / capture a metric
get_validity_summary Pass/fail rate for validity rules
list_validity_rules List validity rules
create_validity_rule Add a NOT_NULL / UNIQUE / RANGE / REGEX rule
manage_validity_rule Update / delete / run a rule
create_referential_check Cross-table referential check
manage_referential Update / delete a referential check

Destinations & Routing

Tool Description
list_destinations Slack / email / webhook / PagerDuty configs
setup_destination Add a new destination
manage_destination Update / delete / test

Intelligence, Lineage, Tags, Jobs

Tool Description
ask_question Synchronous natural-language Q&A about your data
generate_intelligence Trigger AI analysis (async, expensive)
get_lineage Upstream/downstream dependency graph
list_tags Tags for an asset
create_tag Tag a table or column
apply_tags Bulk tag application
job_status Track an async job
cancel_job Cancel a running async job
get_api_key_info Inspect the current API key's scope

Full descriptions, parameter schemas, and example prompts: https://docs.anomalyarmor.ai/integrations/mcp-server.

Tool safety conventions

Hosts respect the annotations:

Category Pattern Confirmation
Read-only list_*, get_*, check_*, search_* Auto-invoke
Mutating create_*, update_*, enable_*, disable_*, manage_* Confirm with user
Destructive delete_* (via manage_*), dismiss_alert Always confirm; list affected entities
Expensive generate_intelligence, trigger_asset_discovery Confirm; these queue paid jobs

Multi-tenancy

The OAuth token (or API key) is scoped to the user's company. You cannot impersonate another tenant. Don't fabricate company_id arguments.

Async jobs

trigger_asset_discovery, generate_intelligence, and metric captures return a job_id. Poll with job_status(job_id) rather than re-triggering.

Discovery surfaces

File Purpose
https://mcp.anomalyarmor.ai/.well-known/oauth-protected-resource RFC 9728 protected-resource metadata
https://www.anomalyarmor.ai/.well-known/mcp/server-card.json SEP-1649 MCP server card
https://www.anomalyarmor.ai/.well-known/agent-card.json A2A v0.2 agent card
https://www.anomalyarmor.ai/.well-known/api-catalog RFC 9727 API catalog linkset

Development

git clone https://github.com/anomalyarmor/agents.git
cd agents/armor-mcp
uv sync
uv run pytest

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

armor_mcp-0.8.1.tar.gz (47.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

armor_mcp-0.8.1-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

Details for the file armor_mcp-0.8.1.tar.gz.

File metadata

  • Download URL: armor_mcp-0.8.1.tar.gz
  • Upload date:
  • Size: 47.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for armor_mcp-0.8.1.tar.gz
Algorithm Hash digest
SHA256 73275a402f01f94416632e713aae24fb503d1c9cfb07f0db7defa5d6f7caeccb
MD5 63d42e0fa2df84b4a878d73a55f349de
BLAKE2b-256 34c745907be7cf1215d3af50416bb663f964f6303e0f6a8045b3647798eba18c

See more details on using hashes here.

Provenance

The following attestation bundles were made for armor_mcp-0.8.1.tar.gz:

Publisher: publish-pypi.yml on anomalyarmor/agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file armor_mcp-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: armor_mcp-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 48.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for armor_mcp-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf1259406f0d3c77f9a464998637111c88b544f14f95b2a5ae7cfa7abb37512d
MD5 aa2be55c95d86789f47d7c3587eae90c
BLAKE2b-256 a5b6cdeb21b036d17e44e8a85d7fc55a05e2dc473aabb418f0753fe145331dee

See more details on using hashes here.

Provenance

The following attestation bundles were made for armor_mcp-0.8.1-py3-none-any.whl:

Publisher: publish-pypi.yml on anomalyarmor/agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page