Unit converter powered by the GNU units database — convert between 3000+ units of measurement, evaluate compound unit expressions, reduce quantities to SI base units, run dimensional analysis, and look up unit definitions. Offline and deterministic.
Project description
mcp-gnu-units
mcp-gnu-units is an MCP server that gives AI agents precise, offline unit
conversion backed by the GNU units database. Convert between 3000+ units of
measurement — length, mass, time, temperature, area, volume, energy, power,
pressure, speed, data and more — evaluate compound unit expressions like kW*h
or acre*ft, reduce any quantity to its SI base units, search the unit database
by keyword, and look up the exact definition of any unit, prefix, or physical
constant. Deterministic, dimension-aware, and free of the hardcoded per-category
unit tables every other converter ships.
Status: feature-complete, pre-release. All five domain tools ship —
find_units,convert,convert_to_si,define_unit, andlist_prefixes— alongside theinfohealth check. Not yet published to PyPI; the remaining publish steps are tracked inTODO.
Distribution name: mcp-gnu-units · import package: mcp_gnu_units.
Built on GNU units
This project stands on the shoulders of GNU units, the units-conversion program written and maintained by Adrian Mariano for the Free Software Foundation. Its database is the product of decades of careful curation — thousands of units, physical constants drawn from CODATA and NIST, and the conversion semantics that make dimensional analysis trustworthy. This server would not exist without it.
mcp-gnu-units bundles that database verbatim (see
Bundled data & provenance below) and pairs it with
an independent, pure-Python conversion engine, so every number it returns traces
straight back to GNU units' own definitions. It is offered in the same spirit
and under the same license (GPL-3.0-or-later). If you find this useful, the
original earns the credit first: https://www.gnu.org/software/units/.
Bundled data & provenance
This server stands on GNU units, Adrian
Mariano's units-conversion program, by bundling its unit database verbatim at
src/mcp_gnu_units/data/definitions.units. The conversion engine here is an
independent implementation; GNU units supplies the data.
- Source: GNU units 2.27 (tarball),
definitions.unitsdata version 3.26 (2026-02-25). - License: GPL-3.0-or-later © Free Software Foundation — the same license as this project, so the two are wholly compatible.
- Integrity: the upstream tarball was GPG-verified (good signature from Adrian Mariano) before the file was vendored.
Full attribution, version pins, and checksums are recorded in
NOTICE.
Sponsoring
mcp-gnu-units is free, open-source software developed in my spare time. Sponsoring keeps this project alive and actively maintained — it funds new units-engine features, bug fixes, and ongoing support, and it's a direct signal that the work is worth continuing.
If the project is useful to you, please consider sponsoring it through GitHub Sponsors. Click the Sponsor button at the top of the repository, or visit the link directly, and pick a one-time or recurring tier. Every contribution, large or small, is hugely appreciated and goes straight back into keeping mcp-gnu-units healthy.
License
GPL-3.0-or-later. See LICENSE. The bundled GNU units database is
also GPL-3.0-or-later © Free Software Foundation; see NOTICE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_gnu_units-0.1.0.tar.gz.
File metadata
- Download URL: mcp_gnu_units-0.1.0.tar.gz
- Upload date:
- Size: 176.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21cbe93991ddb7f09471e8e454d0b2506e2b7e34ea0067d5713d90b99fa4c3c9
|
|
| MD5 |
a3fafebd04255e878ba2ee138f34eed3
|
|
| BLAKE2b-256 |
09b69bad69dc5513335ba23e1d30128fc374741e50e418375da80da6ab738082
|
Provenance
The following attestation bundles were made for mcp_gnu_units-0.1.0.tar.gz:
Publisher:
release.yml on laszlopere/mcp-gnu-units
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_gnu_units-0.1.0.tar.gz -
Subject digest:
21cbe93991ddb7f09471e8e454d0b2506e2b7e34ea0067d5713d90b99fa4c3c9 - Sigstore transparency entry: 2055921224
- Sigstore integration time:
-
Permalink:
laszlopere/mcp-gnu-units@b8ed26f4c252f63be9304ec46f6e02fd5c464895 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/laszlopere
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b8ed26f4c252f63be9304ec46f6e02fd5c464895 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mcp_gnu_units-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_gnu_units-0.1.0-py3-none-any.whl
- Upload date:
- Size: 179.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46bcb47c9631639c1db5ddcc6f36060194ed184d38626a4da0c47afa25273d8b
|
|
| MD5 |
9d26fd4d4aa18857c6f9275a24e13dfb
|
|
| BLAKE2b-256 |
6691221b7b7cdf9e4af4d877524fb1ed21d9782abc9da779cbaa0a22a7d7cf79
|
Provenance
The following attestation bundles were made for mcp_gnu_units-0.1.0-py3-none-any.whl:
Publisher:
release.yml on laszlopere/mcp-gnu-units
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_gnu_units-0.1.0-py3-none-any.whl -
Subject digest:
46bcb47c9631639c1db5ddcc6f36060194ed184d38626a4da0c47afa25273d8b - Sigstore transparency entry: 2055921323
- Sigstore integration time:
-
Permalink:
laszlopere/mcp-gnu-units@b8ed26f4c252f63be9304ec46f6e02fd5c464895 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/laszlopere
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b8ed26f4c252f63be9304ec46f6e02fd5c464895 -
Trigger Event:
push
-
Statement type: