convert_units
Convert angle measurements between degrees and radians for mathematical calculations and trigonometric functions.
Instructions
Convert between angle units: degrees ↔ radians.
Examples:
DEGREES TO RADIANS: value=180, from_unit="degrees", to_unit="radians" Result: 3.14159... (π)
RADIANS TO DEGREES: value=3.14159, from_unit="radians", to_unit="degrees" Result: 180
RIGHT ANGLE: value=90, from_unit="degrees", to_unit="radians" Result: 1.5708... (π/2)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional annotation to label this calculation (e.g., 'Bond A PV', 'Q2 revenue'). Appears in results for easy identification. | |
| output_mode | No | Output format: full (default), compact, minimal, value, or final. See batch_execute tool for details. | full |
| value | Yes | Value to convert (e.g., 180, 3.14159) | |
| from_unit | Yes | Source unit | |
| to_unit | Yes | Target unit |
Implementation Reference
- src/vibe_math_mcp/tools/basic.py:215-259 (handler)The core @mcp.tool handler implementing convert_units logic: converts angles between degrees and radians using Python's math module functions.@mcp.tool( name="convert_units", description="""Convert between angle units: degrees ↔ radians. Examples: DEGREES TO RADIANS: value=180, from_unit="degrees", to_unit="radians" Result: 3.14159... (π) RADIANS TO DEGREES: value=3.14159, from_unit="radians", to_unit="degrees" Result: 180 RIGHT ANGLE: value=90, from_unit="degrees", to_unit="radians" Result: 1.5708... (π/2)""", annotations=ToolAnnotations( title="Unit Converter", readOnlyHint=True, idempotentHint=True, ), ) async def convert_units( value: Annotated[float, Field(description="Value to convert (e.g., 180, 3.14159)")], from_unit: Annotated[Literal["degrees", "radians"], Field(description="Source unit")], to_unit: Annotated[Literal["degrees", "radians"], Field(description="Target unit")], ) -> str: """Convert between angle units.""" try: if from_unit == to_unit: result = value elif from_unit == "degrees" and to_unit == "radians": result = math.radians(value) elif from_unit == "radians" and to_unit == "degrees": result = math.degrees(value) else: raise ValueError(f"Unsupported conversion: {from_unit} to {to_unit}") return format_result( result, {"from_unit": from_unit, "to_unit": to_unit, "original_value": value} ) except Exception as e: raise ValueError(f"Unit conversion failed: {str(e)}")
- Input schema using Pydantic Annotated types: value (float), from_unit/to_unit (Literal degrees/radians). Output is formatted str.value: Annotated[float, Field(description="Value to convert (e.g., 180, 3.14159)")], from_unit: Annotated[Literal["degrees", "radians"], Field(description="Source unit")], to_unit: Annotated[Literal["degrees", "radians"], Field(description="Target unit")], ) -> str:
- src/vibe_math_mcp/server.py:693-693 (registration)Import of basic.py module registers the convert_units tool via its @mcp.tool decorator on the mcp instance.from .tools import array, basic, batch, calculus, financial, linalg, statistics # noqa: E402
- Categorizes 'convert_units' as a Basic tool for batch_execute tool registry and documentation.TOOL_CATEGORIES = { "Basic": ["calculate", "percentage", "round", "convert_units"], "Arrays": ["array_operations", "array_statistics", "array_aggregate", "array_transform"], "Statistics": ["statistics", "pivot_table", "correlation"], "Financial": ["financial_calcs", "compound_interest", "perpetuity"], "Linear Algebra": ["matrix_operations", "solve_linear_system", "matrix_decomposition"], "Calculus": ["derivative", "integral", "limits_series"], }
- src/vibe_math_mcp/server.py:543-543 (helper)Documentation example of convert_units in the available_tools resource.convert_units: degrees ↔ radians | convert_units(value=180, from_unit="degrees", to_unit="radians") → π