mcpField
A
Anomalyarmor

Anomalyarmor

Remote
anomalyarmor.aiDeveloper Tools1Updated 22w ago

About Anomalyarmor

AnomalyArmor is an MCP server for engineering teams to inspect and manage warehouse observability through natural-language interactions. It covers alerts, freshness, schema drift, validity checks, and lineage, with remote OAuth or local API-key connection options.

Key features

  1. 01Query and manage alerts and rules
  2. 02Monitor freshness and schema changes
  3. 03Configure metrics, validity, and referential checks
  4. 04Inspect data lineage and tags
  5. 05Track asynchronous analysis jobs

Use cases

  1. 01Investigate unresolved alerts and data trends
  2. 02Find stale tables or schema drift
  3. 03Configure quality rules and review results
  4. 04Trace upstream dependencies and job status

MCP support

The server offers remote MCP access over Streamable HTTP and can also run locally with an API key. Its structured tools cover warehouse health, monitoring configuration, data quality, lineage, and job management.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.anomalyarmor.ai/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
pypiarmor-mcp0.6.1

Tools

Details

From the project README

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

MethodAuthBest for
Remote (recommended)OAuth 2.1 (Clerk)Zero install, always up to date
LocalAPI keyAir-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
ToolDescription
health_summaryOverall warehouse health: stale assets, drift, alerts
get_todays_briefingDaily digest with key insights
get_coverageMonitoring coverage analysis
manage_coverageUpdate coverage targets
recommendAI-suggested next monitoring actions
Alerts & Incidents
ToolDescription
list_alertsQuery alerts with filters (severity, date, status)
list_inbox_alertsAlerts not yet triaged
get_alerts_summaryAggregate counts and trends
get_alert_trendsPeriod-over-period trend analysis
get_alert_historyActivity timeline for an alert
update_alertAcknowledge / resolve / dismiss / snooze
list_alert_rulesView configured rules
create_alert_ruleAdd a new alert rule
manage_alert_ruleUpdate / delete / preview rules
manage_rule_destinationsWire rules to destinations
Assets
ToolDescription
list_assetsList data sources with filters
create_assetConnect a new source
manage_assetUpdate / delete / test connection
trigger_asset_discoveryStart schema discovery (async)
Freshness
ToolDescription
get_freshness_summaryFreshness overview
check_freshnessCheck a specific asset / table
setup_freshnessBulk-create freshness schedules
list_freshness_schedulesView configured schedules
manage_freshness_scheduleUpdate / delete a schedule
Schema Monitoring
ToolDescription
get_schema_summaryDrift overview
list_schema_changesRecent changes with severity
create_schema_baselineCapture current schema as a baseline
enable_schema_monitoringStart drift detection
disable_schema_monitoringStop drift detection
Data Quality (Metrics & Validity)
ToolDescription
get_metrics_summaryMetric health by asset
list_metricsList configured metrics
create_metricAdd a metric (row count, null %, etc.)
manage_metricUpdate / delete / capture a metric
get_validity_summaryPass/fail rate for validity rules
list_validity_rulesList validity rules
create_validity_ruleAdd a NOT_NULL / UNIQUE / RANGE / REGEX rule
manage_validity_ruleUpdate / delete / run a rule
create_referential_checkCross-table referential check
manage_referentialUpdate / delete a referential check
Destinations & Routing
ToolDescription
list_destinationsSlack / email / webhook / PagerDuty configs
setup_destinationAdd a new destination
manage_destinationUpdate / delete / test
Intelligence, Lineage, Tags, Jobs
ToolDescription
ask_questionSynchronous natural-language Q&A about your data
generate_intelligenceTrigger AI analysis (async, expensive)
get_lineageUpstream/downstream dependency graph
list_tagsTags for an asset
create_tagTag a table or column
apply_tagsBulk tag application
job_statusTrack an async job
cancel_jobCancel a running async job
get_api_key_infoInspect 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:

CategoryPatternConfirmation
Read-onlylist_*, get_*, check_*, search_*Auto-invoke
Mutatingcreate_*, update_*, enable_*, disable_*, manage_*Confirm with user
Destructivedelete_* (via manage_*), dismiss_alertAlways confirm; list affected entities
Expensivegenerate_intelligence, trigger_asset_discoveryConfirm; 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

FilePurpose
https://mcp.anomalyarmor.ai/.well-known/oauth-protected-resourceRFC 9728 protected-resource metadata
https://www.anomalyarmor.ai/.well-known/mcp/server-card.jsonSEP-1649 MCP server card
https://www.anomalyarmor.ai/.well-known/agent-card.jsonA2A v0.2 agent card
https://www.anomalyarmor.ai/.well-known/api-catalogRFC 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.