{"name":"relayforge-doc-intel","display_name":"RelayForge Engineering Doc Intel","description":"Entity extraction from industrial engineering drawings. Supports P&IDs, single-line diagrams, cable schedules, loop diagrams, cause & effect matrices, and equipment general arrangements. Extracts instrument tags, equipment tags, line numbers, cable numbers, terminal points, breaker tags, and drawing cross-references. Includes CMMS diff engine to identify gaps between drawings and asset management systems (Maximo, SAP PM, generic CSV). Operator dashboard supports direct PDF/CSV upload and artifact downloads (tags.csv and walkdown.pdf). Use /extract/stream for live SSE findings as they land. All results include epistemic metadata and confidence scoring.","version":"0.2.0","stream_endpoint":"/extract/stream","clawmark":{"score":3.67,"status":"beta","scale":"0-5 canonical","aria_registered":false,"note":"Clawmark Beta (3.67/5 self-attested 2026-06-10) — see CLAWMARK.md; ARIA registration is token-gated at deploy"},"error_schema":{"shape":{"error":"machine-readable code","message":"human-readable explanation","stage":"optional processing stage"},"missing_config":{"error":"missing_keys","keys":["EXACT_ENV_VAR_NAMES"],"stage":"configuration","http_status":503,"retry_after_header":"60"},"validation":{"error":"validation_error","stage":"request_validation","detail":"field-level errors (list)","http_status":422},"extraction":{"error":"extractor code (e.g. malformed_cmms_csv, unknown_tag_column)","error_code":"legacy alias, same value as error","stage":"extraction","http_status":400},"rate_limit":{"error":"rate_limited","http_status":429,"retry_after_header":"60"},"mcp_transport":"JSON-RPC 2.0 error envelopes on /mcp (-32001 auth, -32002 rate limit)"},"tools":[{"name":"extract_entities","description":"Extract all entities from an engineering drawing PDF stored in R2. Auto-detects document type. Returns instrument tags, equipment tags, line numbers, cable numbers with confidence and page provenance. Native text PDFs include normalized x/y coordinates and artifact URLs. Use stream_endpoint for live output.","endpoint":"/extract","stream_endpoint":"/extract/stream","input_schema":{"$defs":{"DocType":{"enum":["pid","sld","cable_schedule","loop_diagram","isometric","cause_effect","equipment_ga","hookup_detail","unknown"],"title":"DocType","type":"string"}},"properties":{"r2_key":{"title":"R2 Key","type":"string"},"original_filename":{"default":"document.pdf","title":"Original Filename","type":"string"},"doc_type_hint":{"anyOf":[{"$ref":"#/$defs/DocType"},{"type":"null"}],"default":null},"known_drawing_number":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Known Drawing Number"}},"required":["r2_key"],"title":"ExtractRequest","type":"object"}},{"name":"diff_cmms","description":"Compare extracted drawing tags against a CMMS export CSV. Returns tags on drawings missing from CMMS and vice versa. Supports Maximo, SAP PM, and generic CSV formats.","endpoint":"/diff","input_schema":{"properties":{"extraction_ids":{"items":{"format":"uuid","type":"string"},"title":"Extraction Ids","type":"array"},"cmms_r2_key":{"title":"Cmms R2 Key","type":"string"},"cmms_format":{"default":"maximo","title":"Cmms Format","type":"string"},"tag_column":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Tag Column"}},"required":["extraction_ids","cmms_r2_key"],"title":"DiffRequest","type":"object"}}]}