Skip to main content
Glama
sathish136

BricsCAD ETP Layout MCP Server

by sathish136

BricsCAD ETP Layout MCP Server

This is the same idea as the AutoCAD MCP demo you watched (https://www.youtube.com/watch?v=KQpxiXvF4cc / thepiruthvirajan/autocad-mcp-server) but pointed at BricsCAD, and specialized for ETP (Effluent Treatment Plant) General Arrangement layouts, using the retention-time rules extracted from your 10 reference drawings.

Once running, you just talk to Claude normally:

"Draw an ETP layout for 2000 m3/day, MBR scheme, at origin 0,0" "Calculate tanks for 5750 m3/day dyeing stream + 250 m3/day printing, heavy biological load" "Draw a single 41 m3 Alkalinity Feed Tank at 20,15"

...and Claude calls the tools below, which draw live into your currently open BricsCAD drawing via COM automation. No exporting/importing DWG files — it's directly controlling the running BricsCAD session, same as the video.

How it works

Claude  <--MCP-->  server.py  <--COM/pywin32-->  BricsCAD (must be running)
                       |
                       +-- tank_sizing.py    (flow -> tank volumes/footprints)
                       +-- layout_engine.py  (arranges tanks in rows)
                       +-- bricscad_com.py   (draws rectangles/text via COM)
  • design_standards.py — retention times, tank depth, fixed equipment footprints. Edit this to change engineering rules.

  • tank_sizing.py / layout_engine.py — pure Python, no BricsCAD needed, can be unit tested standalone.

  • bricscad_com.py — the actual "connector": talks to a running BricsCAD instance over COM (pywin32), same automation model AutoCAD's MCP demo uses.

  • server.py — wraps everything as MCP tools (calculate_etp_tanks, draw_etp_layout, draw_single_tank, check_bricscad_connection).

Related MCP server: Civil3D MCP Server

Setup (Windows only — COM automation requires it)

  1. Install BricsCAD and open it with a drawing (new or existing). In BricsCAD, make sure COM/ActiveX automation isn't blocked (default install has it enabled).

  2. Install Python deps:

    pip install -r requirements.txt
  3. Find your BricsCAD COM ProgID (versions differ slightly). Open regedit, search under HKEY_CLASSES_ROOT for a key that looks like BricscadApp.AcadApplication or Bricscad.Application.<version>. If the two candidates already in bricscad_com.py don't connect, add the exact one you find to PROG_ID_CANDIDATES at the top of that file.

  4. Test the connection directly (without Claude), from the same folder:

    from bricscad_com import BricscadConnection
    conn = BricscadConnection()
    print(conn.doc.Name)   # should print your open drawing's filename
  5. Register the MCP server with your MCP client. For Claude Desktop, add to claude_desktop_config.json:

    {
      "mcpServers": {
        "bricscad-etp": {
          "command": "python",
          "args": ["C:\\path\\to\\bricscad-mcp-server\\server.py"]
        }
      }
    }

    Restart Claude Desktop. You should see the 4 tools show up under this server's connector icon.

  6. Open BricsCAD, open/start a drawing, then just ask Claude to draw.

Tools exposed

Tool

What it does

calculate_etp_tanks

Sizing only — no drawing. Good for sanity-checking numbers first.

draw_etp_layout

Calculates AND draws the full layout live into BricsCAD.

draw_single_tank

Draws/redraws one rectangle+label — for manual tweaks after auto-layout.

check_bricscad_connection

Confirms the server can currently reach BricsCAD.

Testing sizing logic without BricsCAD or Claude

python -c "
from tank_sizing import PlantInput, calculate_tanks
tanks = calculate_tanks(PlantInput(total_flow_m3_per_day=2000, scheme='MF'))
for t in tanks:
    print(f'{t.label}: {t.volume_m3} m3 -> {t.width_m}m x {t.length_m}m')
"

Compare against your Sky Clothing (2000 m3/day, MF scheme) reference drawing's tank table before ever touching BricsCAD.

Current limitations (same as the .NET plugin version)

  • Row-based bin-packing layout, not a true optimizer — matches the general flow (screener → EQ → Bio → MBR/Clarifier → RO → chemical/sludge → evaporator) but not the exact hand-tuned arrangement in your drawings.

  • Fixed equipment footprints (screener, blower room, RO skid, etc.) are rough defaults — replace with your actual vendor package sizes in design_standards.py.

  • No title block, dimension lines, or north arrow yet — add more COM calls (AddDimAligned, inserting your title block as a block reference) once the tank layout itself is validated.

  • Deterministic engineering-rule based sizing, not an LLM-guessed layout — numbers are traceable back to the retention-time table for client-facing drawings.

bricscad-mcp

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Connects Claude to a running Autodesk Civil 3D instance via COM automation to perform drawing, surface, alignment, COGO point, line, and corridor operations.
    Last updated
    7
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables programmatic control of AutoCAD through COM automation, allowing natural language commands to create structures, manage layers, and manipulate entities via MCP clients like Claude.
    Last updated
    55
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Persistent context for Claude. Your AI always knows your projects and next actions across sessions.

  • Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.

  • Read, edit, publish, and preview your pepita websites from Claude.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sathish136/bricscad-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server