Roman numeral convert
roman-numeral-convert · version 1.0.0 · Numbers & math · free, no key needed
Convert integers 1–3999 to canonical Roman numerals and strictly parse canonical numerals back to integers.
Use when you need to: convert integer to canonical roman numeral · strictly parse a roman numeral · roman numeral conversion both directions.
Decide before calling
Read the versioned contract and the supported scope below. Reuse roman-numeral-convert@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.
Explain the choice
"I can use roman-numeral-convert@1.0.0 for convert integer to canonical roman numeral. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."
Supported
- convert integer to canonical roman numeral
- strictly parse a roman numeral
- roman numeral conversion both directions
- format a number using roman numerals
- decode canonical subtractive roman notation
- validate and convert roman numeral text
- turn a roman numeral into an integer
Not supported
- historical additive or non-canonical notation
- numbers below 1 or above 3999
- Unicode Roman numeral code points
- fractions or vinculum notation
Behavior
- operation format requires value and forbids numeral; operation parse requires numeral and forbids value.
- Formatting uses the unique conventional modern form and only the subtractive pairs IV, IX, XL, XC, CD, and CM.
- Parsing accepts only uppercase ASCII canonical standard form; no whitespace trimming, case folding, or Unicode numeral normalization occurs.
- Both operations return the exact canonical pair {value, numeral}; no approximation, rounding, or tie-breaking occurs.
- At most 15 UTF-8 numeral bytes are accepted, and values are bounded to integers from 1 through 3999.
Input
operation(one of "format", "parse", required)value(integer, optional): min 1; max 3999numeral(string, optional): min length 1; max length 15; pattern^[IVXLCDM]+$
Output
value(integer, required): min 1; max 3999numeral(string, required): min length 1; max length 15; pattern^[IVXLCDM]+$
Limits
- max numeral bytes: 15
- max value: 3999
Example
Request input:
{
"operation": "format",
"value": 1994
}
Response:
{
"result": {
"value": 1994,
"numeral": "MCMXCIV"
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "roman-numeral-convert",
"version": "1.0.0",
"input": {
"operation": "format",
"value": 1994
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/roman-numeral-convert/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"operation":"format","value":1994}'
The machine-readable contract is at /v1/tools/roman-numeral-convert/versions/1.0.0.
CLI
node cli.mjs run roman-numeral-convert 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Number engineering format: Format an exact decimal in scientific or engineering notation with explicit precision and rounding.
- Rational power: Raise a rational number to an integer exponent and return the exact reduced result.
- Array integer clamp: Clamp an array of canonical integer strings to optional inclusive min and max bounds.
- Array integer GCD: Compute the non-negative greatest common divisor of an array of canonical integer strings.
- Array integer LCM: Compute the non-negative least common multiple of an array of canonical integer strings.
- Integer divisors: List every positive divisor of a positive integer, ascending.