Connection Methods
| Method | Auth | Best For |
|---|---|---|
| Remote (Recommended) | Sign in with your AnomalyArmor account | Zero setup, always up to date |
| Local | API key | Air-gapped environments, custom setups |
Remote Server (Recommended)
Connect directly to AnomalyArmor’s hosted MCP server. No installation required. You sign in with your existing AnomalyArmor account through OAuth.Claude Code
Cursor
Add to your Cursor MCP configuration: macOS:~/Library/Application Support/Cursor/mcp.json
Linux: ~/.config/Cursor/mcp.json
Windows: %APPDATA%\Cursor\mcp.json
Other MCP Clients
Any MCP client that supports the streamable-http transport can connect:https://mcp.anomalyarmor.ai/.well-known/oauth-protected-resource.
Local Server (API Key)
For environments where you need a local MCP server (air-gapped networks, custom configurations), install and run the server locally with an API key.Install
If the package is not yet on PyPI, install from source:
Configure
Add to your AI tool’s MCP settings:Getting Your API Key
- Go to Settings > API Keys in the AnomalyArmor dashboard
- Click Create API Key
- Name it (e.g., “Claude Code MCP”)
- Copy the key (it won’t be shown again)
Available Tools
Once connected, your AI assistant has access to 40+ tools across these categories:Health and Briefings
Health and Briefings
| Tool | Description |
|---|---|
health_summary | Overall health status across all assets |
get_todays_briefing | Daily digest with key insights and alerts |
get_coverage_summary | Monitoring coverage analysis |
Alerts
Alerts
| Tool | Description |
|---|---|
list_alerts | Query alerts with date, severity, and status filters |
get_alert_summary | Aggregate alert counts and trends |
list_incidents | List incidents with status, severity, and date filters |
get_incident | Get full incident details including activity timeline |
acknowledge_alert | Mark an incident as seen |
resolve_alert | Close an incident with resolution metadata |
dismiss_alert | Dismiss a non-actionable incident |
snooze_alert | Snooze an incident for a set duration |
preview_alerts | Dry-run alert rules against historical data |
Assets
Assets
| Tool | Description |
|---|---|
list_assets | List data sources with filters |
get_asset | Get details for a specific asset |
explore | Navigate schemas, tables, and columns within an asset. Supports hierarchical browsing (explore(asset_id) for schemas, explore(asset_id, parent_path="schema") for tables) and full-text search (explore(asset_id, search="keyword")) |
create_asset | Connect a new data source |
test_asset_connection | Test connectivity to a source |
trigger_asset_discovery | Start asset discovery (runs as background job) |
Freshness
Freshness
| Tool | Description |
|---|---|
get_freshness_summary | Freshness overview. Supports optional asset_id to filter to a single source |
check_freshness | Check a specific table’s freshness |
list_stale_assets | Find currently stale tables |
list_freshness_schedules | View monitoring schedules |
create_freshness_schedule | Set up freshness monitoring. Use setup_freshness for bulk creation with table_paths and schema_name params |
delete_freshness_schedule | Remove a schedule |
dry_run_freshness | Preview what alerts a threshold would produce |
Schema Monitoring
Schema Monitoring
| Tool | Description |
|---|---|
get_schema_summary | Schema drift overview. Supports optional asset_id to filter to a single source |
list_schema_changes | Recent schema changes with filters |
create_schema_baseline | Capture current schema as baseline |
enable_schema_monitoring | Start drift detection for one or more assets. Accepts asset_id (single) or asset_ids (bulk), interval strings ('5m', '1h', '6h', '1d') or cron_expression for custom schedules |
disable_schema_monitoring | Stop drift detection |
dry_run_schema | Preview drift detection results |
Data Quality
Data Quality
| Tool | Description |
|---|---|
list_metrics | Quality metrics for an asset |
get_metrics_summary | Metrics health overview |
create_metric | Add a quality metric (row count, null rate, etc.) |
delete_metric | Remove a metric |
capture_metric | Trigger immediate metric capture |
dry_run_metric | Preview metric alerting behavior |
Validity Rules
Validity Rules
| Tool | Description |
|---|---|
list_validity_rules | Validity rules for an asset |
get_validity_summary | Passing/failing rule overview |
create_validity_rule | Add a rule (NOT_NULL, UNIQUE, etc.) |
delete_validity_rule | Remove a rule |
check_validity_rule | Run a check immediately |
Intelligence, Lineage, and Jobs
Intelligence, Lineage, and Jobs
| Tool | Description |
|---|---|
ask_question | Natural language Q&A about your data |
generate_intelligence | Trigger AI analysis for an asset |
get_lineage | Explore upstream/downstream dependencies |
job_status | Track progress of async operations |
Tags and Classification
Tags and Classification
Usage Examples
These examples show full terminal sessions using Claude Code with the AnomalyArmor MCP server. Each one demonstrates a real workflow from start to finish.Morning Triage: Check Health and Act on Issues
Setting Up Monitoring for a New Schema
Investigating a Data Quality Issue
Troubleshooting
Authentication Failed (Remote)
- Clear your MCP auth cache and re-authenticate
- In Claude Code: run
/mcpand select the reconnect option - Verify you can sign in to app.anomalyarmor.ai
Authentication Failed (Local)
Server Not Found
- Restart your AI tool after config changes
- For local mode, verify armor-mcp is installed:
armor-mcp --version - Check MCP config syntax (valid JSON)
Empty Responses
If tools return empty results after successful authentication: Solution:- Verify you have data sources connected in AnomalyArmor
- Try
health_summaryas a basic connectivity test - For local mode, ensure your API key has the correct scope
Rate Limiting
Inline UI rendering (MCP Apps)
Hosts that support the draft MCP Apps spec (Claude Desktop nightly, Cursor experimental) render interactive charts inline when you callcheck_freshness, get_freshness_summary, list_schema_changes, get_lineage, or health_summary - instead of a JSON blob, you see a timeline, diff table, lineage graph, or stat dashboard. Hosts without MCP Apps support fall back to JSON automatically; the tools work everywhere.
See MCP Apps (inline UI) for host-support details and examples.
Next Steps
MCP Apps (inline UI)
Interactive charts rendered inline in supported hosts
Claude Code Setup
Detailed Claude Code configuration
Cursor Setup
Cursor IDE integration
Web Agent
Use the same tools in your browser
AI Skills
Browse available skills
Common Questions
What’s the MCP server URL and auth model?
Hosted athttps://mcp.anomalyarmor.ai/mcp. Authenticate with a Bearer API key (Authorization: Bearer aa_live_...). Keys are scoped read-only (demo/trial) or read-write (paid) - any write tool call returns 403 on a read-only key with a handoff URL the agent can surface.
Which MCP hosts does AnomalyArmor support?
Tested with Claude Desktop, Claude Code CLI, Cursor, and Windsurf. Any host that speaks the Model Context Protocol over HTTPS/SSE should work. See Claude Code and Cursor for host-specific setup.Do MCP tool calls count against my API rate limit?
Yes. MCP traffic uses the same API rate limit as direct REST calls (per-key). Agents tend to be bursty, so enable retry-with-backoff in your host config if you hit 429s. Enterprise plans raise the limit significantly.Does the MCP server let agents modify my data or infrastructure?
No. All AnomalyArmor tools operate on metadata and monitoring state (assets, metrics, alerts, tags). Agents cannot write to your connected databases, rotate credentials, or change billing. Mutating tools on AnomalyArmor itself (creating a metric, dismissing an alert) require aread-write scoped key and always ask for confirmation in the host UI before executing.