Skip to main content

AnomalyArmor MCP Server - Data observability tools for AI assistants

Project description

armor-mcp

PyPI License: MIT MCP

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.6.1.tar.gz (31.0 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.6.1-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: armor_mcp-0.6.1.tar.gz
  • Upload date:
  • Size: 31.0 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.6.1.tar.gz
Algorithm Hash digest
SHA256 25d1c940dbd5cf6af188b337540c7ee8b2492ac6abd4571a994b24e8c81573ab
MD5 d1d344d3606d71e313275041dacf8fdf
BLAKE2b-256 4389438ceb7dd8f140b1b91848e97e6bbf6115faed3ec8f0983772a9a66d9c63

See more details on using hashes here.

Provenance

The following attestation bundles were made for armor_mcp-0.6.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.6.1-py3-none-any.whl.

File metadata

  • Download URL: armor_mcp-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 33.1 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.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 81ce4ba87523e9e485a7149b8338e1388c7cf7e2712d1e0628bea25ae1426828
MD5 56ee7cabd10a0d311f2ed2330159c7ad
BLAKE2b-256 b1b1f04ae4ec682b8b2b4651b4fc9ba6c3f547802f4e0d19842aa2d72ef39636

See more details on using hashes here.

Provenance

The following attestation bundles were made for armor_mcp-0.6.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