Skip to main content
Glama

Revit MCP Server

by ideook
ConnectionManager.ts2.16 kB
import { RevitClientConnection } from './SocketClient.js'; /** * 连接到Revit客户端并执行操作 * @param operation 连接成功后要执行的操作函数 * @returns 操作的结果 */ export async function withRevitConnection<T>(operation: (client: RevitClientConnection) => Promise<T>): Promise<T> { console.error('[DEBUG] Creating new RevitClientConnection to localhost:8080'); const revitClient = new RevitClientConnection('localhost', 8080); try { // 连接到Revit客户端 if (!revitClient.isConnected) { console.error('[DEBUG] Connecting to Revit client...'); await new Promise<void>((resolve, reject) => { const onConnect = () => { console.error('[DEBUG] Connection successful to Revit client'); revitClient.socket.removeListener('connect', onConnect); revitClient.socket.removeListener('error', onError); resolve(); }; const onError = (error: any) => { console.error('[DEBUG] Connection error to Revit client:', error); revitClient.socket.removeListener('connect', onConnect); revitClient.socket.removeListener('error', onError); reject(new Error('connect to revit client failed')); }; revitClient.socket.on('connect', onConnect); revitClient.socket.on('error', onError); revitClient.connect(); setTimeout(() => { console.error('[DEBUG] Connection timeout to Revit client'); revitClient.socket.removeListener('connect', onConnect); revitClient.socket.removeListener('error', onError); reject(new Error('连接到Revit客户端失败')); }, 5000); }); } // 执行操作 console.error('[DEBUG] Executing operation on Revit client'); const result = await operation(revitClient); console.error('[DEBUG] Operation completed successfully'); return result; } catch (error) { console.error('[DEBUG] Error during Revit operation:', error); throw error; } finally { // 断开连接 console.error('[DEBUG] Disconnecting from Revit client'); revitClient.disconnect(); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ideook/revit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server