This MCP server enables natural language control of AutoCAD LT 2024/2025, allowing you to create engineering drawings and P&ID diagrams through conversational prompts. It generates and executes AutoLISP code in response to your commands, bridging Claude or other LLM clients with AutoCAD LT.
git clone https://github.com/hvkshetry/autocad-mcp.git
cd autocad-mcp
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
For users WITH CTO Library:
{
"mcpServers": {
"autocad-mcp": {
"command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe",
"args": ["path\\to\\autocad-mcp\\server_lisp_fast.py"]
}
}
}
For users WITHOUT CTO Library:
{
"mcpServers": {
"autocad-mcp": {
"command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe",
"args": ["path\\to\\autocad-mcp\\server_lisp.py"]
}
}
}
If you have the CAD Tools Online P&ID Library:
C:\PIDv4-CTO\
C:\PIDv4-CTO\VALVES\
C:\PIDv4-CTO\EQUIPMENT\
C:\PIDv4-CTO\PUMPS-BLOWERS\
C:\PIDv4-CTO\TANKS\
If you DON'T have the CTO Library:
server_lisp.py
instead of server_lisp_fast.py
Launch AutoCAD LT
Start the Server
# For users with CTO library (recommended)
start_fast_server.bat
# For users without CTO library
start_lisp_server.bat
Test the Connection
test_connection.bat
create_line
: Draw lines between pointscreate_circle
: Create circles with center and radiuscreate_text
: Add text labels with rotation supportcreate_polyline
: Create polylines from point seriescreate_rectangle
: Create rectangles from corner pointsbatch_create_lines
: Create multiple lines efficientlybatch_create_circles
: Create multiple circles efficientlybatch_create_texts
: Create multiple text entities efficientlyinsert_block
: Insert blocks with attributes and positioningset_layer_properties
: Create/modify layers with full propertiesmove_last_entity
: Move recently created entitiesupdate_block_attribute
: Modify block attributes after insertionsetup_pid_layers
: Create standard P&ID drawing layersinsert_pid_symbol
: Insert any symbol from CTO libraryinsert_pid_equipment_with_attribs
: Insert equipment with proper attributesinsert_valve_with_attributes
: Insert valves with CTO attributesinsert_equipment_tag
: Add equipment identification tagsinsert_equipment_description
: Add equipment description blocksinsert_line_number_tag
: Add process line identificationdraw_process_line
: Draw process piping between pointsconnect_equipment
: Connect equipment with orthogonal routingadd_flow_arrow
: Add directional flow indicatorscreate_arc
: Create arcs with center, radius, and anglescreate_ellipse
: Create ellipses with major axis and ratiocreate_mtext
: Add multiline formatted textcreate_linear_dimension
: Add linear dimensionscreate_hatch
: Add hatching to closed areaslist_pid_symbols
: List available symbols by category"Draw a line from (0,0) to (100,100)"
"Create a circle at (50,50) with radius 25"
"Add text 'Equipment Room' at position (75,125)"
"Set up P&ID layers for a new drawing"
"Insert a centrifugal pump at (100,100) with tag P-101"
"Add a gate valve at (150,100) with size 6 inches and tag V-201"
"Connect the pump P-101 to valve V-201 with process piping"
"Add equipment tag P-101 above the pump"
"Create a wastewater treatment process with screening, primary clarifier, aeration basin, and secondary clarifier"
"Insert a clarifier at (200,100) with equipment number CL-301"
"Add line number 8"-WW-001 to the main process line"
"Create 10 circles in a grid pattern with centers every 50 units"
"Draw process lines connecting all equipment in sequence"
"Add equipment tags for all pumps with sequential numbering"
If you don't have the CAD Tools Online library, you can still use this MCP server effectively:
Replace the server command with:
"args": ["path\\to\\autocad-mcp\\server_lisp.py"]
Instead of CTO symbols, you can:
"Draw a circle to represent a pump at (100,100)"
"Add text 'P-101 Centrifugal Pump' next to it"
"Create a rectangle for a tank at (200,100)"
"Connect them with a line for piping"
Adjust performance based on your system:
# Fast systems
set_performance_mode(fast_mode=True, minimal_delay=0.03)
# Slower systems (more reliable)
set_performance_mode(fast_mode=False, minimal_delay=0.1)
Common issues and solutions:
server_lisp.py
without P&ID functionalityTo add this MCP server to Claude Code, run this command in your terminal:
claude mcp add-json "autocad-mcp" '{"command":"path\\to\\autocad-mcp\\venv\\Scripts\\python.exe","args":["path\\to\\autocad-mcp\\server_lisp_fast.py"]}'
See the official Claude Code MCP documentation for more details.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"autocad-mcp": {
"command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe",
"args": [
"path\\to\\autocad-mcp\\server_lisp_fast.py"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.
To add this MCP server to Claude Desktop:
1. Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
2. Add this to your configuration file:
{
"mcpServers": {
"autocad-mcp": {
"command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe",
"args": [
"path\\to\\autocad-mcp\\server_lisp_fast.py"
]
}
}
}
3. Restart Claude Desktop for the changes to take effect