Skip to content

Security questionnaire answers

Short answers for vendor security reviews in the style of CAIQ and SIG Lite. Each answer states a status and points to evidence. "Gap" means the control does not exist today. Details are in the security whitepaper.

Model MCP is an open-source add-in and a local server. There is no hosted service, so questions about a provider's data center, tenants or staff do not apply. Controls that depend on the machine policy are described in the policy reference.

Data classification and flow

Question Answer Status
Does the vendor receive customer data? No. The project operates no server that receives model data, logs or telemetry. Met
Where does data go? To the MCP client the customer chose. That client may send it to its own AI model provider. Customer-controlled
Is there a data flow diagram? Yes, in the whitepaper. Met
Which data classes can tool results contain? Model and document names, file paths, element parameters, geometry summaries, warnings, exported images and files. Documented
Data residency? Data stays on the customer's machines. The project stores nothing. N/A
Subprocessors? None. N/A
Controller or processor statement? The project is neither: it never receives personal or model data. The customer's MCP client and model provider are the processors. Documented

Encryption

Question Answer Status
Encryption at rest No encryption by the project. Files are plain text in the user profile. Rely on disk encryption such as BitLocker. Gap, mitigated by platform
Encryption in transit Named pipe and file channel are local. HTTP has no TLS; use loopback, an SSH tunnel or a TLS proxy. SSH uses OpenSSH. Partial
Key management No keys are managed. The HTTP token is random, per user, stored with a user-only ACL. Documented

Identity and access

Question Answer Status
Authentication Pipe: Windows user ACL. HTTP: bearer token with a nonce proof. SSH: customer's OpenSSH setup. No single sign-on. Partial
Least privilege The add-in runs as the Revit user and gains no rights. The per-user MSI needs no administrator rights. Met
Administrator-enforced restrictions Machine policy for read-only, tool deny and allow lists, code execution, HTTP and update mode. Met
Separation of duties for risky actions Confirmation token per risky call. A client can confirm on its own, so use read-only or policy for unattended use. Partial
Remote and multi-user access The pipe is per user; the HTTP token is per user. Remote use goes through SSH or an HTTP host that the customer configures. Documented

Logging and monitoring

Question Answer Status
Are actions logged? Yes: activity pane and log with command and client; add-in log; one named undo entry per change; audit file with SHA-256 for executed code. Met
Are logs tamper-proof or forwarded? No. No Event Log or SIEM sink. Local files owned by the user. Gap
Log retention Count-based: 14 add-in log files, 5 MiB activity log with one copy, 500 code audit files. Age-based retention through the LogRetentionDays policy value. Partial
Is sensitive data in logs? Logs can contain model names, paths and error text. Redaction needs the Revit-side setting or the RedactPaths policy value. Documented

Vulnerability and change management

Question Answer Status
Secure development lifecycle Public repository, pull request checks, CODEOWNERS, release-please, CodeQL, Scorecard. Met
Dependency management Lock files, Dependabot, SHA-pinned CI actions. No vulnerability scan gate and no SBOM yet. Partial
Vulnerability disclosure Private advisory form and email in the security policy. No response-time commitment. Partial
Patch process New releases through GitHub, PyPI and WinGet. Per-machine installs are updated by the administrator; per-user installs can update themselves. Documented
Penetration test, SOC 2, ISO 27001 None. Open source: the code can be reviewed. N/A
Threat model The whitepaper lists trust boundaries and residual risks. Documented

Supply chain

Question Answer Status
Are releases signed? No. Authenticode signing through SignPath is prepared and not active. Gap
Build provenance GitHub build provenance attestations and SHA256SUMS.txt. Met
SBOM Not published yet. Gap
Third-party components Listed in the third-party notices; transitive Python packages are not listed. Partial

Endpoint and network

Question Answer Status
Outbound connections api.github.com, github.com, release-assets.githubusercontent.com, pypi.org, files.pythonhosted.org, all HTTPS, no model data. Full table in the whitepaper. Documented
Can all outbound traffic be disabled? Yes: UPDATECHECK=0 or UpdateMode=off for the add-in, REVIT_MCP_NO_UPDATE_CHECK=1 for the server, and a pinned or wheelhouse install. Met
Telemetry None. Met
Listening ports None by default. HTTP is optional and binds to loopback. Met
Application allow-listing Binaries are unsigned: use path or hash rules. Gap
Proxy support System proxy for the add-in; standard proxy variables for the server and uv. Documented

Business continuity and privacy

Question Answer Status
Backup and disaster recovery N/A. A local tool with no service to recover. Models are backed up by the customer. N/A
Incident response No formal runbook. Report through the security policy. Gap
Privacy contact sharafutdinov.di.dev@outlook.com, see the privacy policy. Met
Data deletion Uninstall and remove the folders listed in data retention. Documented
Children or regulated data Not targeted. The customer decides which models a client may read. N/A

Model change controls

Question Answer Status
Can the tool change models? Yes by default. Read-only mode and policy turn this off. Documented
Can changes be undone? Each change is one named undo entry, and revit_undo_last exists. Link removal and document-level operations (open, close, save, synchronize) have no undo entry. Documented
Can arbitrary code run? Yes through revit_execute_code, unsandboxed, with a confirmation token. Policy can disable it. Documented