@pipeworx/uiuc-airfoils
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/uiuc-airfoils’s. Install: one-click buttons
Connect to just the @pipeworx/uiuc-airfoils pack
https://gateway.pipeworx.io/uiuc-airfoils/mcp — only @pipeworx/uiuc-airfoils’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 2
Airfoil shape coordinates for roughly 1,600 airfoils (NACA, Eppler, Selig, Wortmann, Goettingen, Drela AG, Clark Y, Wright Brothers and many designer-named one-offs), searchable by name or family, with max thickness/camber computed live from the raw coordinates.
Tools
uiuc_airfoil_search(query?, family?, limit?)— search by name, keyword, or exact family (e.g."naca","eppler","goe","2412",family: "Wortmann"). With no filters, returns the total catalog size and the known family list. Always returns the total match count first; a no-match response names the filters tried.uiuc_airfoil_geometry(name, include_coordinates?)— fetches one airfoil’s coordinate file live and returns its point count, coordinate format, max thickness and max camber (each as a fraction of chord, with the chordwise station they occur at), and the method used to compute them. Passinclude_coordinates: trueto also get the raw upper/lower surface point arrays.
Auth
Keyless.
Data sources
- University of Illinois Urbana-Champaign, Applied Aerodynamics Group,
UIUC Airfoil Coordinates Database — airfoil shape coordinates and their
one-line descriptions. Never a route or filename here — see
src/index.tsandscripts/bake-index.mjsfor the routes, which stay out of published copy per CLAUDE.md step 9b.
Licence — checked before building, flagged rather than assumed
Before writing a line of code, I checked the database’s listing page, its
parent page, and the site’s robots.txt (a 404 — no restriction stated
there either) for a stated licence or redistribution policy. There is none.
The only copyright-adjacent text anywhere on the site is a generic,
site-wide footer (”© 1994 - 2026 UIUC Applied Aerodynamics Group”) with no
accompanying grant or prohibition for the coordinate data itself.
Per the standing rule (proxying a public, keyless upstream per request needs no explicit grant; baking a dataset is redistribution and needs one; when terms are silent, build and flag rather than hold):
- The actual coordinate values are never baked.
uiuc_airfoil_geometryfetches each airfoil’s.datfile live, per call, every time — a straight per-request proxy of one file. uiuc_airfoil_searchdoes read a small baked table of names, one-line descriptions and a coarse family classification (src/uiuc-index-data.ts, ~1,587 rows, regenerated byscripts/bake-index.mjs) — never the coordinates. This is the part resting on the “silent terms, build and flag” branch of the rule rather than an explicit grant.- Flag for whoever reviews this next: if UIUC ever publishes an explicit redistribution term for the coordinate data, re-check whether even this name/description/family index still fits it.
Coordinate formats and the thickness/camber method
UIUC’s .dat files come in two layouts, both handled by the parser in
src/index.ts:
- Selig format — one continuous point loop: starts at the trailing edge on the upper surface, runs forward to the leading edge, then back along the lower surface to the trailing edge. No header counts; the parser splits the loop at its minimum-x point (the leading edge).
- Lednicer format — a header line giving
(upperCount, lowerCount), then the upper surface from leading edge to trailing edge, a blank line, then the lower surface from leading edge to trailing edge.
Format is detected per file (a Lednicer header is two small integer-looking
values on the first data line; anything else is treated as Selig). Once
split into upper(x) and lower(x) surfaces, both are linearly interpolated
onto a shared 101-station cosine-spaced grid over chord (x in 0..1 —
UIUC’s coordinates are already chord-normalized). From that grid:
thickness(x) = upper(x) - lower(x)camber(x) = (upper(x) + lower(x)) / 2
Max thickness and max (signed) camber are the largest values over that
grid, reported as a fraction of chord along with the x station they occur
at — the same convention NACA’s own 4-digit naming encodes. Verified against
NACA 2412 itself: the tool returns 12.0% max thickness at 30% chord and 2.0%
max camber at ~40% chord, which is exactly what “2-4-12” means (2% camber at
40% chord, 12% thickness) and exactly where the NACA 4-digit series places
max thickness (30% chord) by construction — a strong correctness check,
not a coincidence.
Known gaps
- Family classification is a coarse heuristic over filenames/descriptions
(keyword rules in
scripts/bake-index.mjs), not an authoritative taxonomy UIUC itself publishes — airfoils that don’t match a known designer/series keyword land in"Other"(currently ~1/3 of the catalog), which is expected, not a bug. - A handful of
.datfiles on the site use nonstandard spacing or trailing annotations the parser can’t make sense of;uiuc_airfoil_geometrythen returnsgeometry_errorwith the raw parse failure rather than a fabricated number. - The baked name index refreshes only when
scripts/bake-index.mjsis re-run by hand (UIUC adds a handful of airfoils every year or two via its own “Update Directory” section) — there is no automatic refresh path yet.
Tools
- uiuc_airfoil_search — Search the UIUC Airfoil Coordinates Database (University of Illinois Urbana-Champaign, Applied Aerodynamics Group) by name or family — e.g. “naca”, “eppler”, “selig”, “goettingen”, “wortmann\
- uiuc_airfoil_geometry — Fetch one airfoil’s coordinate file live from the UIUC Airfoil Coordinates Database (University of Illinois Urbana-Champaign, Applied Aerodynamics Group) and compute its geometry: point count, max thi
Tools
uiuc_airfoil_geometry— Fetch one airfoil's coordinate file live from the UIUC Airfoil Coordinates Database (University of Illinois Urbana-Champaign, Applied Aerodynamics Group) and compute its geometry: point count, max thiuiuc_airfoil_search— Search the UIUC Airfoil Coordinates Database (University of Illinois Urbana-Champaign, Applied Aerodynamics Group) by name or family — e.g. naca , eppler , selig , goettingen , wortmann , drela ag , c