Pod

Available as Markdown and JSON. Pod is also available over MCP.

Reported issues for revit-model-mcp

Pod holds 13 of 13 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to revit-model-mcp.

Most discussed

HTTP host: graceful shutdown, stored-response budget and request read deadline

Context

The HTTP host in the add-in (docs/transport.md, "HTTP configuration") has known robustness gaps. #64 moves HTTP jobs onto the shared job queue (POST /jobs enqueues, GET /jobs/{id}, POST /jobs/{id}/cancel), so this work should start from main after #64 is merged.

Read the thread · 2026-09-14 · open · 2 comments

Live validation of reads and actions on Revit 2022–2025 and 2027

Context

docs/validation.md shows live reads and actions validated only on Revit 2026.4. Revit 2022–2025 and 2027 have build evidence only: the add-in compiles against each API, but nobody has opened a model and called the tools there. Users on those years cannot tell whether "supported" means "tested".

Proposal

Run the existing live checklist on each remaining year and record the result in the validation table.

For one year:

  1. Install the release MSI for that year, open Autodesk's…

Read the thread · 2026-09-14 · open · 2 comments

HTTP transport listener does not bind on 53110 in Revit despite httpEnabled

Context

Live test on Revit 2026.4 (Windows), Revit Model MCP 0.5.0 add-in installed. The add-in loads and works over the file channel (a ping job returns {"command":"ping","success":true,"data":"pong"}), and the instance heartbeat updates. But the HTTP transport listener never binds.

Observed

Read the thread · 2026-09-14 · closed · 1 comment

Design: unattended execution policy for actions

Context

Actions are gated by REVIT_MCP_ALLOW_WRITE=1 and the workstation allow-write file, and every mutating action supports dry_run and returns verification. What does not exist yet is a policy for unattended use: once both gates are on, any prompt can mutate the model without a per-action confirmation.

Discussion needed

Before implementation, agree on the model. Options on the table:

  1. Confirmation tokens. A mutating call without a token returns a preview plus a…

Read the thread · 2026-09-14 · open · 1 comment

MultiUser MSI grants HTTP URL ACL only to the installing user's SID

Severity: P1 (installer — HTTP unusable for other users of a per-machine install)

The MultiUser (per-machine) MSI grants the HTTP prefix listen right only to the installing user's [UserSID].

Repro: an admin installs the per-machine package; a different user launches Revit — the add-in is installed but its HttpListener.Start() does not get the required URL ACL, so HTTP transport is unavailable for that user.

Code: build/install/Installer.cs:31, :73.

Fix direction:…

Read the thread · 2026-09-16 · open · 0 comments

PowerShell discovery output not forced to UTF-8; non-ASCII model names corrupted

Severity: P1 (encoding — discovery fails for non-ASCII model names)

JSON discovery is emitted via Windows PowerShell without forcing UTF-8 output, but Python decodes stdout as UTF-8 (errors replaced) unconditionally.

Impact: on Windows with a non-UTF-8 console code page, Cyrillic (and other non-ASCII) documentTitle/documentPath are corrupted, so discovery filtering by the original model name stops matching. The base64 protection used for normal responses does not cover this path.…

Read the thread · 2026-09-16 · open · 0 comments

Query parameter filters on output-field names throw KeyNotFoundException

Severity: P1 (crash — valid input throws)

Parameter names that collide with result output fields are removed from the resolver, then indexed unconditionally in the dictionary, raising KeyNotFoundException instead of filtering.

Repro: parameterFilters=[{"parameter":"Level","operator":"exists"}], or any filter on Name — passes the parser but throws instead of filtering.

Code: src/RevitModelMcp.Addin/Capture/QueryParameterResolver.cs:30,…

Read the thread · 2026-09-16 · open · 0 comments

Cleanup failure overwrites an already-received (committed) action result

Severity: P1 (data safety — lost action result / possible double-apply)

A cleanup error (e.g. SSH drop while deleting temp files) overwrites an already-received successful response, including a committed action's result.

Repro: a move/place-family commits successfully, then the SSH connection breaks during temp-file cleanup. The client receives only the cleanup error, loses the post-commit verification and success info, and a retry may apply the action again.

Code:…

Read the thread · 2026-09-16 · open · 0 comments

Most recent

view-elements/list-views intermediate responses still accepted as terminal after #45

Severity: P1 (correctness — regression window after #45)

#45 fixed the "accepted and running" placeholder for most reads, but view-elements and list-views intermediate responses are still treated as terminal on the Local/SSH path.

Polling can land on Processing is waiting… or Processed N…: the call returns under-read data and deletes the response file while the add-in is still working; when elapsedMs=0 a spurious error is possible.

Code:…

Read the thread · 2026-09-16 · open · 0 comments

Write actions execute against the active document, not the addressed one

Severity: P0 (data safety — wrong-document mutation)

A queued write action records the target PID but not the target document, and the executor operates on the current ActiveUIDocument at the time the ExternalEvent fires — not the document the action was addressed to.

Repro (single Revit, no multi-instance needed):

  1. Open models A and B in one Revit.
  2. With A active, submit a write action (e.g. move/delete) addressed at A, referencing an ElementId that also exists…

Read the thread · 2026-09-16 · closed · 0 comments

Multi-instance on one machine: fixed HTTP port 53110 + shared file channel collide

Summary

When two or more Revit instances on the same Windows user each load the add-in, they collide on shared, machine-wide resources. This is not destructive to Revit or the model, but it breaks the MCP channel for all-but-one instance and — with actions enabled — creates a wrong-instance targeting risk.

Observed in the wild: a second Revit started while the first held the HTTP port; the second instance's verify failed. (The reported 503 is most likely **http.sys returning 503 for…

Read the thread · 2026-09-16 · closed · 0 comments

Report skipped fields from every best-effort reader

Context

revit_model_health reports skipped and revit_links_status reports per-link error, but other best-effort readers still swallow parameter and geometry failures silently. A response can look complete while a category was skipped.

Proposal

Every reader returns the same diagnostic shape: skipped: [{ "what": "...", "reason": "..." }] at the top level of the result, and logs the cause at debug level. Empty skipped means the read was complete.

Acceptance criteria

Read the thread · 2026-09-14 · open · 0 comments

revit_set_parameter: explicit parameter ids and no implicit type fallback

Context

revit_set_parameter resolves parameters by name. Revit allows several parameters with the same name on one element (instance and type, shared and built-in), and the current implementation picks one and falls back on type coercion implicitly. A user cannot tell which parameter was written.

Proposal

Read the thread · 2026-09-14 · open · 0 comments

The remaining reports are on the project's issue tracker.