Vigil — an outside witness for AI agents
이 MCP로 할 수 있는 일
Provides signed receipts, hash-chained notarization, leases, watchdogs, journal storage, source verification, and verification utilities for monitoring and controlling agent actions.
도구
입력 스키마
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'to_serial': 10, 'from_serial': 1}], 'properties': {'to_serial': {'type': 'integer', 'maximum': 9223372036854775807, 'minimum': 1, 'description': 'Last serial (default = from_serial).'}, 'from_serial': {'type': 'integer', 'maximum': 9223372036854775807, 'minimum': 1, 'description': 'First serial (default 1).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'name': 'agent-health'}], 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Watchdog name, 1..64 characters.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'serial': 1}], 'required': ['serial'], 'properties': {'serial': {'type': 'integer', 'maximum': 9223372036854775807, 'minimum': 1, 'description': 'The receipt serial number.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'lim': 'amount<=100usd', 'agent': 'refund-agent', 'ttl_s': 60, 'action': 'stripe.refund'}], 'required': ['agent', 'action', 'ttl_s'], 'properties': {'lim': {'type': 'string', 'maxLength': 256, 'description': "Optional limit string the gateway enforces, e.g. 'amount<=50usd'."}, 'agent': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier for the agent being authorized (1-128 chars).'}, 'ttl_s': {'type': 'integer', 'maximum': 604800, 'minimum': 5, 'description': 'Lease lifetime in seconds, 5..604800. Keep it short; renew to extend.'}, 'action': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "The action class this lease authorizes, e.g. 'stripe.refund' (1-128 chars)."}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'name': 'agent-health'}], 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Watchdog name, 1..64 characters.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'slug': 'encrypted-state'}], 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{1,64}$', 'maxLength': 64, 'minLength': 1, 'description': 'Journal slot name, 1..64 ASCII letters, numbers, hyphens, or underscores.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'slug': 'encrypted-state'}], 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{1,64}$', 'maxLength': 64, 'minLength': 1, 'description': 'Journal slot name, 1..64 ASCII letters, numbers, hyphens, or underscores.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'slug': 'encrypted-state', 'data_base64': 'ZW5jcnlwdGVkLWJ5dGVz'}], 'required': ['slug', 'data_base64'], 'properties': {'slug': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{1,64}$', 'maxLength': 64, 'minLength': 1, 'description': '1-64 alnum/-/_ chars.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}, 'data_base64': {'type': 'string', 'maxLength': 100000, 'description': 'The (already-encrypted) bytes, base64-encoded.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'lease_id': 'lease_example'}], 'required': ['lease_id'], 'properties': {'lease_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Opaque lease identifier returned by vigil_grant_lease.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'label': 'public example digest', 'subject_sha256': '0000000000000000000000000000000000000000000000000000000000000000'}], 'required': ['subject_sha256'], 'properties': {'label': {'type': 'string', 'maxLength': 200, 'description': 'Optional human label, <=200 chars. Public — do not put secrets here.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}, 'subject_sha256': {'type': 'string', 'pattern': '^[0-9a-fA-F]{64}$', 'maxLength': 64, 'minLength': 64, 'description': '64 lowercase hex chars: the sha256 of the thing you are notarizing.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{}], 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'handle': 'example-agent'}], 'required': ['handle'], 'properties': {'handle': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9_-]{0,63}$', 'maxLength': 64, 'minLength': 1, 'description': '1-64 chars, lowercase alnum plus - and _.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'ttl_s': 60, 'lease_id': 'lease_example'}], 'required': ['lease_id', 'ttl_s'], 'properties': {'ttl_s': {'type': 'integer', 'maximum': 604800, 'minimum': 5, 'description': 'Requested lease lifetime in seconds, 5..604800; offline trust still ends at recheck_by_ms within 30 seconds.'}, 'lease_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Opaque lease identifier returned by vigil_grant_lease.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'lease_id': 'lease_example'}], 'required': ['lease_id'], 'properties': {'lease_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Opaque lease identifier returned by vigil_grant_lease.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'name': 'agent-health', 'message': 'agent missed heartbeat', 'interval_s': 300, 'webhook_url': 'https://alerts.example.com/vigil'}], 'required': ['name', 'interval_s', 'webhook_url'], 'properties': {'name': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A name for this watchdog, 1-64 chars.'}, 'message': {'type': 'string', 'maxLength': 2000, 'description': 'Optional note included in the absence payload, <=2000 chars.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}, 'interval_s': {'type': 'integer', 'maximum': 604800, 'minimum': 60, 'description': 'Seconds allowed between heartbeats, 60..604800.'}, 'webhook_url': {'type': 'string', 'pattern': '^https://[^\\s]+$', 'maxLength': 2048, 'minLength': 1, 'description': 'An https URL resolving to a public address; fired once on a missed heartbeat.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{}], 'required': [], 'properties': {'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['lease', 'pubkey_hex'], 'properties': {'lease': {'type': 'object', 'description': 'A full lease token from vigil_grant_lease.'}, 'pubkey_hex': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64, 'description': 'Mandatory Ed25519 public key pinned from a trusted out-of-band source; never copy it from the lease.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['receipt', 'pubkey_hex'], 'properties': {'receipt': {'type': 'object', 'description': 'A full receipt object as returned by vigil_notarize / vigil_get_receipt.'}, 'pubkey_hex': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64, 'description': 'Mandatory Ed25519 public key pinned from a trusted out-of-band source; never copy it from the receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['source_url', 'claim'], 'properties': {'claim': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'options': {'type': 'object', 'properties': {'max_price_usd': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$', 'maxLength': 32}, 'max_age_seconds': {'type': 'integer', 'default': 60, 'maximum': 300, 'minimum': 0}}, 'additionalProperties': False}, 'source_url': {'type': 'string', 'format': 'uri', 'pattern': '^https://[^\\s]+$', 'maxLength': 2048}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'allOf': [{'if': {'properties': {'assessment_scope': {'const': 'literal_quotation_only'}}}, 'then': {'properties': {'evidence': {'items': {'properties': {'stance': {'const': 'mentions'}}}}, 'claim_support': {'enum': ['not_assessed', 'insufficient_evidence']}}}}, {'if': {'properties': {'claim_support': {'const': 'supports'}}}, 'then': {'properties': {'evidence': {'allOf': [{'contains': {'required': ['stance'], 'properties': {'stance': {'const': 'supports'}}}, 'minContains': 1}]}}}}, {'if': {'properties': {'claim_support': {'const': 'contradicts'}}}, 'then': {'properties': {'evidence': {'allOf': [{'contains': {'required': ['stance'], 'properties': {'stance': {'const': 'contradicts'}}}, 'minContains': 1}]}}}}, {'if': {'properties': {'claim_support': {'const': 'mixed'}}}, 'then': {'properties': {'evidence': {'allOf': [{'contains': {'required': ['stance'], 'properties': {'stance': {'const': 'supports'}}}, 'minContains': 1}, {'contains': {'required': ['stance'], 'properties': {'stance': {'const': 'contradicts'}}}, 'minContains': 1}]}}}}], 'required': ['schema_version', 'request_id', 'status', 'verification_type', 'source', 'reachable', 'source_identity', 'claim', 'claim_support', 'explanation', 'evidence', 'confidence', 'risk_flags', 'checked_at', 'served_at', 'methodology_version', 'assessment_scope', 'limits', 'cache', 'payment', 'receipt'], 'properties': {'cache': {'type': 'object', 'required': ['hit', 'age_seconds', 'original_checked_at'], 'properties': {'hit': {'type': 'boolean'}, 'age_seconds': {'type': 'integer', 'minimum': 0}, 'original_checked_at': {'type': 'string', 'format': 'date-time', 'pattern': '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,6})?Z$'}}, 'additionalProperties': False}, 'claim': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'limits': {'type': 'object', 'required': ['max_text_chars'], 'properties': {'fixture': {'const': True}, 'max_redirects': {'type': 'integer', 'maximum': 5, 'minimum': 0}, 'max_text_chars': {'type': 'integer', 'maximum': 100000, 'minimum': 1}, 'max_wire_bytes': {'type': 'integer', 'maximum': 4194304, 'minimum': 1}, 'timeout_seconds': {'anyOf': [{'type': 'integer', 'maximum': 60, 'minimum': 1}, {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)\\.[0-9]+$'}]}, 'max_header_bytes': {'type': 'integer', 'maximum': 65536, 'minimum': 1}, 'max_decoded_bytes': {'type': 'integer', 'maximum': 8388608, 'minimum': 1}, 'socket_timeout_seconds': {'anyOf': [{'type': 'integer', 'maximum': 15, 'minimum': 1}, {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)\\.[0-9]+$'}]}}, 'additionalProperties': False}, 'source': {'type': 'object', 'required': ['requested_url', 'final_url', 'http_status', 'content_type', 'content_sha256', 'text_sha256', 'normalized_text', 'offset_unit', 'redirects', 'wire_bytes', 'decoded_bytes'], 'properties': {'final_url': {'type': 'string', 'format': 'uri', 'pattern': '^https://', 'maxLength': 49152}, 'redirects': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'status'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'pattern': '^https://', 'maxLength': 49152}, 'status': {'enum': [301, 302, 303, 307, 308]}}, 'additionalProperties': False}, 'maxItems': 5}, 'wire_bytes': {'type': 'integer', 'maximum': 26000000, 'minimum': 0}, 'http_status': {'const': 200}, 'offset_unit': {'const': 'unicode_codepoint'}, 'text_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'content_type': {'type': 'string', 'pattern': '^[Tt][Ee][Xx][Tt]/([Hh][Tt][Mm][Ll]|[Pp][Ll][Aa][Ii][Nn])(?:\\s*;.*)?$', 'maxLength': 32768}, 'decoded_bytes': {'type': 'integer', 'maximum': 8388608, 'minimum': 0}, 'requested_url': {'type': 'string', 'format': 'uri', 'pattern': '^https://[^\\s]+$', 'maxLength': 2048}, 'content_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'normalized_text': {'type': 'string', 'maxLength': 100000}}, 'additionalProperties': False}, 'status': {'const': 'completed'}, 'payment': {'type': 'object', 'required': ['status', 'provider', 'mode', 'simulated', 'network', 'asset', 'currency', 'amount_atomic', 'price_usd', 'transaction', 'facilitator_fee_usd', 'network_fee_usd'], 'properties': {'mode': {'enum': ['offline', 'testnet', 'mainnet']}, 'asset': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'status': {'const': 'settled'}, 'network': {'enum': ['eip155:8453', 'eip155:84532', 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1', 'none']}, 'currency': {'const': 'USDC'}, 'provider': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'price_usd': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$', 'maxLength': 32}, 'simulated': {'type': 'boolean'}, 'transaction': {'type': ['string', 'null'], 'maxLength': 512}, 'amount_atomic': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,17})$'}, 'network_fee_usd': {'anyOf': [{'type': 'string', 'pattern': '^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$', 'maxLength': 32}, {'type': 'null'}]}, 'facilitator_fee_usd': {'anyOf': [{'type': 'string', 'pattern': '^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$', 'maxLength': 32}, {'type': 'null'}]}}, 'description': 'USDC uses six atomic decimals. Offline mock payments simulate USDC and move no funds. Null fees are unknown, not zero.', 'additionalProperties': False}, 'receipt': {'type': 'object', 'required': ['envelope', 'canonical_envelope_base64', 'attestation', 'verification'], 'properties': {'envelope': {'type': 'object', 'required': ['type', 'version', 'request_id', 'result_sha256', 'checked_at', 'methodology_version', 'payment', 'issued_at'], 'properties': {'type': {'const': 'vigil.source-verification.purchase'}, 'payment': {'type': 'object', 'required': ['status', 'provider', 'mode', 'simulated', 'network', 'asset', 'currency', 'amount_atomic', 'price_usd', 'transaction', 'facilitator_fee_usd', 'network_fee_usd'], 'properties': {'mode': {'enum': ['offline', 'testnet', 'mainnet']}, 'asset': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'status': {'const': 'settled'}, 'network': {'enum': ['eip155:8453', 'eip155:84532', 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1', 'none']}, 'currency': {'const': 'USDC'}, 'provider': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'price_usd': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$', 'maxLength': 32}, 'simulated': {'type': 'boolean'}, 'transaction': {'type': ['string', 'null'], 'maxLength': 512}, 'amount_atomic': {'type': 'string', 'pattern': '^(0|[1-9][0-9]{0,17})$'}, 'network_fee_usd': {'anyOf': [{'type': 'string', 'pattern': '^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$', 'maxLength': 32}, {'type': 'null'}]}, 'facilitator_fee_usd': {'anyOf': [{'type': 'string', 'pattern': '^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$', 'maxLength': 32}, {'type': 'null'}]}}, 'description': 'USDC uses six atomic decimals. Offline mock payments simulate USDC and move no funds. Null fees are unknown, not zero.', 'additionalProperties': False}, 'version': {'const': 1}, 'issued_at': {'type': 'string', 'format': 'date-time', 'pattern': '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,6})?Z$'}, 'checked_at': {'type': 'string', 'format': 'date-time', 'pattern': '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,6})?Z$'}, 'request_id': {'type': 'string', 'format': 'uuid'}, 'result_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'methodology_version': {'type': 'string', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}, 'attestation': {'type': 'object', 'required': ['v', 'serial', 'subject_sha256', 'label', 'requested_by', 'key_id', 'ts_ms', 'ts_utc', 'prev_hash', 'pubkey_hex', 'receipt_hash', 'sig_ed25519_hex'], 'properties': {'v': {'const': 1}, 'label': {'type': ['string', 'null'], 'maxLength': 200}, 'ts_ms': {'type': 'integer', 'minimum': 0}, 'key_id': {'type': 'integer', 'minimum': 0}, 'serial': {'type': 'integer', 'minimum': 1}, 'ts_utc': {'type': 'string', 'format': 'date-time', 'pattern': '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,6})?Z$'}, 'prev_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'pubkey_hex': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'receipt_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'requested_by': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'subject_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'sig_ed25519_hex': {'type': 'string', 'pattern': '^[0-9a-f]{128}$'}}, 'additionalProperties': False}, 'verification': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'canonical_envelope_base64': {'type': 'string', 'pattern': '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$', 'maxLength': 16384, 'minLength': 4, 'contentEncoding': 'base64'}}, 'description': "Pin Vigil's key independently. Verify the Ed25519 attestation, SHA256 of canonical envelope bytes, and SHA256 of the result with receipt removed. Schema validation alone does not authenticate a receipt.", 'additionalProperties': False}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'required': ['evidence_id', 'quote', 'start', 'end', 'stance', 'source_sha256', 'text_sha256'], 'properties': {'end': {'type': 'integer', 'maximum': 100000, 'minimum': 1}, 'quote': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'start': {'type': 'integer', 'maximum': 99999, 'minimum': 0}, 'stance': {'enum': ['supports', 'contradicts', 'mentions']}, 'evidence_id': {'type': 'string', 'pattern': '^e[1-6]$'}, 'text_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'source_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}}, 'description': 'Offsets count Unicode code points in source.normalized_text. Verify start < end and exact substring/digest matches independently; JSON Schema cannot establish them.', 'additionalProperties': False}, 'maxItems': 6}, 'reachable': {'const': True}, 'served_at': {'type': 'string', 'format': 'date-time', 'pattern': '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,6})?Z$'}, 'checked_at': {'type': 'string', 'format': 'date-time', 'pattern': '^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,6})?Z$'}, 'confidence': {'type': 'null', 'description': 'No numerical confidence is published before calibration.'}, 'request_id': {'type': 'string', 'format': 'uuid'}, 'risk_flags': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z][a-z0-9_]*$', 'maxLength': 128}, 'maxItems': 32, 'uniqueItems': True}, 'explanation': {'type': 'string', 'maxLength': 800}, 'claim_support': {'enum': ['supports', 'contradicts', 'mixed', 'insufficient_evidence', 'not_assessed']}, 'schema_version': {'const': '1.0.0'}, 'source_identity': {'type': 'object', 'required': ['hostname', 'tls_verified', 'publisher_identity'], 'properties': {'hostname': {'type': 'string', 'maxLength': 253, 'minLength': 1}, 'tls_verified': {'type': 'boolean'}, 'publisher_identity': {'const': 'unknown'}}, 'additionalProperties': False}, 'assessment_scope': {'enum': ['source_local_semantic_support', 'literal_quotation_only']}, 'verification_type': {'const': 'source'}, 'methodology_version': {'type': 'string', 'maxLength': 256, 'minLength': 1}}, 'description': 'A completed source observation and purchase. Retrieval failures return the error contract and are not submitted for settlement. Source support does not establish truth.', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'examples': [{'name': 'agent-health'}], 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Watchdog name, 1..64 characters.'}, 'vigil_key': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'deprecated': True, 'description': 'DEPRECATED legacy account-wide credential, including deletion and permission issuance. Prefer the client-injected HTTP Authorization: Bearer header; omit this argument when that header authenticates the request. This is not a scoped agent token.'}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
AIMEAT
Provides a self-hosted agent operating system with agent work delegation, access controls, federation, hooks, SSO, security admin…
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Japan Public Ledgers MCP
Provides agent identity, memory, audit, trust, proxy, temporary email, webhook, CAPTCHA, and alerting capabilities alongside publ…
PHION Agent Trust Infrastructure
Provides agent trust, policy, provenance, evidence, delegation, telemetry, and transaction-control services for MCP and agent wor…
Swamp
Coordinates security agents through scoped bug-bounty programs, target claims, vulnerability submissions, peer review, shared fin…
AgentBIT
Routes pay-per-call tools over x402 on Base, covering discovery, data conversion, company research, counterparty screening, domai…
SaSame MCP Observatory + Gold Rush Town
Audits and profiles MCP servers, provides ecosystem analytics, trust and claim records, and non-custodial transaction or escrow a…
ThinkNEO Control Plane
Provides an enterprise AI control plane for governance, guardrails, spend tracking, compliance, and model or tool routing.