SolidWorks MCP Bridge
by Said-AER
README.md
# SolidWorks MCP Bridge 🌉 ⚙️
Servidor y puente de integración basado en **Model Context Protocol (MCP)** para comunicar modelos de lenguaje locales (vía **Ollama**) con la API COM de **SolidWorks**.
Permite que LLMs como `qwen3:8b` y `qwen3:30b-a3b` inspeccionen el estado del diseño, analicen el árbol de operaciones, lean cotas, consulten ecuaciones, extraigan propiedades físicas de masa y exporten archivos técnicos de forma automatizada y estructurada.
---
## 🎯 Alcance del Proyecto
- **Nivel 1 (Fase Actual - Lectura)**: Inspección no destructiva de piezas, ensamblajes, cotas, ecuaciones, masa y estudios FEA.
- **Nivel 2 (Fase Futura - Edición)**: Modificación paramétrica de cotas, variables globales y reconstrucción controlada.
- **Nivel 3 (Fase Futura - Generación)**: Creación de bocetos 2D/3D, operaciones y macros automatizadas.
---
## 📂 Estructura del Proyecto
```
LOCAL LLM/
├── requirements.txt # Dependencias Python (mcp, pywin32, pydantic, ollama, etc.)
├── pyproject.toml # Configuración del paquete y testing
├── .env.example # Plantilla de variables de entorno
├── .env # Configuración activa local
├── src/
│ └── sw_bridge/
│ ├── config.py # Carga de configuración (pydantic-settings)
│ ├── logging_config.py # Logging estructurado JSON por sesión
│ ├── server.py # Servidor MCP (fastmcp / stdio / sse)
│ ├── sw_connection/ # Conexión COM a SolidWorks
│ │ ├── connector.py # Singleton y reconexión automática
│ │ ├── exceptions.py # Excepciones tipadas
│ │ └── models.py # Modelos de datos Pydantic
│ └── tools/ # Herramientas de Nivel 1
│ ├── document_tools.py
│ ├── feature_tree_tools.py
│ ├── dimension_tools.py
│ ├── mass_props_tools.py
│ ├── export_tools.py
│ └── fea_tools.py
├── tests/ # Pruebas automatizadas (pytest)
├── scripts/
│ ├── test_tool_calling.py # Validación de llamadas a funciones con Ollama
│ └── smoke_test.py # Smoke test contra SolidWorks
└── docs/ # Especificaciones y resolución de problemas
├── alcance.md
├── tool_schemas.md
└── troubleshooting.md
```
---
## 🚀 Instalación y Puesta en Marcha
### 1. Activar el entorno virtual
```powershell
.\sw-mcp-env\Scripts\activate
```
### 2. Verificar modelos en Ollama
Asegúrese de tener disponible el modelo con soporte de herramientas:
```powershell
ollama list
ollama show qwen3:8b
```
### 3. Probar Tool Calling con el LLM local
```powershell
.\sw-mcp-env\Scripts\python scripts/test_tool_calling.py
```
### 4. Ejecutar Suite de Pruebas
```powershell
.\sw-mcp-env\Scripts\pytest tests/ -v
```
### 5. Iniciar el Servidor MCP (Modo stdio)
```powershell
.\sw-mcp-env\Scripts\python -m sw_bridge.server --transport stdio
```
---
## 🛠️ Herramientas Disponibles (Nivel 1)
| Herramienta | Descripción |
| :--- | :--- |
| `check_solidworks_status` | Verifica si SolidWorks está respondiendo vía COM. |
| `get_active_document_info` | Obtiene tipo, ruta, configuraciones y estado de guardado. |
| `list_open_documents` | Lista todos los documentos cargados en la sesión. |
| `get_feature_tree` | Extrae el árbol completo de operaciones (FeatureManager). |
| `get_feature_details` | Inspecciona definición y parámetros de una operación. |
| `list_dimensions` | Lista cotas numéricas del modelo o de una operación. |
| `get_equations` | Lee las ecuaciones y variables globales del gestor de ecuaciones. |
| `get_mass_properties` | Calcula masa (kg), volumen, centro de gravedad e inercia. |
| `export_step` | Exporta el modelo activo a formato neutral STEP. |
| `export_pdf` | Exporta el plano 2D o vista activa a PDF. |
| `export_screenshot` | Guarda una captura en alta resolución en formato PNG. |
| `list_simulation_studies` | Lista estudios de análisis por elementos finitos (FEA). |
| `get_simulation_study_results` | Consulta tensiones de von Mises y factores de seguridad. |
---
## ⚙️ Configuración como Servidor MCP en Antigravity / Claude Desktop
Agregue la siguiente configuración a su cliente MCP:
```json
{
"mcpServers": {
"solidworks-bridge": {
"command": "C:\\Users\\said\\Desktop\\LOCAL LLM\\sw-mcp-env\\Scripts\\python.exe",
"args": ["-m", "sw_bridge.server", "--transport", "stdio"],
"cwd": "C:\\Users\\said\\Desktop\\LOCAL LLM"
}
}
}
```
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues