{"schemaVersion":"1.0","protocol":"Model Context Protocol","protocolVersion":"2026-07-28","serverInfo":{"name":"Veriom Architecture Evidence Gateway","version":"0.1.0","websiteUrl":"https://veriom.ai"},"description":"Public discovery metadata for tenant-scoped evidence-ingestion tools. OAuth is required before any tool executes.","transport":{"type":"streamable-http","url":"https://mcp.veriom.ai/mcp","stateless":true},"authentication":{"type":"oauth2","protectedResourceMetadata":"https://mcp.veriom.ai/.well-known/oauth-protected-resource/mcp","scopesSupported":["audits:write","evidence:write","ingestion:read","uploads:write"]},"capabilities":{"tools":{"listChanged":false}},"tools":[{"name":"get_ingestion_capabilities","description":"Verify MCP authorization, workspace binding, and typed-ingestion capabilities before submitting evidence. Returns one known-good sample payload.","inputSchema":{"properties":{},"title":"get_ingestion_capabilitiesArguments","type":"object"},"outputSchema":{"$defs":{"EvidenceSubmission":{"additionalProperties":false,"properties":{"evidence_id":{"format":"uuid","title":"Evidence Id","type":"string"},"source_type":{"enum":["code","cloud","cicd","runtime","declared"],"title":"Source Type","type":"string"},"provider":{"maxLength":100,"minLength":1,"title":"Provider","type":"string"},"kind":{"maxLength":100,"minLength":1,"title":"Kind","type":"string"},"subject_key":{"maxLength":1000,"minLength":1,"title":"Subject Key","type":"string"},"subject_kind":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Subject Kind"},"subject_name":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Subject Name"},"subject_attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":50,"title":"Subject Attributes","type":"object"},"relationship_kind":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Relationship Kind"},"object_key":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"title":"Object Key"},"object_kind":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Object Kind"},"object_name":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Object Name"},"object_attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":50,"title":"Object Attributes","type":"object"},"source_ref":{"maxLength":2048,"minLength":1,"title":"Source Ref","type":"string"},"summary":{"maxLength":1000,"minLength":1,"title":"Summary","type":"string"},"content_sha256":{"pattern":"^[a-f0-9]{64}$","title":"Content Sha256","type":"string"},"observed_at":{"format":"date-time","title":"Observed At","type":"string"},"confidence":{"maximum":1,"minimum":0,"title":"Confidence","type":"number"}},"required":["evidence_id","source_type","provider","kind","subject_key","source_ref","summary","content_sha256","observed_at","confidence"],"title":"EvidenceSubmission","type":"object"}},"additionalProperties":false,"properties":{"schema_version":{"default":"mcp-ingestion-capabilities-v1","title":"Schema Version","type":"string"},"workspace_id":{"format":"uuid","title":"Workspace Id","type":"string"},"accepted_source_types":{"items":{"type":"string"},"title":"Accepted Source Types","type":"array"},"maximum_batch_size":{"title":"Maximum Batch Size","type":"integer"},"required_write_scope":{"title":"Required Write Scope","type":"string"},"isolation":{"title":"Isolation","type":"string"},"sample_batch_id":{"title":"Sample Batch Id","type":"string"},"sample":{"$ref":"#/$defs/EvidenceSubmission"}},"required":["workspace_id","accepted_source_types","maximum_batch_size","required_write_scope","isolation","sample_batch_id","sample"],"title":"IngestionCapabilities","type":"object"},"requiredScopes":["ingestion:read"]},{"name":"submit_evidence_batch","description":"Submit bounded architecture evidence. Records remain untrusted until normalized.","inputSchema":{"$defs":{"EvidenceSubmission":{"additionalProperties":false,"properties":{"evidence_id":{"format":"uuid","title":"Evidence Id","type":"string"},"source_type":{"enum":["code","cloud","cicd","runtime","declared"],"title":"Source Type","type":"string"},"provider":{"maxLength":100,"minLength":1,"title":"Provider","type":"string"},"kind":{"maxLength":100,"minLength":1,"title":"Kind","type":"string"},"subject_key":{"maxLength":1000,"minLength":1,"title":"Subject Key","type":"string"},"subject_kind":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Subject Kind"},"subject_name":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Subject Name"},"subject_attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":50,"title":"Subject Attributes","type":"object"},"relationship_kind":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Relationship Kind"},"object_key":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"title":"Object Key"},"object_kind":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Object Kind"},"object_name":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Object Name"},"object_attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":50,"title":"Object Attributes","type":"object"},"source_ref":{"maxLength":2048,"minLength":1,"title":"Source Ref","type":"string"},"summary":{"maxLength":1000,"minLength":1,"title":"Summary","type":"string"},"content_sha256":{"pattern":"^[a-f0-9]{64}$","title":"Content Sha256","type":"string"},"observed_at":{"format":"date-time","title":"Observed At","type":"string"},"confidence":{"maximum":1,"minimum":0,"title":"Confidence","type":"number"}},"required":["evidence_id","source_type","provider","kind","subject_key","source_ref","summary","content_sha256","observed_at","confidence"],"title":"EvidenceSubmission","type":"object"}},"properties":{"batch_id":{"title":"Batch Id","type":"string"},"evidence":{"items":{"$ref":"#/$defs/EvidenceSubmission"},"maxItems":100,"minItems":1,"title":"Evidence","type":"array"}},"required":["batch_id","evidence"],"title":"submit_evidence_batchArguments","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"},"accepted":{"title":"Accepted","type":"integer"},"status":{"title":"Status","type":"string"}},"required":["ingestion_id","accepted","status"],"title":"EvidenceBatchResult","type":"object"},"requiredScopes":["evidence:write"]},{"name":"submit_cloud_snapshot","description":"Submit a bounded AWS, Azure, or GCP inventory snapshot with explicit identity, network, deployment, and data relationships. Credentials and ambient actions are not accepted.","inputSchema":{"$defs":{"CloudCollectionMetadata":{"additionalProperties":false,"description":"How a bounded inventory was collected, including partial-coverage disclosure.","properties":{"collector":{"default":"customer","maxLength":100,"minLength":1,"title":"Collector","type":"string"},"collector_version":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Collector Version"},"collected_at":{"format":"date-time","title":"Collected At","type":"string"},"status":{"default":"complete","enum":["complete","partial"],"title":"Status","type":"string"},"completed_scopes":{"items":{"type":"string"},"maxItems":50,"title":"Completed Scopes","type":"array"},"warnings":{"items":{"type":"string"},"maxItems":50,"title":"Warnings","type":"array"}},"title":"CloudCollectionMetadata","type":"object"},"CloudEvidenceSnapshot":{"additionalProperties":false,"description":"A bounded snapshot produced by a customer-controlled cloud collector.","properties":{"schema_version":{"const":"veriom-cloud-evidence-v1","default":"veriom-cloud-evidence-v1","title":"Schema Version","type":"string"},"provider":{"enum":["aws","azure","gcp"],"title":"Provider","type":"string"},"account_ref":{"maxLength":255,"minLength":1,"title":"Account Ref","type":"string"},"sync_id":{"maxLength":255,"minLength":1,"title":"Sync Id","type":"string"},"collection":{"$ref":"#/$defs/CloudCollectionMetadata"},"resources":{"items":{"$ref":"#/$defs/CloudResource"},"maxItems":500,"minItems":1,"title":"Resources","type":"array"},"relationships":{"items":{"$ref":"#/$defs/CloudRelationship"},"maxItems":1000,"title":"Relationships","type":"array"}},"required":["provider","account_ref","sync_id","resources"],"title":"CloudEvidenceSnapshot","type":"object"},"CloudRelationship":{"additionalProperties":false,"properties":{"source_id":{"maxLength":2048,"minLength":1,"title":"Source Id","type":"string"},"target_id":{"maxLength":2048,"minLength":1,"title":"Target Id","type":"string"},"kind":{"enum":["contains","member_of","assumes","can_assume","attached_to","routes_to","can_reach","exposes","deploys","deploys_to","reads_from","writes_to","protects","depends_on","runs_on","authenticates_with","governed_by"],"title":"Kind","type":"string"},"properties":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":50,"title":"Properties"},"observed_at":{"format":"date-time","title":"Observed At","type":"string"},"confidence":{"default":0.88,"maximum":1,"minimum":0,"title":"Confidence","type":"number"}},"required":["source_id","target_id","kind"],"title":"CloudRelationship","type":"object"},"CloudResource":{"additionalProperties":false,"description":"A provider-neutral inventory record containing no credentials or resource body.","properties":{"external_id":{"maxLength":2048,"minLength":1,"title":"External Id","type":"string"},"name":{"maxLength":500,"minLength":1,"title":"Name","type":"string"},"resource_type":{"maxLength":255,"minLength":1,"title":"Resource Type","type":"string"},"category":{"default":"other","enum":["account","identity","network","compute","container","service","data","deployment","other"],"title":"Category","type":"string"},"region":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"title":"Region"},"properties":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":50,"title":"Properties"},"observed_at":{"format":"date-time","title":"Observed At","type":"string"},"confidence":{"default":0.88,"maximum":1,"minimum":0,"title":"Confidence","type":"number"}},"required":["external_id","name","resource_type"],"title":"CloudResource","type":"object"}},"properties":{"snapshot":{"$ref":"#/$defs/CloudEvidenceSnapshot"}},"required":["snapshot"],"title":"submit_cloud_snapshotArguments","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"},"accepted":{"title":"Accepted","type":"integer"},"status":{"title":"Status","type":"string"}},"required":["ingestion_id","accepted","status"],"title":"EvidenceBatchResult","type":"object"},"requiredScopes":["evidence:write"]},{"name":"create_artifact_upload","description":"Create a signed upload for one repository ZIP or a ZIP bundle containing two or more repository ZIPs. Every nested repository is archive-safety and malware validated.","inputSchema":{"properties":{"filename":{"title":"Filename","type":"string"},"compressed_bytes":{"title":"Compressed Bytes","type":"integer"},"sha256":{"title":"Sha256","type":"string"}},"required":["filename","compressed_bytes","sha256"],"title":"create_artifact_uploadArguments","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"},"upload_id":{"format":"uuid","title":"Upload Id","type":"string"},"upload_url":{"title":"Upload Url","type":"string"},"headers":{"additionalProperties":{"type":"string"},"title":"Headers","type":"object"},"expires_in_seconds":{"title":"Expires In Seconds","type":"integer"}},"required":["ingestion_id","upload_id","upload_url","headers","expires_in_seconds"],"title":"ArtifactUploadResult","type":"object"},"requiredScopes":["uploads:write"]},{"name":"complete_artifact_upload","description":"Seal a repository or repository-bundle upload and enqueue malware and recursive archive-safety validation.","inputSchema":{"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"}},"required":["ingestion_id"],"title":"complete_artifact_uploadArguments","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"},"status":{"title":"Status","type":"string"},"evidence_count":{"title":"Evidence Count","type":"integer"},"upload_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"title":"Upload Id"},"malware_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Malware Status"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"validation_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Validation Stage"},"validation_progress":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Validation Progress"},"error_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Error Detail"}},"required":["ingestion_id","status","evidence_count","upload_id","malware_status","error_code"],"title":"IngestionStatus","type":"object"},"requiredScopes":["uploads:write"]},{"name":"get_ingestion_status","description":"Read tenant-scoped evidence or artifact ingestion status.","inputSchema":{"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"}},"required":["ingestion_id"],"title":"get_ingestion_statusArguments","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"},"status":{"title":"Status","type":"string"},"evidence_count":{"title":"Evidence Count","type":"integer"},"upload_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"title":"Upload Id"},"malware_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Malware Status"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"validation_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Validation Stage"},"validation_progress":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Validation Progress"},"error_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Error Detail"}},"required":["ingestion_id","status","evidence_count","upload_id","malware_status","error_code"],"title":"IngestionStatus","type":"object"},"requiredScopes":["ingestion:read"]},{"name":"start_audit","description":"Start an isolated audit after a ZIP ingestion has passed malware and archive-safety validation. The idempotency key makes retries safe.","inputSchema":{"properties":{"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"},"idempotency_key":{"maxLength":255,"minLength":8,"title":"Idempotency Key","type":"string"},"deep_review":{"default":false,"title":"Deep Review","type":"boolean"}},"required":["ingestion_id","idempotency_key"],"title":"start_auditArguments","type":"object"},"outputSchema":{"additionalProperties":false,"properties":{"audit_id":{"format":"uuid","title":"Audit Id","type":"string"},"status":{"title":"Status","type":"string"},"ingestion_id":{"format":"uuid","title":"Ingestion Id","type":"string"},"upload_id":{"format":"uuid","title":"Upload Id","type":"string"}},"required":["audit_id","status","ingestion_id","upload_id"],"title":"AuditStartResult","type":"object"},"requiredScopes":["audits:write"]}]}