This commit implements the first phase of the MCP server as outlined in PROJECT_SUMMARY.md Option A: Model Discovery. New Features: - Complete .sim file parser (XML-based) - Expression extraction from .sim and .prt files - Solution, FEM, materials, loads, constraints extraction - Structured JSON output for LLM consumption - Markdown formatting for human-readable output Implementation Details: - mcp_server/tools/model_discovery.py: Core parser and discovery logic - SimFileParser class: Handles XML parsing of .sim files - discover_fea_model(): Main MCP tool function - format_discovery_result_for_llm(): Markdown formatter - mcp_server/tools/__init__.py: Updated to export new functions - mcp_server/tools/README.md: Complete documentation for MCP tools Testing & Examples: - examples/test_bracket.sim: Sample .sim file for testing - tests/mcp_server/tools/test_model_discovery.py: Comprehensive unit tests - Manual testing verified: Successfully extracts 4 expressions, solution info, mesh data, materials, loads, and constraints Validation: - Command-line tool works: python mcp_server/tools/model_discovery.py examples/test_bracket.sim - Output includes both Markdown and JSON formats - Error handling for missing files and invalid formats Next Steps (Phase 2): - Port optimization engine from P04 Atomizer - Implement build_optimization_config tool - Create pluggable result extractor system References: - PROJECT_SUMMARY.md: Option A (lines 339-350) - mcp_server/prompts/system_prompt.md: Model Discovery workflow
26 lines
772 B
Python
26 lines
772 B
Python
"""
|
|
MCP Tools for Atomizer
|
|
|
|
Available tools:
|
|
- discover_fea_model: Analyze .sim files to extract configurable elements
|
|
- build_optimization_config: Generate optimization config from LLM instructions
|
|
- start_optimization: Launch optimization run
|
|
- query_optimization_status: Get current iteration status
|
|
- extract_results: Parse FEA result files
|
|
- run_nx_journal: Execute NXOpen scripts
|
|
- search_nxopen_docs: Search NXOpen API documentation
|
|
"""
|
|
|
|
from typing import Dict, Any
|
|
from .model_discovery import discover_fea_model, format_discovery_result_for_llm
|
|
|
|
__all__ = [
|
|
"discover_fea_model",
|
|
"format_discovery_result_for_llm",
|
|
"build_optimization_config",
|
|
"start_optimization",
|
|
"query_optimization_status",
|
|
"extract_results",
|
|
"run_nx_journal",
|
|
]
|