Architecture Overview¶
The SolidWorks MCP Server implements an intelligent, multi-layered architecture designed to overcome the limitations of traditional COM-based SolidWorks automation while providing enterprise-grade reliability and security.
High-Level Architecture¶
flowchart TB
subgraph "Client Layer"
Claude["Claude Desktop"]
Custom["Custom Applications"]
Web["Web Interface"]
end
subgraph "MCP Protocol Layer"
Transport["JSON-RPC Transport"]
Protocol["MCP Protocol Handler"]
Auth["Authentication & Security"]
end
subgraph "Application Layer"
Router["Intelligent Router"]
Tools["Tool Registry (109)"]
Cache["Response Cache"]
end
subgraph "Adapter Layer"
Analyzer["Complexity Analyzer"]
COM["Direct COM Adapter"]
VBA["VBA Generator Adapter"]
Breaker["Circuit Breaker"]
end
subgraph "SolidWorks Layer"
SW["SolidWorks Application"]
API["SolidWorks API"]
Macros["VBA Execution Engine"]
end
Claude --> Transport
Custom --> Transport
Web --> Transport
Transport --> Protocol
Protocol --> Auth
Auth --> Router
Router --> Tools
Router --> Cache
Tools --> Analyzer
Analyzer --> COM
Analyzer --> VBA
COM --> Breaker
VBA --> Breaker
Breaker --> SW
COM --> API
VBA --> Macros
Implementation Status (April 2026)¶
| Capability | Status | Notes |
|---|---|---|
| Complexity Analyzer | In progress | Implemented initial analyzer with parameter count, operation profile scoring, and outcome history bias. |
| Intelligent Router | In progress | Implemented runtime COM/VBA routing for selected operations with fallback behavior. |
| Response Cache | In progress | Implemented in-memory TTL cache for selected read-heavy adapter operations. |
| VBA Adapter | In progress | Added VBA route wrapper adapter and factory registration. Current execution still delegates to backing adapter while attaching VBA metadata. |
| Security Runtime Enforcement | In progress | Added runtime API key and rate-limit enforcement in tool invocation path. |
| Distributed Load Balancing | Future state | Current implementation uses local queue-based pooling, not distributed scheduling. |
| OAuth2/JWT Transport Enforcement | Future state | Planned for transport-layer integration in remote deployments. |
For a dated implementation snapshot that may evolve quickly, see the planning docs:
Core Components¶
1. Intelligent Router¶
The core orchestrator that:
- Route Selection: Determines optimal execution path based on operation complexity
- Load Balancing: Distributes requests across available SolidWorks instances
- Fallback Management: Handles failures gracefully with automatic retry strategies
- Caching: Stores frequently accessed data to improve performance
2. Complexity Analyzer¶
Advanced analysis engine that examines operations to determine the best execution strategy:
Analysis Criteria¶
- Parameter Count: Operations with 13+ parameters typically require VBA
- Operation Type: Certain operations (sweeps, lofts) are VBA-preferred
- Data Complexity: Large datasets benefit from VBA batch processing
- Performance History: Past success/failure rates influence routing decisions
Decision Tree¶
flowchart TD
A[Tool Request] --> B{Parameter Count}
B -->|"≤12"| C{Operation Type}
B -->|">12"| D[VBA Generator]
C -->|Simple| E[Direct COM]
C -->|Complex| F{Performance History}
F -->|"Good COM History"| E
F -->|"Poor COM History"| D
E --> G{Success?}
D --> H{Success?}
G -->|Yes| I[Return Result]
G -->|No| J[Circuit Breaker]
H -->|Yes| I
H -->|No| K[Error Handler]
J --> L{Retry Count}
L -->|"< Max"| D
L -->|"= Max"| M[Report Failure]
3. Adapter Architecture¶
Dual-adapter system providing multiple execution paths:
Direct COM Adapter¶
- Speed: Fastest execution for simple operations
- Reliability: Direct API access with immediate feedback
- Limitations: Parameter count restrictions, complex operation failures
- Use Cases: Basic modeling, simple sketches, property queries
VBA Generator Adapter¶
- Flexibility: Handles any operation complexity
- Reliability: Robust handling of complex parameter sets
- Performance: Optimized batch operations
- Use Cases: Complex features, batch processing, advanced operations
4. Security Architecture¶
Multi-layered security system with configurable protection levels:
flowchart TB
subgraph "Security Layers"
Auth["Authentication Layer"]
Authz["Authorization Layer"]
Tool["Tool Access Control"]
File["File System Security"]
VBA["VBA Execution Control"]
end
subgraph "Security Levels"
Dev["Development (High Risk)"]
Rest["Restricted (Medium Risk)"]
Sec["Secure (Low Risk)"]
Lock["Locked (Minimal Risk)"]
end
Request["Client Request"] --> Auth
Auth --> Authz
Authz --> Tool
Tool --> File
File --> VBA
VBA --> Dev
VBA --> Rest
VBA --> Sec
VBA --> Lock
Security Level Matrix¶
| Feature | Development | Restricted | Secure | Locked |
|---|---|---|---|---|
| Tool Access | All 109 | Safe/Moderate | Read-only | Analysis only |
| File System | Full | Limited paths | Read-only | None |
| VBA Execution | Enabled | Controlled | Disabled | Disabled |
| Network Access | Enabled | Disabled | Disabled | Disabled |
| Authentication | None | API Key | OAuth2 | JWT |
5. Connection Management¶
Current runtime connection handling:
Connection Pool¶
- Instance Reuse: Maintains a fixed-size pool of adapters
- Queue-Based Dispatch: Uses an
asyncio.Queueto hand out available adapters - Health Monitoring: Exposes adapter and pool health checks
- Failure Replacement: Disconnects failed adapters and attempts to create replacements
This is not currently an autoscaling or distributed scheduling system.
Circuit Breaker Pattern¶
stateDiagram-v2
[*] --> Closed
Closed --> Open : Failure threshold reached
Open --> HalfOpen : Timeout elapsed
HalfOpen --> Closed : Success
HalfOpen --> Open : Failure
note right of Closed : Normal operation
note right of Open : Reject requests
note right of HalfOpen : Test recovery
Performance Optimizations¶
Current Runtime Behavior¶
Async Tool Execution¶
- MCP tools are implemented as async handlers
- Connection-pool operations use async acquisition and release
- Batch-oriented tools exist for export, file management, template application, macro execution, and automation
What Is Not Implemented Yet¶
- Multi-level runtime caches for results, feature trees, properties, or queries
- TTL or event-driven cache invalidation
- Generic progress streaming across long operations
- Explicit cancellation for in-progress MCP operations
- Queue-backed background workers or autoscaling execution
Planned runtime improvements are tracked in Runtime Operations and Observability Plan.
Error Handling¶
Current Error-Handling Mechanisms¶
Runtime and Adapter Layer¶
- Circuit Breaker: Repeated failures can open the circuit and short-circuit new requests
- Retry with Backoff: The connection-pool wrapper retries failed pooled operations with incremental delay
- Adapter Health Checks: Adapters and the pool expose health metadata
- Standardized Results: Many operations return structured success/error payloads instead of raw exceptions
Agent/Prompt Testing Layer¶
- RecoverableFailure: Agent runs can return structured remediation guidance and retry focus
- SQLite Error Memory: Prompt-test runs can persist errors and tool events for later review
What Is Not Implemented Yet¶
- A formal, global error taxonomy enforced across the full runtime
- Runtime alerting/notification hooks
- Centralized incident routing or external observability integration
- Rich cancellation-aware recovery for long-running jobs
Planned runtime error/observability work is tracked in Runtime Operations and Observability Plan.
Monitoring and Observability¶
Implemented Today¶
- Structured application logging
- Adapter and pool health metadata
- Agent-side SQLite logging for runs, tool events, and failure history
Planned, Not Yet Generalized¶
- Alerting
- Dashboard-oriented metrics sinks
- Distributed metrics aggregation
These roadmap ideas live in Runtime Operations and Observability Plan.
Agent Orchestration Add-On¶
The project includes a lightweight agent orchestration and prompt-testing layer for custom workspace agents:
- Runtime package:
src/solidworks_mcp/agents/ - Prompt validation harness:
harness.py - Typed output schemas:
schemas.py - Local error-memory SQLite:
history_db.py
This layer is intentionally separate from the core MCP server runtime.
It is useful for:
- prompt validation against typed schemas
- testing specialist workspace agents without changing server tools
- storing run history, tool events, and recoverable failures locally
It is not the same thing as the MCP tool runtime itself, and teams can use the server without adopting this layer.
See:
Deployment Patterns¶
Local Development¶
- Single instance with mock SolidWorks for testing
- Full debugging and development tool access
- Hot reloading for rapid development
Enterprise Production¶
- Load-balanced multiple instances
- Database-backed caching and state management
- Comprehensive monitoring and alerting
- Security hardening and audit compliance
Cloud Deployment¶
- Containerized instances with orchestration
- Auto-scaling based on demand
- Distributed caching and state management
- Global load balancing and CDN integration
Next Steps
- Learn about Tools Overview to understand available capabilities
- Check the Getting Started Guide for practical examples
- Review the codebase for technical implementation details