get_current_view_info.ts•1.51 kB
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { withRevitConnection } from '../utils/ConnectionManager.js';
export function registerGetCurrentViewInfoTool(server: McpServer) {
console.error('[DEBUG] Registering get_current_view_info tool');
server.tool('get_current_view_info', '获取 Revit 当前活动视图的详细信息,包括视图类型、名称、比例等属性。', {}, async (args, extra) => {
console.error('[DEBUG] Tool get_current_view_info called with args:', args);
try {
console.error('[DEBUG] Establishing connection to Revit');
const response = await withRevitConnection(async (revitClient) => {
console.error('[DEBUG] Sending get_current_view_info command to Revit');
return await revitClient.sendCommand('get_current_view_info', {});
});
console.error('[DEBUG] Received response from Revit:', JSON.stringify(response).substring(0, 200) + '...');
return {
content: [
{
type: 'text',
text: JSON.stringify(response, null, 2),
},
],
};
} catch (error) {
console.error('[DEBUG] Error in get_current_view_info:', error);
return {
content: [
{
type: 'text',
text: `get current view info failed: ${error instanceof Error ? error.message : String(error)}`,
},
],
};
}
});
console.error('[DEBUG] get_current_view_info tool registered successfully');
}