tqs-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tqs-mcp read building EDIF-A and list floor concrete strengths"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tqs-mcp
MCP server for TQS, the Brazilian structural engineering CAD/analysis system, built on the TQS Python Interface.
It lets Claude Code (or any MCP client) read building models, extract data from TQS drawings, run structural processing, and script against the TQS API.
Unofficial and independent. TQS® is a trademark of TQS Informática Ltda.
Requirements
Windows with TQS installed (the modules bind to native TQS DLLs)
The TQS Python Interface wheel installed in some Python 3.10+ interpreter:
pip install TQSPythonInterface-1.2.1-py310-none-any.whlGet it from tqs.com.br/developers.
Python 3.10+ to run this server
The server itself does not need TQS in its own interpreter. It runs all TQS
work in a subprocess under whichever interpreter has the TQS package — point
TQS_PYTHON at it. That keeps the server alive if a TQS DLL crashes, and lets
this server run on a modern Python while TQS code runs on the version its wheel
was built for.
Related MCP server: Bonsai-mcp
Install
git clone https://github.com/carlostavares-manager-MNGT/tqs-mcp
cd tqs-mcp
uv syncConfigure
Add to Claude Code:
claude mcp add tqs -e TQS_PYTHON=C:\\TQSW\\Python\\python.exe -e TQS_ROOT=C:\\TQS -- uv --directory C:\\path\\to\\tqs-mcp run tqs-mcpOr edit the MCP config directly:
{
"mcpServers": {
"tqs": {
"command": "uv",
"args": ["--directory", "C:\\path\\to\\tqs-mcp", "run", "tqs-mcp"],
"env": {
"TQS_PYTHON": "C:\\TQSW\\Python\\python.exe",
"TQS_ROOT": "C:\\TQS"
}
}
}
}Variable | Meaning | Default |
| Interpreter with the TQS package installed | the server's own interpreter |
| Root of the building tree | none — pass paths explicitly |
| Default subprocess timeout, seconds |
|
Run tqs_status first. It reports the interpreter in use, which TQS modules
import, and the TQS folders — and tells you what to fix if TQS is unreachable.
Tools
Tool | What it does |
| Is TQS reachable? Which interpreter, modules, folders |
| Find buildings (folders with |
| Project metadata, model, floors, concrete strengths, covers, loads |
| Change building properties and save — dry-run by default |
| Drawing metadata, extents, levels, blocks, entity counts, entities |
| Run TQSExec tasks — global processing, drawings, rebar schedules |
| List the installed TQS API's real methods and properties |
| Run arbitrary Python with TQS importable — the escape hatch |
| Bundled offline API reference, browsable and searchable |
tqs_building_edit, tqs_process and tqs_run_script modify project files and
are annotated as such, so MCP clients prompt before running them.
The reference topics are also exposed as MCP resources under tqs://reference/.
Why tqs_introspect exists
TQS's published docs cover part of the API. Rather than guess at property names, ask the installed version:
tqs_introspect(target="TQSBuild.Building.floorsplan")
tqs_introspect(target="TQSDwg", filter="DWGTYPE")Examples
Audit concrete strengths across a project
Read the building at C:\TQS\EDIF-A and tell me the concrete strength per floor.
Pull rebar callouts out of a drawing
From C:\TQS\EDIF-A\PAV1\VIGAS.DWG, extract all TEXT entities containing "Ø" and group them by level.
Reprocess after a change
Set beam cover to 3.0 cm in EDIF-A, then run global processing on the frames folder and regenerate the rebar schedule.
Anything else
# via tqs_run_script
from TQS import TQSDwg
dwg = TQSDwg.Dwg()
dwg.file.Open("PLANTA.DWG")
result = {"limits": dwg.limits.DwgLimits(), "scale": dwg.settings.scale}Development
uv sync
uv run pytestThe test suite runs without TQS installed — it covers the tool surface, driver framing, and the absent-TQS error paths.
Status
The MCP layer, the subprocess bridge, and every driver's framing and error path
are tested and working. The TQS API calls inside the drivers are written from the
official documentation but have not been exercised against a live TQS
install — that hardware wasn't available here. Expect to need
tqs_introspect to correct property names on first real use, particularly:
the floor-count property on
floorsplan(the driver probes several candidates)the return shape of
loads.GetLoad()TaskGlobalProcparameter names beyond those in the docs
Corrections via issue or PR are welcome.
Layout
src/tqs_mcp/
server.py MCP tools
bridge.py subprocess protocol (sentinel-framed JSON)
config.py environment variables
drivers/ scripts executed inside the TQS interpreter
reference/ bundled API docs, served as tools and resourcesDrivers are plain scripts, so they can be run and debugged directly:
echo {} > args.json
C:\TQSW\Python\python.exe src/tqs_mcp/drivers/status.py args.jsonLicense
MIT — see LICENSE.
Available Tools
9 toolstqs_building_editADestructive
Change building properties and save. Defaults to dry_run=true, which reports the old and new value of every change without writing. Set dry_run=false to commit; TQS keeps the prior version as EDIFICIO.BAK.
Inputs: building_path (required), floors, changes, dry_run.
tqs_building_readARead-only
Read a TQS building into JSON: project metadata, analysis model, floors, concrete strengths, covers and load cases. Pass a building folder or a path to EDIFICIO.DAT.
Inputs: building_path (required), sections.
tqs_dwg_readARead-only
Read a TQS drawing (.DWG): scale and system metadata, extents, levels, blocks, entity counts, and entities themselves. Filter by entity type, level, or text content — extracting TEXT entities is the usual way to pull rebar callouts and labels out of a drawing. Units are centimeters.
Inputs: dwg_path (required), level, limit, include, +2 more.
tqs_introspectARead-only
Inspect the installed TQS API: list a module's or object's real methods and properties with signatures. Use this whenever you are unsure a name exists — the published docs cover only part of the surface.
Inputs: filter, target.
tqs_list_buildingsARead-only
List TQS buildings under a root folder. A building is a subfolder containing EDIFICIO.DAT. Defaults to the TQS_ROOT environment variable.
Inputs: root, depth.
tqs_processADestructive
Run TQS Manager processing tasks against a building (TQSExec) — global processing, drawing generation, rebar schedules. This overwrites calculation results and drawings in the building tree, and can run for many minutes. See the tqsexec reference for the task list.
Inputs: tasks (required), building_path (required), folder, timeout, +1 more.
tqs_referenceARead-only
Bundled offline reference for the TQS Python Interface. Call with no arguments to list topics. Read the relevant topic before writing TQS code with tqs_run_script.
Inputs: topic, search.
tqs_run_scriptADestructive
Run Python with the TQS modules importable, in a separate process. The escape hatch for anything the other tools do not cover. Assign to a variable named result to return structured data; stdout is captured and returned too. This can create, modify and delete project files.
Inputs: code (required), cwd, timeout.
tqs_statusARead-only
Check whether the TQS Python Interface is reachable. Reports the interpreter in use, which TQS modules import, and the TQS programs/support/user folders. Run this first when TQS tools misbehave.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool targets a distinct concern: processing, building read/edit/list, DWG read, plus supporting utilities (status, introspect, reference, script). There is no meaningful overlap; even introspect and reference are complementary (live API inspection vs offline docs).
All tools share the 'tqs_' prefix, but the verb/noun order is inconsistent: some are verb-first (tqs_list_buildings, tqs_run_script), others noun-first (tqs_building_read, tqs_dwg_read), and a couple are bare nouns (tqs_status, tqs_reference). Names are still clear and readable, but a uniform pattern would be better.
With 9 tools, the server is well-scoped. It covers the core domain operations (buildings, drawings, processing) alongside essential utilities (status, docs, introspection) without unnecessary bloat.
The surface covers listing, reading, editing buildings, reading DWGs, and running processing tasks. Dedicated create/delete building tools are missing, but tqs_run_script explicitly serves as an escape hatch for creating or deleting project files, mitigating the gap. No DWG editing tool exists, but that seems outside the primary scope.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Engineering calculation MCP server for oil and gas engineering applications.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAI-powered MCP server that enables Claude and other LLMs to interact directly with construction documents, drawings, and specifications through advanced RAG and hybrid search capabilities.8MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that integrates Claude with Blender, enabling users to analyze and interact with IFC (Industry Foundation Classes) building models through natural language commands.1768MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that bridges Claude with AutoCAD, enabling to generate architectural floor plans, draw geometry, and export DXF files just by describing what you need in natural language.-
- FlicenseNot gradedqualityCmaintenanceMCP server to control Autodesk Navisworks Manage 2025 from Claude via natural language, enabling model inspection, property search, selection sets, and clash detection.-