Files
Atomizer/mcp_server/tools/__init__.py
Claude 96ed53e3d7 feat: Implement Option A - MCP Model Discovery tool
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
2025-11-15 13:23:05 +00:00

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",
]