IFC MCP
NPM · IFC-MCP · SCANNED AUG 3
Local IFC/BIM MCP server with IfcOpenShell Python in Pyodide and an IFC viewer.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (114 of 118), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (114 of 118), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to flinker-app/ifc-mcp). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 23 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability59
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 1044 tokens (~208/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · ifc-mcp
claude mcp add flinker-app-ifc-mcp -- npx -y ifc-mcp
codex mcp add flinker-app-ifc-mcp -- npx -y ifc-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"flinker-app-ifc-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"ifc-mcp"
],
"enabled": true
}
}
} openclaw mcp add flinker-app-ifc-mcp --command npx --arg -y --arg ifc-mcp
mcp_servers:
flinker-app-ifc-mcp:
command: "npx"
args: ["-y", "ifc-mcp"] {
"mcpServers": {
"flinker-app-ifc-mcp": {
"command": "npx",
"args": [
"-y",
"ifc-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +58
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- The attested source repository moved: flinker-app/ifc-mcp security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Schema quality: unverified → good ▲ functional
- Licence: Apache-2.0 functional
- 31 Jul 26 −25
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +19
- Tool coverage: unverified → 100 ▲ functional
- 28 Jul 26 −19
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 43
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- flinker-app/ifc-mcp
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/flinker-app/ifc-mcp/.github/workflows/publish-npm.yml@refs/heads/main
- Rekor log index:
- 2135689044
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:155814a07a2ac7affb228caad03bb6dfafea73b893b72a3d74888b4ebafe7cf4ba5310bd919db59649c35391218bda676e1256adb1114fa196f8134b2
- Discovery method:
- attestation_endpoint
Dependencies 114 packages
114 packages in the resolved dependency tree · 114 deprecated · 39 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
clear-ifc-viewer clear IFC viewer ~59
Clear the already-open local IFC viewer by removing all loaded IFC files and BCF viewpoint state. This keeps the same stable viewer URL and does not close the browser tab. Use show-ifc-file after this to load a fresh IFC model.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
open-ifc-viewer open IFC viewer ~119
Open or show the local IFC viewer and return its stable viewer URL. This tool does not load IFC files and does not change selection/isolation state. After this tool returns, use the returned URL as the viewer address. If the client can open links, open that local URL; otherwise tell the user to open the URL in a browser or webview. Use show-ifc-file to show IFC files. Use set-bcf-view to apply a BCF viewpoint file. Do not use browser automation to click or select elements in the viewer.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
run-python run Python ~330
Execute LLM-created Python in the SDK Node/Pyodide IFC runtime. Use this tool for IFC inspection, validation, reports, exports, and creating new IFC files. Runtime context: Pyodide uses the bundled Pyodide 0.28.2 runtime. The package set includes micropip, ifcopenshell, numpy, pandas, matplotlib, shapely, and typing-extensions. The Python code is passed directly to the SDK. File inputs: pass IFC/IFCXML/IFCZIP file paths in the files array. In the desktop Node server these are local filesystem paths; in a browser host they are browser-defined paths resolved by that host. Generated Python can open those files by name, e.g. ifcopenshell.open("model.ifc") or open("model.ifc", "rb"). Return contract: this tool exposes stdout, stderr, saved_files, uploaded_files, and any result returned by the raw SDK. Generated files are returned as temporary localhost download URLs in saved_files. Do not assume files were written to the user's working directory.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Raw Python code to execute through the SDK. Files passed through files can be opened by name, e.g. ifcopenshell.open("model.ifc") or open("model.ifc", "rb"). |
| files | array | — | Optional array of IFC/IFCXML/IFCZIP file paths. Desktop hosts use local filesystem paths; browser hosts use browser-defined paths. |
| timeout_seconds | integer | — | Timeout in seconds. |
No output schema declared.
No examples provided.
set-bcf-view set BCF view ~385
Set the view state in the already-open local IFC viewer by applying a BCF/BCFZIP viewpoint file. Pass either a local BCF/BCFZIP file path or a generated BCF download URL from run Python saved_files. This tool does not show/load IFC files; use show-ifc-file for that. It should not open a new browser tab and should not use browser automation. To generate a BCFZIP with run-python, write a .bcfzip file, then call set-bcf-view with saved_files[0].url: ```python from uuid import uuid4 import ifcopenshell from bcf.v3 import model as mdl from bcf.v3.bcfxml import BcfXml from bcf.v3.visinfo import VisualizationInfoHandler model = ifcopenshell.open("sample.ifc") gid = model.by_type("IfcWall")[0].GlobalId component = mdl.Component(ifc_guid=gid) visinfo = mdl.VisualizationInfo( guid=str(uuid4()), components=mdl.Components( selection=mdl.ComponentSelection(component=[component]), visibility=mdl.ComponentVisibility( default_visibility=False, exceptions=mdl.ComponentVisibilityExceptions(component=[component]), ), ), ) bcf = BcfXml.create_new(project_name="IFC MCP") topic = bcf.add_topic("Review wall", "Review wall", "ifc-mcp", topic_type="Issue", topic_status="Open") topic.add_visinfo_handler(VisualizationInfoHandler(visinfo)) bcf_path = "view.bcfzip" bcf.save(bcf_path) print(str(bcf_path)) ```
| Name | Type | Req | Description |
|---|---|---|---|
| bcf_path | string | yes | Local BCF/BCFZIP file path, or a generated BCF download URL from run Python saved_files, to apply in the viewer. |
No output schema declared.
No examples provided.
show-ifc-file show IFC file ~151
Show one IFC file in the already-open local IFC viewer. Pass either a local IFC/IFCXML/IFCZIP file path or a generated IFC download URL from run Python saved_files. Use this for IFC model display only. Repeated calls add multiple IFC files to the same viewer. Returns the same stable viewer URL; after this tool returns, use that URL as the viewer address. Use open-ifc-viewer to open the viewer and set-bcf-view to apply a BCF viewpoint file.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Local IFC/IFCXML/IFCZIP file path, or a generated IFC localhost download URL from run Python saved_files, to load into the viewer. |
No output schema declared.
No examples provided.