AegisAI
Paid pre-execution risk verification for AI agents over MCP and x402.
我该使用它吗
质量与安全性
发现(3)
- LOW在 create_monitor_a2a_endpoint_challenge 中
- LOW在 create_monitor_a2a_dns_txt_challenge 中
- LOW在 verify_monitor_a2a_dns_txt_challenge 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"aegis-ai": {
"url": "https://aegis-api.kadopi.workers.dev/mcp"
}
}
}远程端点
https://aegis-api.kadopi.workers.dev/mcpstreamable-http它能做什么
工具清单
工具(17)
🟢get_aegis_capabilities
Returns machine-readable discovery links and x402 testnet payment information. This tool is free and does not perform risk verification.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢evaluate_agent_commerce_policy(seller, offer, purchase)
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.
输入模式
{
"type": "object",
"properties": {
"seller": {
"type": "object",
"properties": {
"serviceId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"serviceId"
],
"additionalProperties": false
},
"offer": {
"type": "object",
"properties": {
"contractVersion": {
"type": "string",
"const": "1.0"
},
"kind": {
"type": "string",
"const": "machine_offer"
},
"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",
"minLength": 1,
"maxLength": 128
},
"plan": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"route": {
"type": "string"
},
"price": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"const": "x402"
},
"version": {
"type": "number",
"const": 2
},
"currency": {
"type": "string",
"minLength": 1,
"maxLength": 16
},
"amount": {
"type": "string"
},
"amountDecimal": {
"type": "string"
},
"network": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"protocol",
"version",
"currency",
"amount",
"amountDecimal",
"network",
"asset",
"payTo"
],
"additionalProperties": false
},
"policy": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "public_price"
},
"automaticPurchaseAllowed": {
"type": "boolean",
"const": true
}
},
"required": [
"kind",
"automaticPurchaseAllowed"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "exception"
},
"automaticPurchaseAllowed": {
"type": "boolean",
"const": false
}
},
"required": [
"kind",
"automaticPurchaseAllowed"
],
"additionalProperties": false
}
]
},
"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))$"
},
"termsDigest": {
"type": "string"
},
"retryPolicy": {
"type": "object",
"properties": {
"beforeSettlement": {
"type": "string",
"const": "new_authorization_only"
},
"unknownOutcome": {
"type": "string",
"const": "never"
}
},
"required": [
"beforeSettlement",
"unknownOutcome"
],
"additionalProperties": false
}
},
"required": [
"contractVersion",
"kind",
"offerId",
"service",
"plan",
"route",
"price",
"policy",
"issuedAt",
"expiresAt",
"termsDigest",
"retryPolicy"
],
"additionalProperties": false
},
"purchase": {
"type": "object",
"properties": {
"contractVersion": {
"type": "string",
"const": "1.0"
},
"kind": {
"type": "string",
"const": "purchase_request"
},
"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)$"
},
"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)$"
},
"idempotencyKey": {
"type": "string"
},
"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)$"
},
"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))$"
},
"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))$"
},
"plan": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"route": {
"type": "string"
},
"price": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"const": "x402"
},
"version": {
"type": "number",
"const": 2
},
"currency": {
"type": "string",
"minLength": 1,
"maxLength": 16
},
"amount": {
"type": "string"
},
"amountDecimal": {
"type": "string"
},
"network": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"protocol",
"version",
"currency",
"amount",
"amountDecimal",
"network",
"asset",
"payTo"
],
"additionalProperties": false
},
"inputDigest": {
"type": "string"
},
"termsDigest": {
"type": "string"
}
},
"required": [
"contractVersion",
"kind",
"transactionId",
"offerId",
"idempotencyKey",
"nonce",
"requestedAt",
"expiresAt",
"plan",
"route",
"price",
"inputDigest",
"termsDigest"
],
"additionalProperties": false
}
},
"required": [
"seller",
"offer",
"purchase"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_monitor_alerts(severity, caseStatus, walletAddress, limit)
Lists structured alerts belonging only to the authenticated monitor account. This tool never sends notifications or performs wallet actions.
输入模式
{
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"warning",
"critical"
]
},
"caseStatus": {
"type": "string",
"enum": [
"new",
"investigating",
"resolved",
"false_positive"
]
},
"walletAddress": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_monitor_alert(alertId)
Returns one structured alert and its bounded evidence for the authenticated monitor account.
输入模式
{
"type": "object",
"properties": {
"alertId": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
},
"required": [
"alertId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡update_monitor_alert_status(alertId, caseStatus, note)
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.
输入模式
{
"type": "object",
"properties": {
"alertId": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"caseStatus": {
"type": "string",
"enum": [
"new",
"investigating",
"resolved",
"false_positive"
]
},
"note": {
"type": "string",
"maxLength": 1000
}
},
"required": [
"alertId",
"caseStatus"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_monitor_subscriptions
Lists account-scoped Base Sepolia monitor subscriptions without changing monitoring or payment state.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_monitor_subscription(subscriptionId)
Returns one account-owned subscription and its current policy and scan state.
输入模式
{
"type": "object",
"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)$"
}
},
"required": [
"subscriptionId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪register_monitor_subscription(chainId, walletAddress, label, policy)
Registers a Base Sepolia wallet and validated policy in stopped state. Payment and operator approval are still required before activation.
输入模式
{
"type": "object",
"properties": {
"chainId": {
"type": "string",
"const": "eip155:84532"
},
"walletAddress": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"policy": {
"type": "object",
"properties": {
"nativeLargeTransferAtomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$"
},
"tokenLargeTransferAtomic": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"allowedCounterparties": {
"maxItems": 500,
"type": "array",
"items": {
"type": "string"
}
},
"allowedContracts": {
"maxItems": 500,
"type": "array",
"items": {
"type": "string"
}
},
"burstWindowSeconds": {
"type": "integer",
"minimum": 1,
"maximum": 86400
},
"burstTransactionCount": {
"type": "integer",
"minimum": 2,
"maximum": 1000
},
"failureWindowSize": {
"type": "integer",
"minimum": 2,
"maximum": 1000
},
"failureRateThreshold": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"nativeLargeTransferAtomic",
"tokenLargeTransferAtomic",
"allowedCounterparties",
"allowedContracts",
"burstWindowSeconds",
"burstTransactionCount",
"failureWindowSize",
"failureRateThreshold"
],
"additionalProperties": false
}
},
"required": [
"chainId",
"walletAddress",
"policy"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡update_monitor_subscription(subscriptionId, label, policy)
Idempotently updates label or policy. It never activates monitoring, pays, or changes networks.
输入模式
{
"type": "object",
"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)$"
},
"label": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
},
"policy": {
"type": "object",
"properties": {
"nativeLargeTransferAtomic": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$"
},
"tokenLargeTransferAtomic": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$"
}
},
"allowedCounterparties": {
"maxItems": 500,
"type": "array",
"items": {
"type": "string"
}
},
"allowedContracts": {
"maxItems": 500,
"type": "array",
"items": {
"type": "string"
}
},
"burstWindowSeconds": {
"type": "integer",
"minimum": 1,
"maximum": 86400
},
"burstTransactionCount": {
"type": "integer",
"minimum": 2,
"maximum": 1000
},
"failureWindowSize": {
"type": "integer",
"minimum": 2,
"maximum": 1000
},
"failureRateThreshold": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"nativeLargeTransferAtomic",
"tokenLargeTransferAtomic",
"allowedCounterparties",
"allowedContracts",
"burstWindowSeconds",
"burstTransactionCount",
"failureWindowSize",
"failureRateThreshold"
],
"additionalProperties": false
}
},
"required": [
"subscriptionId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴stop_monitor_subscription(subscriptionId)
Idempotently disables monitoring for one account-owned subscription without deleting its audit history.
输入模式
{
"type": "object",
"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)$"
}
},
"required": [
"subscriptionId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪register_monitor_a2a_endpoint(endpointUrl, transport, protocolVersion, minSeverity, maxPerHour)
Registers an account-scoped endpoint in pending-verification state. Registration never contacts the endpoint and delivery remains disabled.
输入模式
{
"type": "object",
"properties": {
"endpointUrl": {
"type": "string",
"maxLength": 2048,
"format": "uri"
},
"transport": {
"type": "string",
"enum": [
"jsonrpc",
"http_json"
]
},
"protocolVersion": {
"type": "string",
"pattern": "^[0-9]{1,3}\\.[0-9]{1,3}(?:\\.[0-9]{1,3})?$"
},
"minSeverity": {
"default": "warning",
"type": "string",
"enum": [
"warning",
"critical"
]
},
"maxPerHour": {
"default": 6,
"type": "integer",
"minimum": 1,
"maximum": 60
}
},
"required": [
"endpointUrl",
"transport",
"protocolVersion"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_monitor_a2a_endpoints
Lists the authenticated account's A2A notification endpoints and delivery-disabled state.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡create_monitor_a2a_endpoint_challenge(endpointId)
Creates a one-time 15-minute challenge for a pending endpoint. It does not contact or verify the endpoint and never enables delivery.
输入模式
{
"type": "object",
"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)$"
}
},
"required": [
"endpointId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡create_monitor_a2a_dns_txt_challenge(endpointId)
Creates a one-time DNS TXT ownership challenge without contacting the customer endpoint. Verification and delivery remain disabled.
输入模式
{
"type": "object",
"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)$"
}
},
"required": [
"endpointId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪verify_monitor_a2a_dns_txt_challenge(endpointId, challengeId)
Checks only Cloudflare's fixed DNS resolver when DNS verification is enabled. It never contacts the customer endpoint and never enables delivery.
输入模式
{
"type": "object",
"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)$"
}
},
"required": [
"endpointId",
"challengeId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪stop_monitor_a2a_endpoint(endpointId)
Idempotently stops an account-owned endpoint and cancels only its unsent deliveries.
输入模式
{
"type": "object",
"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)$"
}
},
"required": [
"endpointId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢verify_risk(plan, content, context, sources, requestedChecks)
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.
输入模式
{
"type": "object",
"properties": {
"plan": {
"default": "basic",
"description": "Product plan. Evidence is advertised but not yet available.",
"type": "string",
"enum": [
"basic",
"pro",
"evidence"
]
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 12000,
"description": "Text to assess before an external action."
},
"context": {
"type": "object",
"properties": {
"intendedAction": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"riskTolerance": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
}
},
"additionalProperties": false
},
"sources": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "url"
},
"value": {
"type": "string",
"maxLength": 2048,
"format": "uri"
}
},
"required": [
"type",
"value"
],
"additionalProperties": false
}
},
"requestedChecks": {
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"enum": [
"prompt_injection",
"contradiction",
"unsupported_claims",
"source_availability"
]
}
}
},
"required": [
"content"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}社区
证据