warehouse-cad-agent
Enables traceable warehouse CAD round trips and bounded Agent-to-AutoCAD MCP tools for auditing, editing, and rebuilding CAD models.
README
warehouse-cad-agent
warehouse-cad-agent is a Windows-first Codex Plugin and Python engine for traceable warehouse CAD round trips:
- audit every model-space entity in a declared DXF, or in a DWG whose read-DXF conversion has a matching hash receipt;
- separate visible equipment from structure without silently accepting unresolved candidates;
- write one self-contained Markdown equipment ledger;
- rebuild editable 2D CAD from only the blank CAD and that ledger;
- create evidence-limited portable 3D, and native AutoCAD
3DSOLIDwhen complete source-backed footprint, height, and elevation evidence exists; - let an Agent inspect and edit an automatically-created AutoCAD work copy through five bounded MCP tools.
The project deliberately does not infer missing device identity, height, elevation, flow direction, ports, or manufacturer geometry. A protocol handshake, screenshot, file-exists check, or output-selected count is not treated as proof that a requested CAD artifact is complete.
Public/private split
This repository contains only the generic engine, Plugin, Skill, MCP bridge, synthetic fixtures, and verification code. Customer drawings, customer names, source hashes, private classification profiles, and delivery evidence belong in a separate private integration repository.
Quick start on Windows
Requirements: Python 3.11+, and optionally full AutoCAD with COM automation for live editing and native DWG solids. Autodesk DWG TrueView is not a writable AutoCAD runtime.
Managed AutoCAD opens temporarily use DWGCHECK=0 only around Documents.Open, wait until AutoCAD is quiescent after the open, then restore and verify the exact prior value. This suppresses only the non-Autodesk-producer warning while preserving AutoCAD's corruption-error dialog; it does not declare the drawing valid.
Live review-note creation never retries the non-idempotent AddText call. If AutoCAD reports a call failure after creating something, the bridge uses a pre-write model-space handle snapshot plus type, insertion, and height to recover only one uniquely attributable new text entity. The note, its layer, and its registered application belong to one undo transaction. Known fields are each written at most once and read back. If an incomplete result changed the handle/layer/registered-application snapshot, the bridge requests one undo and verifies all three sets; if the snapshot never changed, it does not undo or claim a rollback. Any unproved recovery preserves the managed work copy with a structured partial-edit error.
Saved/closed/reopened acceptance can use a fresh Agent-launched AutoCAD process. The shutdown session action is fail-closed: it requires no managed session, no control drawing, zero open documents, and confirmed exit of the exact process bound to the application window. Its optional force_if_graceful_timeout=true fallback is limited to that Agent-launched process: after one graceful Application.Quit times out, the bridge must reconfirm that AutoCAD is idle with zero documents before terminating the already-bound Windows process handle once. It never quits or terminates an AutoCAD application that the Agent merely attached to.
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\warehouse-cad-agent doctor
.\.venv\Scripts\python.exe examples\synthetic\make_fixture.py
.\.venv\Scripts\warehouse-cad-agent roundtrip examples\synthetic\project.yaml
The Codex repo marketplace manifest is .agents/plugins/marketplace.json. Register the cloned repository as a local marketplace, install the plugin, then start a new Codex thread:
git clone https://github.com/X-isdoingreat/warehouse-cad-agent.git
Set-Location warehouse-cad-agent
codex plugin marketplace add .
codex plugin add warehouse-cad-agent@warehouse-cad-agent
Invoke $warehouse-cad-agent in that new thread. The marketplace uses ON_USE authentication: approve the first local MCP use interactively. A non-interactive session configured with approval=never will discover the five tools but must refuse the call unless that invocation is explicitly authorized.
project.yaml is the run allowlist. A distinct source.read_dxf must include source.read_conversion_receipt; unresolved objects may be classified only through a bound source.resolution.inventory plus source.resolution.ledger. The product audit enumerates the file, but it is not an independent customer-acceptance denominator by itself.
Blank CAD and Markdown are not treated as interchangeable valid files: the blank carries an embedded project/source binding, the Markdown ledger also binds the exact blank-file SHA-256, and every rebuild rejects a mismatched or modified pair before writing output. Customer adapters that emit native-solid specs use the same exact-blank rule and keep the prior source-ledger acceptance target separate from the current native-CAD product target.
Current verification limit
The synthetic blank + Markdown + isolated 2D + portable 3D path and a fresh Codex/MCP doctor call have been exercised locally. On one exact synthetic DWG, the installed Plugin has also passed real AutoCAD 2027 Trial create/query/rollback/save plus fresh-process reopen reconciliation. One exact, privately held, hash-bound warehouse DWG + equipment-ledger source set has additionally passed native 3DSOLID generation, final-DWG save, version-matched ObjectDBX reopen, record-level Agent identity/geometry reconciliation, and final-structure reconciliation in real AutoCAD 2027 Trial. These are narrow source-set results, not an arbitrary-DWG, manufacturer-model, BIM, or production-readiness claim. doctor distinguishes an installed/active full-AutoCAD identity from a process currently idle enough to accept automation; it does not infer a paid or trial entitlement. When a native-solid specification remains bound to a source blank DXF, AutoCAD opens only a separately supplied runtime DWG whose conversion receipt binds both hashes and proves a zero-mismatch streaming DXF→DWG→DXF structure comparison. TrueView does not satisfy that gate.
Product boundary
See docs/PRODUCT_BOUNDARY.md before making capability claims. The portable DXF 3D is an audit derivative; a native engineering 3D master is a DWG containing reopened, measurable 3DSOLID objects produced by full AutoCAD from source-backed evidence.
License and attribution
Apache-2.0. The COM/MCP design was informed by the Apache-2.0 multiCAD-mcp project; see NOTICE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.