
FEA (finite element analysis)
io.github.TheRoboMaster123Published by GitHub account TheRoboMaster123v1.0.0Updated Oct 25, 2026
Real FEA on CAD parts: validated setups, stress, safety factor, natural frequencies
Overview
Remote MCP server that runs real finite element analysis on STEP CAD parts, returning stress, safety factor, deflection and natural frequencies.
- What you can do
- Inspect a STEP part and get its face table, bounding box and volume so loads and constraints can be mapped to face ids, and list the built-in material library with elastic properties and yield strengths. Submit a linear static study that validates, meshes and solves the part, returning peak von Mises stress, factor of safety, deflection, stress plots and a 3D viewer payload. Submit a modal study for natural frequencies and mode shapes with exaggerated-deformation images. Retrieve the full report of a completed task, including optional surface-mesh data.
- When to use it
- Useful when you want a quick engineering sanity check on a single solid CAD part from a conversation, such as whether a bracket survives a given load or what its first natural frequency is, without setting up a solver yourself.
- Requirements
- A remote streamable HTTP endpoint; no local install. A bearer token issued by the operator, sent in the Authorization header. STEP files must be under 25 MB and a single solid body. Network access to the hosted endpoint.
Installation
In SourceWeft
- Open FEA (finite element analysis) in the dashboard and add it to a workspace.
- Connect Authorization token credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.TheRoboMaster123%2Fmcp-fea/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"fea-finite-element-analysis": {
"type": "http",
"url": "https://therobomaster123--mcp-fea-mcp-endpoint.modal.run/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}README
mcp-fea
[ci] [validation] [license] [MCP]
Real finite element analysis from a conversation. An AI assistant sends a STEP file and a plain-English question ("does this arm survive a 6 g maneuver with a 400 g motor?"); this MCP server maps the words onto geometry, rejects bad setups deterministically before any compute is spent, meshes and solves with CalculiX on Modal as an async MCP task, and returns a verdict backed by numbers — peak von Mises stress, factor of safety, deflection, natural frequencies — plus rendered stress plots and an interactive 3D viewer. Every study ends with a non-skippable reaction-balance check; every benchmark on the validation page is regenerated by CI on every commit.
Measured on the live deployment (2026-07-31): cold start 3.8 s · cantilever study submit→completed 9.3 s warm / 12.9 s with a cold solver container · ~$0.002 per study at Modal's posted rates.
Full table, mesh stats, and an explicit limitations section: docs/validation.md — regenerated by CI, never hand-edited.
Protocol: MCP 2026-07-28 (stateless core) with the
io.modelcontextprotocol/tasks extension implemented per SEP-2663 (the
official Python SDK v2 shipped without it — this repo also contains the
client-side extension that teaches the official
SDK to consume task-augmented servers) and an MCP Apps (SEP-1865) 3D
viewer. See docs/decisions.md for every engineering
call and why.
Deploy (3 commands)
Modal prints the endpoint URL (https://<workspace>--mcp-fea-mcp-endpoint.modal.run).
Connect any 2026-07-28 MCP client with Authorization: Bearer <your token>.
First-time Modal users: uv run modal token new once. Then verify the live
deployment end to end:
Tools
Task lifecycle: working (statusMessage walks validating → meshing → solving → postprocessing) → completed | failed | cancelled;
tasks/cancel kills the running container. Tasks are retained 24 h.
Units policy
One conversion boundary, at ingest. Internally everything is consistent
mm–N–MPa(–tonne): lengths mm, forces N, stress/moduli MPa, density tonne/mm³
(kg/m³ × 1e-12 — done once, in Material.density_tonne_mm3), which makes
modal frequencies come out directly in Hz. STEP coordinates are interpreted
in the declared units (mm|m|in); gmsh's own unit conversion is disabled
so the declared unit is authoritative — and sanity-checked (a 100 mm part
declared "m" gets flagged).
Validation codes
Every rejection returns {code, message, suggested_fix}.
Abuse limits (all env-tunable)
25 MB STEP cap · 40 MB request cap (413) · per-token rate limit
(MCP_FEA_RATE_LIMIT/_WINDOW_S, 429) · concurrent-solve cap
(MCP_FEA_MAX_CONCURRENT) · daily budget (MCP_FEA_MAX_SPAWNS_PER_DAY) ·
kill switch (MCP_FEA_DISABLE_SPAWN=1). CAD parsing never runs in the
endpoint process (see SECURITY.md).
Local development
Repo map
src/pipeline/ geometry, meshing, deck, solver, validation, post, render ·
src/materials/ library · src/server/ protocol, tools, tasks, limits,
worker host, Modal app, Apps UI · src/client/ SDK tasks extension ·
tests/ (incl. torture/) · demo/ · docs/ decisions, validation, upstream notes. License: Apache-2.0.
Source: README.md at commit f11fe6a
Tools
0Version history
1- v1.0.0LatestSep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts