# Euclid

AI models do not calculate. They predict the most probable next token. When the token is a number, it is often close, and sometimes wrong. The error compounds downstream.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add euclid/tools

# Browse available tools
npx -y @smithery/cli@latest tool list euclid/tools

# Get full schema for a tool
npx -y @smithery/cli@latest tool get euclid/tools calculate

# Call a tool
npx -y @smithery/cli@latest tool call euclid/tools calculate '{}'
```

## Direct MCP Connection

Endpoint: `https://euclid.run.tools`

## Tools (10)

- `calculate` — Deterministic calculator for mathematical expressions. Arithmetic, percentages, exponents, roots, trigonometry, logarit…
- `convert` — Converts between units of measurement. Supports length, weight, volume, temperature, area, speed, time, data (bytes/bit…
- `statistics` — Descriptive and inferential statistics. Mean, median, mode, std dev, variance, percentile, z-test, t-test, chi-squared,…
- `datetime` — Calendar and date arithmetic. Date differences, add/subtract time, age, business days, day of week, quarter, leap year,…
- `encode` — Encoding, decoding, hashing, and JWT inspection. Base64, hex, URL, HTML encoding/decoding. SHA-256/512, SHA-1, MD5 hash…
- `finance` — Financial calculations with arbitrary-precision decimal arithmetic. Loan payments, amortization, present/future value, …
- `geo` — Geospatial calculations. Distance (Haversine/Vincenty), bearing, midpoint, destination point, bounding boxes, polygon a…
- `color` — Color space conversions, WCAG accessibility checks, color manipulation, and palette generation. Supports hex, RGB, HSL,…
- `regex` — Safe regex execution via RE2. Test, match, matchAll, replace, split, and escape operations. Linear-time guarantees, no …
- `validate` — Format validation for structured identifiers. Email (RFC 5322), URL (WHATWG), UUID (RFC 9562), credit card (Luhn), IPv4…

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get euclid/tools <tool-name>
```
