MCP Server

AegisAI

io.github.kadopi/aegis-ai
Payments & Fintech Security Public & reachable MCP 2025-11-25

What this MCP does

Performs paid pre-execution risk verification, evaluates agent commerce policies, and manages on-chain monitoring subscriptions and alerts.

create_monitor_a2a_dns_txt_challenge
Create an A2A endpoint DNS TXT challenge
Creates a one-time DNS TXT ownership challenge without contacting the customer endpoint. Verification and delivery remain disabled.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['endpointId'], 'properties': {'endpointId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
create_monitor_a2a_endpoint_challenge
Create an A2A endpoint ownership challenge
Creates a one-time 15-minute challenge for a pending endpoint. It does not contact or verify the endpoint and never enables delivery.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['endpointId'], 'properties': {'endpointId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
evaluate_agent_commerce_policy
Evaluate Agent Commerce policy
Deterministically pre-evaluates a public-price sale without sending, paying, settling, or changing stored state. Signed Basic and Pro public terms may be allowed; verified-payer velocity is reserved atomically after facilitator verification and before settlement.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['seller', 'offer', 'purchase'], 'properties': {'offer': {'type': 'object', 'required': ['contractVersion', 'kind', 'offerId', 'service', 'plan', 'route', 'price', 'policy', 'issuedAt', 'expiresAt', 'termsDigest', 'retryPolicy'], 'properties': {'kind': {'type': 'string', 'const': 'machine_offer'}, 'plan': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'price': {'type': 'object', 'required': ['protocol', 'version', 'currency', 'amount', 'amountDecimal', 'network', 'asset', 'payTo'], 'properties': {'asset': {'type': 'string'}, 'payTo': {'type': 'string'}, 'amount': {'type': 'string'}, 'network': {'type': 'string'}, 'version': {'type': 'number', 'const': 2}, 'currency': {'type': 'string', 'maxLength': 16, 'minLength': 1}, 'protocol': {'type': 'string', 'const': 'x402'}, 'amountDecimal': {'type': 'string'}}, 'additionalProperties': False}, 'route': {'type': 'string'}, 'policy': {'anyOf': [{'type': 'object', 'required': ['kind', 'automaticPurchaseAllowed'], 'properties': {'kind': {'type': 'string', 'const': 'public_price'}, 'automaticPurchaseAllowed': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'automaticPurchaseAllowed'], 'properties': {'kind': {'type': 'string', 'const': 'exception'}, 'automaticPurchaseAllowed': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}]}, 'offerId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'service': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'issuedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, 'expiresAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, 'retryPolicy': {'type': 'object', 'required': ['beforeSettlement', 'unknownOutcome'], 'properties': {'unknownOutcome': {'type': 'string', 'const': 'never'}, 'beforeSettlement': {'type': 'string', 'const': 'new_authorization_only'}}, 'additionalProperties': False}, 'termsDigest': {'type': 'string'}, 'contractVersion': {'type': 'string', 'const': '1.0'}}, 'additionalProperties': False}, 'seller': {'type': 'object', 'required': ['serviceId'], 'properties': {'serviceId': {'type': 'string', 'maxLength': 128, 'minLength': 1}}, 'additionalProperties': False}, 'purchase': {'type': 'object', 'required': ['contractVersion', 'kind', 'transactionId', 'offerId', 'idempotencyKey', 'nonce', 'requestedAt', 'expiresAt', 'plan', 'route', 'price', 'inputDigest', 'termsDigest'], 'properties': {'kind': {'type': 'string', 'const': 'purchase_request'}, 'plan': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'nonce': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'price': {'type': 'object', 'required': ['protocol', 'version', 'currency', 'amount', 'amountDecimal', 'network', 'asset', 'payTo'], 'properties': {'asset': {'type': 'string'}, 'payTo': {'type': 'string'}, 'amount': {'type': 'string'}, 'network': {'type': 'string'}, 'version': {'type': 'number', 'const': 2}, 'currency': {'type': 'string', 'maxLength': 16, 'minLength': 1}, 'protocol': {'type': 'string', 'const': 'x402'}, 'amountDecimal': {'type': 'string'}}, 'additionalProperties': False}, 'route': {'type': 'string'}, 'offerId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'expiresAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, 'inputDigest': {'type': 'string'}, 'requestedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, 'termsDigest': {'type': 'string'}, 'transactionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'idempotencyKey': {'type': 'string'}, 'contractVersion': {'type': 'string', 'const': '1.0'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_aegis_capabilities
Get AegisAI capabilities
Returns machine-readable discovery links and x402 testnet payment information. This tool is free and does not perform risk verification.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
get_monitor_alert
Get an on-chain monitor alert
Returns one structured alert and its bounded evidence for the authenticated monitor account.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['alertId'], 'properties': {'alertId': {'type': 'string', 'maxLength': 300, 'minLength': 1}}, 'additionalProperties': False}
get_monitor_subscription
Get a monitor subscription
Returns one account-owned subscription and its current policy and scan state.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subscriptionId'], 'properties': {'subscriptionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
list_monitor_a2a_endpoints
List A2A alert endpoints
Lists the authenticated account's A2A notification endpoints and delivery-disabled state.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
list_monitor_alerts
List on-chain monitor alerts
Lists structured alerts belonging only to the authenticated monitor account. This tool never sends notifications or performs wallet actions.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1}, 'severity': {'enum': ['warning', 'critical'], 'type': 'string'}, 'caseStatus': {'enum': ['new', 'investigating', 'resolved', 'false_positive'], 'type': 'string'}, 'walletAddress': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}}, 'additionalProperties': False}
list_monitor_subscriptions
List monitor subscriptions
Lists account-scoped Base Sepolia monitor subscriptions without changing monitoring or payment state.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
register_monitor_a2a_endpoint
Register an A2A alert endpoint
Registers an account-scoped endpoint in pending-verification state. Registration never contacts the endpoint and delivery remains disabled.
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['endpointUrl', 'transport', 'protocolVersion'], 'properties': {'transport': {'enum': ['jsonrpc', 'http_json'], 'type': 'string'}, 'maxPerHour': {'type': 'integer', 'default': 6, 'maximum': 60, 'minimum': 1}, 'endpointUrl': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'minSeverity': {'enum': ['warning', 'critical'], 'type': 'string', 'default': 'warning'}, 'protocolVersion': {'type': 'string', 'pattern': '^[0-9]{1,3}\\.[0-9]{1,3}(?:\\.[0-9]{1,3})?$'}}, 'additionalProperties': False}
register_monitor_subscription
Register a stopped monitor subscription
Registers a Base Sepolia wallet and validated policy in stopped state. Payment and operator approval are still required before activation.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['chainId', 'walletAddress', 'policy'], 'properties': {'label': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'policy': {'type': 'object', 'required': ['nativeLargeTransferAtomic', 'tokenLargeTransferAtomic', 'allowedCounterparties', 'allowedContracts', 'burstWindowSeconds', 'burstTransactionCount', 'failureWindowSize', 'failureRateThreshold'], 'properties': {'allowedContracts': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500}, 'failureWindowSize': {'type': 'integer', 'maximum': 1000, 'minimum': 2}, 'burstWindowSeconds': {'type': 'integer', 'maximum': 86400, 'minimum': 1}, 'failureRateThreshold': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'allowedCounterparties': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500}, 'burstTransactionCount': {'type': 'integer', 'maximum': 1000, 'minimum': 2}, 'tokenLargeTransferAtomic': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$'}}, 'nativeLargeTransferAtomic': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$'}}, 'additionalProperties': False}, 'chainId': {'type': 'string', 'const': 'eip155:84532'}, 'walletAddress': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$'}}, 'additionalProperties': False}
stop_monitor_a2a_endpoint
Stop an A2A alert endpoint
Idempotently stops an account-owned endpoint and cancels only its unsent deliveries.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['endpointId'], 'properties': {'endpointId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
stop_monitor_subscription
Stop a monitor subscription
Idempotently disables monitoring for one account-owned subscription without deleting its audit history.
Destructive Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subscriptionId'], 'properties': {'subscriptionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
update_monitor_alert_status
Update on-chain monitor alert status
Idempotently updates only the case status and note for an alert owned by the authenticated monitor account. It never changes notification state or performs wallet actions.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['alertId', 'caseStatus'], 'properties': {'note': {'type': 'string', 'maxLength': 1000}, 'alertId': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'caseStatus': {'enum': ['new', 'investigating', 'resolved', 'false_positive'], 'type': 'string'}}, 'additionalProperties': False}
update_monitor_subscription
Update monitor subscription policy
Idempotently updates label or policy. It never activates monitoring, pays, or changes networks.
Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subscriptionId'], 'properties': {'label': {'anyOf': [{'type': 'string', 'maxLength': 100, 'minLength': 1}, {'type': 'null'}]}, 'policy': {'type': 'object', 'required': ['nativeLargeTransferAtomic', 'tokenLargeTransferAtomic', 'allowedCounterparties', 'allowedContracts', 'burstWindowSeconds', 'burstTransactionCount', 'failureWindowSize', 'failureRateThreshold'], 'properties': {'allowedContracts': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500}, 'failureWindowSize': {'type': 'integer', 'maximum': 1000, 'minimum': 2}, 'burstWindowSeconds': {'type': 'integer', 'maximum': 86400, 'minimum': 1}, 'failureRateThreshold': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'allowedCounterparties': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500}, 'burstTransactionCount': {'type': 'integer', 'maximum': 1000, 'minimum': 2}, 'tokenLargeTransferAtomic': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$'}}, 'nativeLargeTransferAtomic': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$'}}, 'additionalProperties': False}, 'subscriptionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
verify_monitor_a2a_dns_txt_challenge
Verify an A2A endpoint DNS TXT challenge
Checks only Cloudflare's fixed DNS resolver when DNS verification is enabled. It never contacts the customer endpoint and never enables delivery.
Open world Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['endpointId', 'challengeId'], 'properties': {'endpointId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'challengeId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}
verify_risk
Verify risk with AegisAI
Runs paid AegisAI risk verification and never runs verification for free. An x402-aware MCP client can pay and retry this tool automatically; unpaid calls return the canonical payment challenge.
Read only Open world
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['content'], 'properties': {'plan': {'enum': ['basic', 'pro', 'evidence'], 'type': 'string', 'default': 'basic', 'description': 'Product plan. Evidence is advertised but not yet available.'}, 'content': {'type': 'string', 'maxLength': 12000, 'minLength': 1, 'description': 'Text to assess before an external action.'}, 'context': {'type': 'object', 'properties': {'riskTolerance': {'enum': ['low', 'medium', 'high'], 'type': 'string'}, 'intendedAction': {'type': 'string', 'maxLength': 128, 'minLength': 1}}, 'additionalProperties': False}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'value'], 'properties': {'type': {'type': 'string', 'const': 'url'}, 'value': {'type': 'string', 'format': 'uri', 'maxLength': 2048}}, 'additionalProperties': False}, 'maxItems': 20}, 'requestedChecks': {'type': 'array', 'items': {'enum': ['prompt_injection', 'contradiction', 'unsupported_claims', 'source_availability'], 'type': 'string'}, 'maxItems': 4}}, 'additionalProperties': False}
Added
verify_risk
Sept. 17, 2026, 12:42 p.m.
Added
stop_monitor_a2a_endpoint
Sept. 17, 2026, 12:42 p.m.
Added
verify_monitor_a2a_dns_txt_challenge
Sept. 17, 2026, 12:42 p.m.
Added
create_monitor_a2a_dns_txt_challenge
Sept. 17, 2026, 12:42 p.m.
Added
create_monitor_a2a_endpoint_challenge
Sept. 17, 2026, 12:42 p.m.
Added
list_monitor_a2a_endpoints
Sept. 17, 2026, 12:42 p.m.
Added
register_monitor_a2a_endpoint
Sept. 17, 2026, 12:42 p.m.
Added
stop_monitor_subscription
Sept. 17, 2026, 12:42 p.m.
Added
update_monitor_subscription
Sept. 17, 2026, 12:42 p.m.
Added
register_monitor_subscription
Sept. 17, 2026, 12:42 p.m.
Added
get_monitor_subscription
Sept. 17, 2026, 12:42 p.m.
Added
list_monitor_subscriptions
Sept. 17, 2026, 12:42 p.m.
Added
update_monitor_alert_status
Sept. 17, 2026, 12:42 p.m.
Added
get_monitor_alert
Sept. 17, 2026, 12:42 p.m.
Added
list_monitor_alerts
Sept. 17, 2026, 12:42 p.m.
Added
evaluate_agent_commerce_policy
Sept. 17, 2026, 12:42 p.m.
Added
get_aegis_capabilities
Sept. 17, 2026, 12:42 p.m.