{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T18:23:49.869Z","url":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp","markdownUrl":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp.md","server":{"slug":"j03rul4nd-ifc-viewer-mcp","name":"IFC Viewer Online","registryName":"io.github.j03rul4nd/ifc-viewer-mcp","description":"IFC/BIM with a 3D viewer: validate IFC, check IDS, Health Score, drawings, digital twins.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"ifc-viewer-mcp","type":"npm","identifier":"ifc-viewer-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp","version":"1.0.0","transport":"stdio","scoredAt":"2026-11-05T09:43:30.918Z"},"score":{"total":64,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":64},{"date":"2026-11-04","total":64},{"date":"2026-11-03","total":64},{"date":"2026-11-02","total":49}]},"categories":[{"name":"Supply Chain Security","score":81,"verdict":"fail","reasons":["No malware found by supply-chain analysis.","CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.","No install/post-install scripts declared.","30 of 95 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.direct","args":{"package":"zod","version":"3.25.76","severity":"high"}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"95","unhealthy":"30"}}]},{"name":"Provenance & Transparency","score":48,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 2 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"2"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":68,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1754 tokens (~175/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"175","items":"10","tools":"10","tokens":"1754","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":99,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","96% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"96"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"10"}},{"code":"toolsafety.manipulation_clean","args":{"units":"11","judged":"11"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"malware":[],"components":[{"slug":"ifc-viewer-mcp","type":"npm","identifier":"ifc-viewer-mcp","withdrawn":false,"score":64,"current":true,"url":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp","markdownUrl":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"ifc-viewer-mcp"},{"label":"Version","value":"1.0.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"validate_ifc","title":"Validate an IFC file and get its Health Score","description":"Check an IFC (BIM) model against the IFC Viewer Online rule set — schema, spatial structure, names, GlobalIds, ISO 19650, classification, MEP and more — and return its Health Score (0–100, higher is better), issue counts, the rules that cost the most points and the first issues with links to fix guides. Runs locally on this machine; the file is not uploaded anywhere. Use it when the user asks whether a model is OK, what is wrong with it, or how good it is.","inputs":[{"name":"maxIssues","type":"integer","required":false,"description":"How many issues to list (the counts always cover all of them)."},{"name":"rules","type":"array","required":false,"description":"Run only these rule ids (see list_validation_rules). Default: the viewer's default rules."},{"name":"source","type":"string","required":true,"description":"Path to a local file (absolute, or relative to where the server runs) or a public http(s) URL."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":194},{"name":"list_validation_rules","title":"List the IFC validation rules","description":"List every rule validate_ifc can run: its id, category, severity and whether it is on by default. Use it to pick rules for validate_ifc or to explain what a rule checks.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":49},{"name":"check_ids","title":"Check an IFC file against IDS requirements","description":"Check an IFC model against an IDS file (buildingSMART Information Delivery Specification 1.0) and return, per specification, pass/fail, how many elements applied, passed and failed, and the first failures with the element and the reason. Runs locally; nothing is uploaded. Use it when the user has an .ids file, or exchange requirements to verify a delivery against.","inputs":[{"name":"ids","type":"string","required":true,"description":"The IDS: local path, public URL, or the IDS XML text itself."},{"name":"ifc","type":"string","required":true,"description":"The IFC model: local path or public http(s) URL."},{"name":"maxFailures","type":"integer","required":false,"description":"Failures to list per specification."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140},{"name":"open_in_3d_viewer","title":"Open IFC models in the 3D viewer","description":"Build a link that opens one or more public IFC files in the free IFC Viewer Online 3D viewer (runs in the browser: orbit, section, measure, properties, validation with Health Score badge). Optional: drop them on the city map, isolate a class, pick a camera view, open a floor plan in the drawings pane, add point clouds. Also returns an <iframe> to embed the same view in a web page, wiki or dashboard. Use it whenever the user wants to see, show, share or embed a model in 3D. Give the link to the user to click; this tool does not open a window by itself.","inputs":[{"name":"isolate","type":"string","required":false,"description":"Show only this IFC class, e.g. IfcWall, IfcDoor, IfcSpace."},{"name":"lang","type":"string","required":false,"description":"Interface language: en, es, ca, fr, de, it, pt, ja, zh or th."},{"name":"map","type":"boolean","required":false,"description":"Place the models on the 3D city map at their own georeference."},{"name":"models","type":"array","required":true,"description":"Public http(s) URLs of IFC files. Several URLs load together as one federated scene. Local paths do not work here: the browser has to download the file."},{"name":"scans","type":"array","required":false,"description":"Public point-cloud URLs (LAS/LAZ/E57/PLY…) to load with the models."},{"name":"ui","type":"string","required":false,"description":"Interface preset: full (all panels), minimal, kiosk (no chrome), client (read-only for clients), article (for embedding in pages)."},{"name":"validate","type":"boolean","required":false,"description":"Run validation after loading (default true)."},{"name":"view","type":"string","required":false,"description":"Camera view once the models load."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":352},{"name":"open_drawings","title":"Open technical drawings next to a model","description":"Build a link that opens IFC models with the drawings pane beside the 3D view and a floor plan already cut from the model. In that pane the user can also drop DXF or PDF drawings, place them over the model, calibrate the scale, compare plan against model, add dimensions and text, and export to DXF, SVG or PDF. Use it when the user wants a 2D plan, to check a drawing against the model, or to mark up a sheet.","inputs":[{"name":"lang","type":"string","required":false,"description":"Interface language: en, es, ca, fr, de, it, pt, ja, zh or th."},{"name":"models","type":"array","required":true,"description":"Public http(s) URLs of IFC files. Several URLs load together as one federated scene. Local paths do not work here: the browser has to download the file."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":177},{"name":"read_dxf","title":"Summarise a DXF drawing","description":"Read a DXF drawing (ASCII, R12 to current) and summarise it: DXF version, units, layers with how many entities each, entity types, drawing extents and the text found on it (room names, labels, title block). Runs locally. Use it to tell what a drawing contains before placing it next to a model with open_drawings. DWG is detected but not read: ask the user to save it as DXF.","inputs":[{"name":"maxTexts","type":"integer","required":false,"description":"How many text strings to return."},{"name":"source","type":"string","required":true,"description":"Path to a local file (absolute, or relative to where the server runs) or a public http(s) URL."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":146},{"name":"open_3d_sketch","title":"Open the 3D sketch studio","description":"Link to the 3D sketch studio: draw strokes in 3D space with a pen, finger or mouse — over a blank canvas or around a model — on a phone, tablet, foldable or desktop, and export to SVG, PSD, ORA or Blender. Free, in the browser, no account. Use it when the user wants to sketch an idea, mark up a design in 3D or make a concept drawing.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":102},{"name":"list_digital_twins","title":"List live digital twin scenes","description":"List the ready-made city digital twins (Barcelona, Helsinki, Tokyo): georeferenced IFC models on terrain and the OpenStreetMap city, painted with live open data (bikes, EV chargers, traffic, air quality, trains). Each has a link and an embed link. Also returns the link to the twin builder, where the user builds their own twin (AGV warehouse, import tracking) from a CSV or live feed. Use it when the user asks for a digital twin demo or wants to start one.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":115},{"name":"read_fiware_entities","title":"Read entities from a FIWARE context broker","description":"Read entities from a FIWARE context broker (Orion, Orion-LD, Scorpio, Stellio) over NGSI-LD or NGSIv2 and return them as flat records (id, type, each attribute value with its unit, lat/lon, observedAt) — the same shape the viewer's twin panel binds to IFC elements. The request goes from this machine straight to the broker. Use it to see what live data a broker offers before linking it to a model.","inputs":[{"name":"api","type":"string","required":false,"description":"ld = NGSI-LD, v2 = NGSIv2."},{"name":"broker","type":"string","required":true,"description":"Broker root, e.g. https://orion.example.com:1026"},{"name":"context","type":"string","required":false,"description":"JSON-LD @context URL (NGSI-LD), for short attribute names."},{"name":"limit","type":"integer","required":false,"description":"How many entities to return."},{"name":"servicePath","type":"string","required":false,"description":"Fiware-ServicePath (NGSIv2 only)."},{"name":"tenant","type":"string","required":false,"description":"NGSILD-Tenant / Fiware-Service, if the broker uses one."},{"name":"type","type":"string","required":false,"description":"Entity type, e.g. AirQualityObserved, ParkingSpot. NGSI-LD needs one."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":253},{"name":"search_port_library","title":"Search the Port de Barcelona IFC library","description":"Search the Port de Barcelona BIM object library (cranes, bollards, fenders, signs, buildings… IFC, CC BY 4.0) by words and category. Each hit has its IFC download URL and a link that opens it in the 3D viewer. Use it when the user needs port or maritime infrastructure objects for a model or twin.","inputs":[{"name":"category","type":"string","required":false,"description":"Only this category (the answer lists them)."},{"name":"limit","type":"integer","required":false,"description":null},{"name":"query","type":"string","required":false,"description":"Words to look for in the object name, e.g. \"grua\", \"bolardo\", \"crane\". Empty lists everything."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":138}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T09:43:30.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":null,"reasonLabel":null,"discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[{"id":"GHSA-mrhx-c7xc-m3w5","cve":"CVE-2023-54404","severity":"high","fixAvailable":true}],"vulnerabilitiesTotal":1,"dependencies":{"nodes":95,"partial":false,"deprecated":null,"stale":30,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-11-02","recent":[{"id":"chg_01a1a0c1-c536-745f-a3a1-6a1156d64c55","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp#chg-chg_01a1a0c1-c536-745f-a3a1-6a1156d64c55"},{"id":"chg_01a1a0c1-c537-7c5a-9d4a-6d7b59cdb6cf","kind":"score.total_changed","summary":"Trust score (49 → 64)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp#chg-chg_01a1a0c1-c537-7c5a-9d4a-6d7b59cdb6cf"},{"id":"chg_01a19ea1-4f01-79f3-bc46-69eab40a9ece","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp#chg-chg_01a19ea1-4f01-79f3-bc46-69eab40a9ece"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp","markdown":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp.md","changelogJson":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/j03rul4nd-ifc-viewer-mcp/ifc-viewer-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/ifc-viewer-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/ifc-viewer-mcp"},{"label":"Repository","href":"https://github.com/j03rul4nd/ifc-viewer-online"},{"label":"Website","href":"https://www.ifcvieweronline.eu/blog/ifc-mcp-server-claude-bim-3d-viewer/"}]}}