MCP-Pynite

admindev-buildwellai/MCP-Pynite

3.2

If you are the rightful owner of MCP-Pynite and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Pynite MCP Server is a Model Context Protocol server designed to expose the capabilities of the Pynite finite element analysis library for use by AI assistants like Claude.

Tools
5
Resources
0
Prompts
0

Pynite MCP Server

Model Context Protocol (MCP) server for Pynite finite element analysis library. This server exposes Pynite's structural engineering capabilities as tools and resources that can be used by AI assistants like Claude.

Features

  • Model Management: Create, manage, and switch between multiple FE models
  • Element Creation: Add nodes, materials, sections, and structural elements
  • Analysis Tools: Execute structural analysis and extract results
  • Visualization: Generate plots and diagrams with base64 image responses
  • State Management: Proper isolation between requests with metadata tracking

Installation

From Source

git clone https://github.com/buildwellai/MCP-Pynite.git
cd MCP-Pynite
pip install -e .

Prerequisites

  • Python 3.10 or higher
  • PyniteFEA library
  • PyVista for visualization (with VTK backend)

Quick Start

1. Start the MCP Server

# Using SSE transport (HTTP)
python -m pynite_mcp.main

# Using stdio transport (pipe)
TRANSPORT=stdio python -m pynite_mcp.main

2. Connect from Claude Desktop

Add to your MCP configuration:

{
  "mcpServers": {
    "pynite": {
      "command": "python",
      "args": ["-m", "pynite_mcp.main"],
      "transport": "sse",
      "url": "http://localhost:8053"
    }
  }
}

3. Basic Usage Example

Through Claude or another MCP client:

1. Create a new model: create_model("simple_beam")
2. Add material: add_material_tool("steel", E=200e9, G=80e9, nu=0.3, rho=7850)
3. Add nodes: add_node_tool("N1", 0, 0, 0)
4. Add sections and members...
5. Analyze and visualize results

Available Tools

Model Management

  • create_model(name, force=False) - Create new FE model
  • list_models() - List all models with metadata
  • set_current_model(name) - Switch active model
  • get_model_info(model_name=None) - Get detailed model info
  • delete_model(name) - Remove model and free resources

Element Creation

  • add_node_tool(name, X, Y, Z) - Add structural node
  • add_material_tool(name, E, G, nu, rho, fy=None) - Add material
  • add_section_tool(name, material, type, ...) - Add cross-section

Information Retrieval

  • list_nodes_tool(model_name=None) - List all nodes
  • list_materials_tool(model_name=None) - List all materials

Configuration

Environment variables:

HOST=0.0.0.0          # Server host
PORT=8053             # Server port  
TRANSPORT=sse         # Transport type (sse or stdio)
DEBUG=true            # Enable debug logging

Architecture

  • Context Management: Enhanced PyniteContext handles model isolation and metadata
  • Tool Registration: FastMCP decorators expose async functions as MCP tools
  • Error Handling: Comprehensive validation and error reporting
  • Resource Cleanup: Automatic cleanup on session end

Development

Running Tests

pip install -e .[dev]
pytest tests/

Code Quality

black pynite_mcp/
flake8 pynite_mcp/
mypy pynite_mcp/

Examples

See the examples/ directory for complete structural analysis workflows using the MCP server.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Submit a pull request

License

MIT License - see LICENSE file for details.

Links