solidworks-mcp-server 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/LICENSE +21 -0
- package/README.md +333 -0
- package/dist/cache/manager.d.ts +50 -0
- package/dist/cache/manager.d.ts.map +1 -0
- package/dist/cache/manager.js +127 -0
- package/dist/cache/manager.js.map +1 -0
- package/dist/db/connection.d.ts +48 -0
- package/dist/db/connection.d.ts.map +1 -0
- package/dist/db/connection.js +132 -0
- package/dist/db/connection.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +402 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/chromadb.d.ts +16 -0
- package/dist/knowledge/chromadb.d.ts.map +1 -0
- package/dist/knowledge/chromadb.js +80 -0
- package/dist/knowledge/chromadb.js.map +1 -0
- package/dist/macro/index.d.ts +6 -0
- package/dist/macro/index.d.ts.map +1 -0
- package/dist/macro/index.js +6 -0
- package/dist/macro/index.js.map +1 -0
- package/dist/macro/recorder.d.ts +72 -0
- package/dist/macro/recorder.d.ts.map +1 -0
- package/dist/macro/recorder.js +228 -0
- package/dist/macro/recorder.js.map +1 -0
- package/dist/macro/types.d.ts +77 -0
- package/dist/macro/types.d.ts.map +1 -0
- package/dist/macro/types.js +5 -0
- package/dist/macro/types.js.map +1 -0
- package/dist/resources/base.d.ts +116 -0
- package/dist/resources/base.d.ts.map +1 -0
- package/dist/resources/base.js +161 -0
- package/dist/resources/base.js.map +1 -0
- package/dist/resources/design-table.d.ts +384 -0
- package/dist/resources/design-table.d.ts.map +1 -0
- package/dist/resources/design-table.js +337 -0
- package/dist/resources/design-table.js.map +1 -0
- package/dist/resources/pdm.d.ts +1277 -0
- package/dist/resources/pdm.d.ts.map +1 -0
- package/dist/resources/pdm.js +358 -0
- package/dist/resources/pdm.js.map +1 -0
- package/dist/resources/registry.d.ts +59 -0
- package/dist/resources/registry.d.ts.map +1 -0
- package/dist/resources/registry.js +88 -0
- package/dist/resources/registry.js.map +1 -0
- package/dist/solidworks/api.d.ts +24 -0
- package/dist/solidworks/api.d.ts.map +1 -0
- package/dist/solidworks/api.js +226 -0
- package/dist/solidworks/api.js.map +1 -0
- package/dist/solidworks/types.d.ts +55 -0
- package/dist/solidworks/types.d.ts.map +1 -0
- package/dist/solidworks/types.js +2 -0
- package/dist/solidworks/types.js.map +1 -0
- package/dist/state/store.d.ts +101 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +262 -0
- package/dist/state/store.js.map +1 -0
- package/dist/tools/analysis.d.ts +37 -0
- package/dist/tools/analysis.d.ts.map +1 -0
- package/dist/tools/analysis.js +169 -0
- package/dist/tools/analysis.js.map +1 -0
- package/dist/tools/drawing.d.ts +151 -0
- package/dist/tools/drawing.d.ts.map +1 -0
- package/dist/tools/drawing.js +171 -0
- package/dist/tools/drawing.js.map +1 -0
- package/dist/tools/export.d.ts +97 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +128 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/modeling.d.ts +9 -0
- package/dist/tools/modeling.d.ts.map +1 -0
- package/dist/tools/modeling.js +120 -0
- package/dist/tools/modeling.js.map +1 -0
- package/dist/tools/vba.d.ts +123 -0
- package/dist/tools/vba.d.ts.map +1 -0
- package/dist/tools/vba.js +158 -0
- package/dist/tools/vba.js.map +1 -0
- package/dist/utils/config.d.ts +18 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +26 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +84 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Connection Manager for Design Tables
|
|
3
|
+
* Supports SQL Server and PostgreSQL
|
|
4
|
+
*/
|
|
5
|
+
import pg from 'pg';
|
|
6
|
+
import mssql from 'mssql';
|
|
7
|
+
import { logger } from '../utils/logger.js';
|
|
8
|
+
export class PostgreSQLConnection {
|
|
9
|
+
client;
|
|
10
|
+
constructor(connectionString) {
|
|
11
|
+
this.client = new pg.Client({ connectionString });
|
|
12
|
+
}
|
|
13
|
+
async connect() {
|
|
14
|
+
await this.client.connect();
|
|
15
|
+
logger.info('Connected to PostgreSQL database');
|
|
16
|
+
}
|
|
17
|
+
async query(sql, params) {
|
|
18
|
+
const result = await this.client.query(sql, params);
|
|
19
|
+
return result.rows;
|
|
20
|
+
}
|
|
21
|
+
async close() {
|
|
22
|
+
await this.client.end();
|
|
23
|
+
logger.info('Disconnected from PostgreSQL database');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class SQLServerConnection {
|
|
27
|
+
pool = null;
|
|
28
|
+
config;
|
|
29
|
+
constructor(connectionString) {
|
|
30
|
+
// Parse connection string for SQL Server
|
|
31
|
+
const url = new URL(connectionString);
|
|
32
|
+
this.config = {
|
|
33
|
+
server: url.hostname,
|
|
34
|
+
port: parseInt(url.port) || 1433,
|
|
35
|
+
database: url.pathname.substring(1),
|
|
36
|
+
user: url.username,
|
|
37
|
+
password: url.password,
|
|
38
|
+
options: {
|
|
39
|
+
encrypt: true,
|
|
40
|
+
trustServerCertificate: true
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async connect() {
|
|
45
|
+
this.pool = await mssql.connect(this.config);
|
|
46
|
+
logger.info('Connected to SQL Server database');
|
|
47
|
+
}
|
|
48
|
+
async query(sql, params) {
|
|
49
|
+
if (!this.pool) {
|
|
50
|
+
await this.connect();
|
|
51
|
+
}
|
|
52
|
+
const request = this.pool.request();
|
|
53
|
+
// Add parameters if provided
|
|
54
|
+
if (params) {
|
|
55
|
+
params.forEach((param, index) => {
|
|
56
|
+
request.input(`param${index}`, param);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const result = await request.query(sql);
|
|
60
|
+
return result.recordset;
|
|
61
|
+
}
|
|
62
|
+
async close() {
|
|
63
|
+
if (this.pool) {
|
|
64
|
+
await this.pool.close();
|
|
65
|
+
logger.info('Disconnected from SQL Server database');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export class DatabaseManager {
|
|
70
|
+
connections = new Map();
|
|
71
|
+
/**
|
|
72
|
+
* Create a database connection
|
|
73
|
+
*/
|
|
74
|
+
async createConnection(name, connectionString) {
|
|
75
|
+
// Close existing connection if any
|
|
76
|
+
if (this.connections.has(name)) {
|
|
77
|
+
await this.closeConnection(name);
|
|
78
|
+
}
|
|
79
|
+
let connection;
|
|
80
|
+
if (connectionString.startsWith('postgresql://') || connectionString.startsWith('postgres://')) {
|
|
81
|
+
connection = new PostgreSQLConnection(connectionString);
|
|
82
|
+
await connection.connect();
|
|
83
|
+
}
|
|
84
|
+
else if (connectionString.startsWith('mssql://') || connectionString.startsWith('sqlserver://')) {
|
|
85
|
+
connection = new SQLServerConnection(connectionString);
|
|
86
|
+
await connection.connect();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error(`Unsupported database type in connection string: ${connectionString}`);
|
|
90
|
+
}
|
|
91
|
+
this.connections.set(name, connection);
|
|
92
|
+
return connection;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get an existing connection
|
|
96
|
+
*/
|
|
97
|
+
getConnection(name) {
|
|
98
|
+
return this.connections.get(name);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Close a connection
|
|
102
|
+
*/
|
|
103
|
+
async closeConnection(name) {
|
|
104
|
+
const connection = this.connections.get(name);
|
|
105
|
+
if (connection) {
|
|
106
|
+
await connection.close();
|
|
107
|
+
this.connections.delete(name);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Close all connections
|
|
112
|
+
*/
|
|
113
|
+
async closeAll() {
|
|
114
|
+
for (const [, connection] of this.connections) {
|
|
115
|
+
await connection.close();
|
|
116
|
+
}
|
|
117
|
+
this.connections.clear();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Execute a query on a named connection
|
|
121
|
+
*/
|
|
122
|
+
async query(connectionName, sql, params) {
|
|
123
|
+
const connection = this.connections.get(connectionName);
|
|
124
|
+
if (!connection) {
|
|
125
|
+
throw new Error(`No connection found with name: ${connectionName}`);
|
|
126
|
+
}
|
|
127
|
+
return await connection.query(sql, params);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Export singleton instance
|
|
131
|
+
export const dbManager = new DatabaseManager();
|
|
132
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* SolidWorks MCP Server - Enhanced Architecture
|
|
4
|
+
* Provides comprehensive SolidWorks automation with macro recording,
|
|
5
|
+
* design tables, SQL integration, VBA generation, and PDM configuration
|
|
6
|
+
*/
|
|
7
|
+
declare class SolidWorksMCPServer {
|
|
8
|
+
private server;
|
|
9
|
+
private api;
|
|
10
|
+
private stateStore;
|
|
11
|
+
private macroRecorder;
|
|
12
|
+
private cacheManager;
|
|
13
|
+
private config;
|
|
14
|
+
constructor();
|
|
15
|
+
/**
|
|
16
|
+
* Register resource types
|
|
17
|
+
*/
|
|
18
|
+
private registerResources;
|
|
19
|
+
/**
|
|
20
|
+
* Setup request handlers
|
|
21
|
+
*/
|
|
22
|
+
private setupHandlers;
|
|
23
|
+
/**
|
|
24
|
+
* Setup macro action handlers
|
|
25
|
+
*/
|
|
26
|
+
private setupMacroHandlers;
|
|
27
|
+
/**
|
|
28
|
+
* Initialize and start the server
|
|
29
|
+
*/
|
|
30
|
+
start(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Shutdown the server
|
|
33
|
+
*/
|
|
34
|
+
shutdown(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
export { SolidWorksMCPServer };
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AA0DH,cAAM,mBAAmB;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA+B;;IAwC7C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoNrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC5B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAyBhC;AAkBD,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* SolidWorks MCP Server - Enhanced Architecture
|
|
4
|
+
* Provides comprehensive SolidWorks automation with macro recording,
|
|
5
|
+
* design tables, SQL integration, VBA generation, and PDM configuration
|
|
6
|
+
*/
|
|
7
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
8
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
9
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import dotenv from 'dotenv';
|
|
12
|
+
// Import logging
|
|
13
|
+
import { logInfo, logError, logOperation } from './utils/logger.js';
|
|
14
|
+
// Import resources and registry
|
|
15
|
+
import { resourceRegistry } from './resources/registry.js';
|
|
16
|
+
import { DesignTableResource } from './resources/design-table.js';
|
|
17
|
+
import { PDMResource } from './resources/pdm.js';
|
|
18
|
+
// Import state management
|
|
19
|
+
import { ResourceStateStore } from './state/store.js';
|
|
20
|
+
// Import macro system
|
|
21
|
+
import { MacroRecorder } from './macro/index.js';
|
|
22
|
+
// Import cache management
|
|
23
|
+
import { CacheManager } from './cache/manager.js';
|
|
24
|
+
// Import database management
|
|
25
|
+
import { dbManager } from './db/connection.js';
|
|
26
|
+
// Import existing tools
|
|
27
|
+
import { modelingTools } from './tools/modeling.js';
|
|
28
|
+
import { drawingTools } from './tools/drawing.js';
|
|
29
|
+
import { exportTools } from './tools/export.js';
|
|
30
|
+
import { vbaTools } from './tools/vba.js';
|
|
31
|
+
import { analysisTools } from './tools/analysis.js';
|
|
32
|
+
// Import API
|
|
33
|
+
import { SolidWorksAPI } from './solidworks/api.js';
|
|
34
|
+
dotenv.config();
|
|
35
|
+
// Configuration schema
|
|
36
|
+
const ConfigSchema = z.object({
|
|
37
|
+
solidworksPath: z.string().optional(),
|
|
38
|
+
enableMacroRecording: z.boolean().default(true),
|
|
39
|
+
enablePDM: z.boolean().default(false),
|
|
40
|
+
pdmVault: z.string().optional(),
|
|
41
|
+
sqlConnection: z.string().optional(),
|
|
42
|
+
stateFile: z.string().optional(),
|
|
43
|
+
logLevel: z.enum(['debug', 'info', 'warn', 'error']).default('info')
|
|
44
|
+
});
|
|
45
|
+
class SolidWorksMCPServer {
|
|
46
|
+
server;
|
|
47
|
+
api;
|
|
48
|
+
stateStore;
|
|
49
|
+
macroRecorder;
|
|
50
|
+
cacheManager;
|
|
51
|
+
config;
|
|
52
|
+
constructor() {
|
|
53
|
+
// Parse configuration
|
|
54
|
+
this.config = ConfigSchema.parse({
|
|
55
|
+
solidworksPath: process.env.SOLIDWORKS_PATH,
|
|
56
|
+
enableMacroRecording: process.env.ENABLE_MACRO_RECORDING !== 'false',
|
|
57
|
+
enablePDM: process.env.ENABLE_PDM === 'true',
|
|
58
|
+
pdmVault: process.env.PDM_VAULT,
|
|
59
|
+
sqlConnection: process.env.SQL_CONNECTION,
|
|
60
|
+
stateFile: process.env.STATE_FILE,
|
|
61
|
+
logLevel: process.env.LOG_LEVEL || 'info'
|
|
62
|
+
});
|
|
63
|
+
// Initialize components
|
|
64
|
+
this.api = new SolidWorksAPI();
|
|
65
|
+
this.stateStore = new ResourceStateStore(this.config.stateFile);
|
|
66
|
+
this.macroRecorder = new MacroRecorder();
|
|
67
|
+
this.cacheManager = new CacheManager(1000, 3600000); // 1000 entries, 1 hour TTL
|
|
68
|
+
// Create MCP server
|
|
69
|
+
this.server = new Server({
|
|
70
|
+
name: 'solidworks-mcp-server',
|
|
71
|
+
version: '2.0.0',
|
|
72
|
+
description: 'Enhanced SolidWorks MCP Server with macro recording, design tables, SQL integration, and PDM support'
|
|
73
|
+
}, {
|
|
74
|
+
capabilities: {
|
|
75
|
+
tools: {},
|
|
76
|
+
resources: {}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
this.registerResources();
|
|
80
|
+
this.setupHandlers();
|
|
81
|
+
this.setupMacroHandlers();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Register resource types
|
|
85
|
+
*/
|
|
86
|
+
registerResources() {
|
|
87
|
+
// Register Design Table resource
|
|
88
|
+
resourceRegistry.register({
|
|
89
|
+
type: 'design-table',
|
|
90
|
+
name: 'Design Table',
|
|
91
|
+
description: 'Manages SolidWorks design tables with SQL integration',
|
|
92
|
+
schema: DesignTableResource.prototype.schema,
|
|
93
|
+
factory: (id, name, properties) => new DesignTableResource(id, name, properties),
|
|
94
|
+
examples: [
|
|
95
|
+
{
|
|
96
|
+
tableName: 'ParametricBox',
|
|
97
|
+
parameters: [
|
|
98
|
+
{ name: 'Length', type: 'dimension', dataType: 'number', sqlColumn: 'length' },
|
|
99
|
+
{ name: 'Width', type: 'dimension', dataType: 'number', sqlColumn: 'width' },
|
|
100
|
+
{ name: 'Height', type: 'dimension', dataType: 'number', sqlColumn: 'height' }
|
|
101
|
+
],
|
|
102
|
+
dataSource: {
|
|
103
|
+
type: 'sql',
|
|
104
|
+
connectionString: 'mssql://server:1433/database',
|
|
105
|
+
query: 'SELECT * FROM design_configurations'
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
});
|
|
110
|
+
// Register PDM resource
|
|
111
|
+
if (this.config.enablePDM) {
|
|
112
|
+
resourceRegistry.register({
|
|
113
|
+
type: 'pdm-configuration',
|
|
114
|
+
name: 'PDM Configuration',
|
|
115
|
+
description: 'Manages SolidWorks PDM vault configurations and operations',
|
|
116
|
+
schema: PDMResource.prototype.schema,
|
|
117
|
+
factory: (id, name, properties) => new PDMResource(id, name, properties),
|
|
118
|
+
examples: [
|
|
119
|
+
{
|
|
120
|
+
vaultName: 'Engineering',
|
|
121
|
+
operations: {
|
|
122
|
+
checkIn: { enabled: true, comment: 'Auto check-in' },
|
|
123
|
+
checkOut: { enabled: true, getLatestVersion: true }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
logInfo('Resources registered', {
|
|
130
|
+
types: resourceRegistry.getAllTypes()
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Setup request handlers
|
|
135
|
+
*/
|
|
136
|
+
setupHandlers() {
|
|
137
|
+
// Combine all tools
|
|
138
|
+
const allTools = [
|
|
139
|
+
...modelingTools,
|
|
140
|
+
...drawingTools,
|
|
141
|
+
...exportTools,
|
|
142
|
+
...vbaTools,
|
|
143
|
+
...analysisTools,
|
|
144
|
+
// Add macro tools
|
|
145
|
+
{
|
|
146
|
+
name: 'macro_start_recording',
|
|
147
|
+
description: 'Start recording a new macro',
|
|
148
|
+
inputSchema: z.object({
|
|
149
|
+
name: z.string(),
|
|
150
|
+
description: z.string().optional()
|
|
151
|
+
}),
|
|
152
|
+
handler: (args) => {
|
|
153
|
+
const id = this.macroRecorder.startRecording(args.name, args.description);
|
|
154
|
+
return { macroId: id, status: 'recording' };
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: 'macro_stop_recording',
|
|
159
|
+
description: 'Stop the current macro recording',
|
|
160
|
+
inputSchema: z.object({}),
|
|
161
|
+
handler: () => {
|
|
162
|
+
const recording = this.macroRecorder.stopRecording();
|
|
163
|
+
return recording || { error: 'No recording in progress' };
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: 'macro_export_vba',
|
|
168
|
+
description: 'Export a recorded macro to VBA code',
|
|
169
|
+
inputSchema: z.object({
|
|
170
|
+
macroId: z.string()
|
|
171
|
+
}),
|
|
172
|
+
handler: (args) => {
|
|
173
|
+
const vbaCode = this.macroRecorder.exportToVBA(args.macroId);
|
|
174
|
+
return { code: vbaCode };
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
// Add design table tools
|
|
178
|
+
{
|
|
179
|
+
name: 'design_table_create',
|
|
180
|
+
description: 'Create a new design table with optional SQL data source',
|
|
181
|
+
inputSchema: z.object({
|
|
182
|
+
name: z.string(),
|
|
183
|
+
config: z.any()
|
|
184
|
+
}),
|
|
185
|
+
handler: async (args) => {
|
|
186
|
+
const resource = new DesignTableResource(`dt_${Date.now()}`, args.name, args.config);
|
|
187
|
+
const result = await resource.execute(this.api);
|
|
188
|
+
await this.stateStore.setState(resource.id, resource.toState());
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: 'design_table_refresh',
|
|
194
|
+
description: 'Refresh design table data from SQL source',
|
|
195
|
+
inputSchema: z.object({
|
|
196
|
+
resourceId: z.string()
|
|
197
|
+
}),
|
|
198
|
+
handler: async (args) => {
|
|
199
|
+
const state = this.stateStore.getState(args.resourceId);
|
|
200
|
+
if (!state || state.type !== 'design-table') {
|
|
201
|
+
throw new Error('Design table resource not found');
|
|
202
|
+
}
|
|
203
|
+
const resource = new DesignTableResource(state.id, state.name, state.properties);
|
|
204
|
+
await resource.refresh(this.api);
|
|
205
|
+
await this.stateStore.setState(resource.id, resource.toState());
|
|
206
|
+
return { status: 'refreshed' };
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
// Add PDM tools if enabled
|
|
210
|
+
...(this.config.enablePDM ? [
|
|
211
|
+
{
|
|
212
|
+
name: 'pdm_configure',
|
|
213
|
+
description: 'Configure PDM vault settings and operations',
|
|
214
|
+
inputSchema: z.object({
|
|
215
|
+
name: z.string(),
|
|
216
|
+
config: z.any()
|
|
217
|
+
}),
|
|
218
|
+
handler: async (args) => {
|
|
219
|
+
const resource = new PDMResource(`pdm_${Date.now()}`, args.name, args.config);
|
|
220
|
+
const result = await resource.execute(this.api);
|
|
221
|
+
await this.stateStore.setState(resource.id, resource.toState());
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
] : [])
|
|
226
|
+
];
|
|
227
|
+
// List available tools
|
|
228
|
+
this.server.setRequestHandler(ListToolsRequestSchema, () => {
|
|
229
|
+
return {
|
|
230
|
+
tools: allTools.map(tool => ({
|
|
231
|
+
name: tool.name,
|
|
232
|
+
description: tool.description,
|
|
233
|
+
inputSchema: tool.inputSchema
|
|
234
|
+
}))
|
|
235
|
+
};
|
|
236
|
+
});
|
|
237
|
+
// Handle tool execution
|
|
238
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
239
|
+
const { name, arguments: args } = request.params;
|
|
240
|
+
logOperation(name, 'started', args);
|
|
241
|
+
const tool = allTools.find(t => t.name === name);
|
|
242
|
+
if (!tool) {
|
|
243
|
+
throw new McpError(ErrorCode.MethodNotFound, `Tool "${name}" not found`);
|
|
244
|
+
}
|
|
245
|
+
try {
|
|
246
|
+
// Validate input
|
|
247
|
+
const validatedArgs = tool.inputSchema.parse(args);
|
|
248
|
+
// Record action if recording
|
|
249
|
+
if (this.config.enableMacroRecording && this.macroRecorder) {
|
|
250
|
+
try {
|
|
251
|
+
this.macroRecorder.recordAction(name, tool.description, validatedArgs);
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
// Recording not in progress, ignore
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Ensure SolidWorks connection
|
|
258
|
+
if (!this.api.isConnected()) {
|
|
259
|
+
await this.api.connect();
|
|
260
|
+
}
|
|
261
|
+
// Execute tool
|
|
262
|
+
const result = await tool.handler(validatedArgs, this.api);
|
|
263
|
+
logOperation(name, 'completed', { result });
|
|
264
|
+
return {
|
|
265
|
+
content: [
|
|
266
|
+
{
|
|
267
|
+
type: 'text',
|
|
268
|
+
text: typeof result === 'string' ? result : JSON.stringify(result, null, 2)
|
|
269
|
+
}
|
|
270
|
+
]
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
logOperation(name, 'failed', { error });
|
|
275
|
+
if (error instanceof z.ZodError) {
|
|
276
|
+
throw new McpError(ErrorCode.InvalidParams, `Invalid parameters: ${error.errors.map(e => e.message).join(', ')}`);
|
|
277
|
+
}
|
|
278
|
+
throw error;
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
// List resources
|
|
282
|
+
this.server.setRequestHandler(ListResourcesRequestSchema, () => {
|
|
283
|
+
const resources = this.stateStore.getAllStates();
|
|
284
|
+
return {
|
|
285
|
+
resources: resources.map(state => ({
|
|
286
|
+
uri: `solidworks://${state.type}/${state.id}`,
|
|
287
|
+
name: state.name,
|
|
288
|
+
mimeType: 'application/json',
|
|
289
|
+
description: `${state.type} resource: ${state.name}`
|
|
290
|
+
}))
|
|
291
|
+
};
|
|
292
|
+
});
|
|
293
|
+
// Read resource
|
|
294
|
+
this.server.setRequestHandler(ReadResourceRequestSchema, (request) => {
|
|
295
|
+
const { uri } = request.params;
|
|
296
|
+
// Parse URI: solidworks://type/id
|
|
297
|
+
const match = uri.match(/^solidworks:\/\/([^/]+)\/(.+)$/);
|
|
298
|
+
if (!match) {
|
|
299
|
+
throw new McpError(ErrorCode.InvalidRequest, 'Invalid resource URI');
|
|
300
|
+
}
|
|
301
|
+
const [, , id] = match;
|
|
302
|
+
const state = this.stateStore.getState(id);
|
|
303
|
+
if (!state) {
|
|
304
|
+
throw new McpError(ErrorCode.InvalidRequest, 'Resource not found');
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
contents: [
|
|
308
|
+
{
|
|
309
|
+
uri,
|
|
310
|
+
mimeType: 'application/json',
|
|
311
|
+
text: JSON.stringify(state, null, 2)
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
};
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Setup macro action handlers
|
|
319
|
+
*/
|
|
320
|
+
setupMacroHandlers() {
|
|
321
|
+
// Register handlers for different action types
|
|
322
|
+
this.macroRecorder.registerActionHandler('create-sketch', async (action) => {
|
|
323
|
+
return await this.api.createSketch(action.parameters);
|
|
324
|
+
});
|
|
325
|
+
this.macroRecorder.registerActionHandler('add-line', async (action) => {
|
|
326
|
+
return await this.api.addLine(action.parameters);
|
|
327
|
+
});
|
|
328
|
+
this.macroRecorder.registerActionHandler('extrude', async (action) => {
|
|
329
|
+
return await this.api.extrude(action.parameters);
|
|
330
|
+
});
|
|
331
|
+
// Add more handlers as needed
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Initialize and start the server
|
|
335
|
+
*/
|
|
336
|
+
async start() {
|
|
337
|
+
try {
|
|
338
|
+
// Load saved state
|
|
339
|
+
await this.stateStore.load();
|
|
340
|
+
logInfo('State store loaded', this.stateStore.getStatistics());
|
|
341
|
+
// Start server with stdio transport
|
|
342
|
+
const transport = new StdioServerTransport();
|
|
343
|
+
await this.server.connect(transport);
|
|
344
|
+
logInfo('SolidWorks MCP Server started', {
|
|
345
|
+
version: '2.0.0',
|
|
346
|
+
features: {
|
|
347
|
+
macroRecording: this.config.enableMacroRecording,
|
|
348
|
+
pdmIntegration: this.config.enablePDM,
|
|
349
|
+
sqlIntegration: !!this.config.sqlConnection
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
// Handle shutdown
|
|
353
|
+
process.on('SIGINT', async () => {
|
|
354
|
+
logInfo('Shutting down server...');
|
|
355
|
+
await this.shutdown();
|
|
356
|
+
process.exit(0);
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
catch (error) {
|
|
360
|
+
logError('Failed to start server', error);
|
|
361
|
+
throw error;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Shutdown the server
|
|
366
|
+
*/
|
|
367
|
+
async shutdown() {
|
|
368
|
+
logInfo('Starting server shutdown...');
|
|
369
|
+
// Save state
|
|
370
|
+
await this.stateStore.save();
|
|
371
|
+
// Stop auto-save
|
|
372
|
+
this.stateStore.stopAutoSave();
|
|
373
|
+
// Clear cache
|
|
374
|
+
this.cacheManager.clear();
|
|
375
|
+
// Close all database connections
|
|
376
|
+
await dbManager.closeAll();
|
|
377
|
+
// Clear macro recorder
|
|
378
|
+
this.macroRecorder.clear();
|
|
379
|
+
// Disconnect from SolidWorks
|
|
380
|
+
if (this.api.isConnected()) {
|
|
381
|
+
await this.api.disconnect();
|
|
382
|
+
}
|
|
383
|
+
logInfo('Server shutdown complete');
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
// Main entry point
|
|
387
|
+
async function main() {
|
|
388
|
+
try {
|
|
389
|
+
const server = new SolidWorksMCPServer();
|
|
390
|
+
await server.start();
|
|
391
|
+
}
|
|
392
|
+
catch (error) {
|
|
393
|
+
logError('Fatal error', error);
|
|
394
|
+
process.exit(1);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
// Run if executed directly
|
|
398
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
399
|
+
main();
|
|
400
|
+
}
|
|
401
|
+
export { SolidWorksMCPServer };
|
|
402
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class SolidWorksKnowledgeBase {
|
|
2
|
+
private client;
|
|
3
|
+
private collection;
|
|
4
|
+
constructor();
|
|
5
|
+
initialize(): Promise<void>;
|
|
6
|
+
recordOperation(operation: {
|
|
7
|
+
tool: string;
|
|
8
|
+
input: any;
|
|
9
|
+
output: any;
|
|
10
|
+
success: boolean;
|
|
11
|
+
timestamp: Date;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
findSimilarOperations(query: string, limit?: number): Promise<any[]>;
|
|
14
|
+
getSuccessRate(tool: string): Promise<number>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=chromadb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromadb.d.ts","sourceRoot":"","sources":["../../src/knowledge/chromadb.ts"],"names":[],"mappings":"AAIA,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAM;;IAQlB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,eAAe,CAAC,SAAS,EAAE;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,GAAG,CAAC;QACX,MAAM,EAAE,GAAG,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBX,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAoBvE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmBpD"}
|