The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the TinyFn listing page.
🧮 Give your AI agent 500+ deterministic tools
Stop hallucinating math. Start getting correct answers.
Quick Start • Servers • Examples • Pricing • Docs • Support
| 🎉 Free Tier Available! 100 requests/month FREE — no credit card required Get your free API key → |
LLMs are great at reasoning. They're terrible at math.
Ask any AI assistant to compute 17% of 4,847 and you'll get a confident, wrong answer. Ask it to validate an email with regex, generate a SHA-256 hash, or convert timezones — same story. LLMs hallucinate on deterministic tasks.
TinyFn is a Model Context Protocol (MCP) server that gives your AI assistant 500+ tools that always return the correct answer. Math, conversions, validations, hashing, date arithmetic — the boring stuff, done right.
| 🧮 500+ Tools Math, strings, dates, and much more | 🎯 Zero Hallucinations Deterministic results every single time | ⚡ No Installation Remote MCP server zero setup | 🔌 Works Everywhere Claude, Cursor, Windsurf, any MCP client |
TinyFn runs as a remote MCP server — no npx, no Docker, no local install. Just add the URL to your config.
| Platform | Tool Limit | Recommended Setup | Config Location |
|---|---|---|---|
| Claude Code | 500+ (Tool Search) | /mcp/all/ — use everything | ~/.claude/settings.json |
| Claude Desktop | ~100 tools | 2–3 category servers | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | ~40 tools | 1–2 focused servers | Cursor MCP settings |
| Windsurf | ~40 tools | 1–2 focused servers | Windsurf MCP settings |
| Continue.dev | Varies | Category servers | .continue/config.json |
| Any MCP Client | Varies | Match to your tool limit | Client-specific |
💡 Why category servers? Most AI clients limit the number of tools. TinyFn splits 500+ tools across 12 focused servers so you can pick exactly what you need.
Once connected, just ask your AI assistant in plain language:
Math & Numbers
Conversions
Validation
Encoding & Hashing
Date & Time
Generators
1. Get your free API key at tinyfn.io (takes 10 seconds)
2. Add TinyFn to your MCP client:
Claude Code supports Tool Search, so you can use the full server with all 500+ tools:
Add this to ~/.claude/settings.json or use claude mcp add.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Tip: Claude Desktop supports ~100 tools. Add 2–3 category servers based on your workflow.
These platforms have a ~40 tool limit. Pick 1–2 focused servers:
Recommended for Cursor/Windsurf: validate (15 tools), hash (18 tools), encode (20 tools), convert (42 tools).
3. Start asking questions. Your AI now has deterministic tools for math, conversions, validation, and more.
All servers use base URL https://api.tinyfn.io. Pick the categories you need:
| Server | Endpoint | Tools | What It Does |
|---|---|---|---|
| All | /mcp/all/ | 500+ | Everything — best for Claude Code |
| Math | /mcp/math/ | 52 | Arithmetic, trig, primes, factorials, comparisons |
| Convert | /mcp/convert/ | 42 | Temperature, length, weight, volume, speed, data sizes |
| String | /mcp/string/ | 33 | Case conversion, slugify, trim, word count, extraction |
| Datetime | /mcp/datetime/ | 24 | Date parsing, formatting, diffs, timezones, leap years |
| Encode | /mcp/encode/ | 20 | Base64, URL, HTML, hex, ROT13, morse, JWT decode |
| Hash | /mcp/hash/ | 18 | MD5, SHA-256, SHA-512, HMAC, bcrypt, CRC32 |
| Color | /mcp/color/ | 30 | HEX/RGB/HSL conversion, gradients, contrast, palettes |
| Stats | /mcp/stats/ | 16 | Mean, median, mode, std dev, percentiles, correlation |
| Validate | /mcp/validate/ | 15 | Email, URL, phone, credit card, UUID, IP, JSON, dates |
| Finance | /mcp/finance/ | 15 | Interest, loans, mortgage, ROI, margin, tip calculator |
| Generate | /mcp/generate/ | 15 | UUIDs, passwords, random numbers, lorem ipsum, dice |
⚠️ Important: All URLs must end with a trailing
/or requests will return 404 errors.
| Tool | Description | Example |
|---|---|---|
add, subtract, multiply, divide | Basic arithmetic | add(17, 25) → 42 |
percentage | Percentage calculation | percentage(17, 4847) → 823.99 |
is_prime | Primality testing | is_prime(7919) → true |
factorial | Factorial calculation | factorial(12) → 479001600 |
fibonacci | Nth Fibonacci number | fibonacci(10) → 55 |
gcd, lcm | GCD and LCM | gcd(48, 18) → 6 |
power, square_root | Exponentiation | square_root(144) → 12 |
sin, cos, tan | Trigonometric functions | sin(1.5708) → 1.0 |
log, log10, log2 | Logarithms | log10(1000) → 3 |
floor, ceil, round_number | Rounding | ceil(4.2) → 5 |
absolute_value, sign | Number properties | sign(-42) → -1 |
clamp, distance, hypotenuse | Range & geometry | hypotenuse(3, 4) → 5 |
| Tool | Description | Example |
|---|---|---|
reverse_string | Reverse text | reverse_string("hello") → "olleh" |
uppercase, lowercase | Case conversion | uppercase("hello") → "HELLO" |
camel_case, snake_case, kebab_case | Naming conventions | snake_case("helloWorld") → "hello_world" |
slug | URL-safe slugs | slug("Hello World!") → "hello-world" |
trim, pad | Whitespace handling | trim(" hi ") → "hi" |
word_count, string_length | Text metrics | word_count("hello world") → 2 |
contains, starts_with, ends_with | String matching | contains("hello", "ell") → true |
split, join | Array operations | split("a,b,c", ",") → ["a","b","c"] |
extract_emails, extract_urls | Content extraction | Extract emails from text blocks |
is_palindrome | Palindrome check | is_palindrome("racecar") → true |
count_char, count_substring | Character counting | count_char("hello", "l") → 2 |
| Tool | Description | Example |
|---|---|---|
validate_email | Email format validation | validate_email("user@example.com") → true |
validate_url | URL format validation | validate_url("https://tinyfn.io") → true |
validate_phone | Phone number validation | validate_phone("+1-555-123-4567") → true |
validate_credit_card | Luhn algorithm check | validate_credit_card("4111111111111111") → true |
validate_uuid | UUID format validation | validate_uuid("550e8400-e29b-41d4-a716-446655440000") → true |
validate_ip | IPv4/IPv6 validation | validate_ip("192.168.1.1") → true |
validate_json | JSON syntax validation | validate_json('{"key": "value"}') → true |
validate_date | Date format validation | validate_date("2024-02-29") → true |
validate_hex | Hex string validation | validate_hex("1a2b3c") → true |
validate_base64 | Base64 validation | validate_base64("SGVsbG8=") → true |
| Tool | Description | Example |
|---|---|---|
celsius_to_fahrenheit | Temperature | celsius_to_fahrenheit(100) → 212 |
kilometers_to_miles | Distance | kilometers_to_miles(100) → 62.14 |
kilograms_to_pounds | Weight | kilograms_to_pounds(70) → 154.32 |
liters_to_gallons_us | Volume | liters_to_gallons_us(3.785) → 1.0 |
hex_to_rgb | Color | hex_to_rgb("#3B82F6") → {r:59, g:130, b:246} |
decimal_to_binary | Base conversion | decimal_to_binary(42) → "101010" |
bytes_to_human | File sizes | bytes_to_human(1073741824) → "1 GB" |
mph_to_kph | Speed | mph_to_kph(60) → 96.56 |
inches_to_centimeters | Length | inches_to_centimeters(12) → 30.48 |
hours_to_minutes | Time | hours_to_minutes(2.5) → 150 |
| Tool | Description | Example |
|---|---|---|
hash_md5 | MD5 hash | hash_md5("hello") → "5d41402abc4b..." |
hash_sha256 | SHA-256 hash | hash_sha256("hello") → "2cf24dba5fb0..." |
hash_sha512 | SHA-512 hash | Full 128-char hex digest |
hmac_sha256 | HMAC signature | Keyed hash authentication |
hash_sha3_256, hash_sha3_512 | SHA-3 family | Modern hash algorithms |
hash_blake2b, hash_blake2s | BLAKE2 | High-performance hashing |
hash_crc32 | CRC32 checksum | Error detection codes |
compare_hashes | Timing-safe compare | Constant-time hash comparison |
identify_hash | Hash identification | Detect hash algorithm from string |
| Tool | Description | Example |
|---|---|---|
base64_encode, base64_decode | Base64 | base64_encode("Hello") → "SGVsbG8=" |
url_encode, url_decode | URL encoding | url_encode("hello world") → "hello%20world" |
html_encode, html_decode | HTML entities | html_encode("<div>") → "<div>" |
hex_encode, hex_decode | Hex encoding | hex_encode("hi") → "6869" |
jwt_decode | JWT parsing | Decode JWT payload (no verification) |
rot13 | ROT13 cipher | rot13("hello") → "uryyb" |
morse_encode, morse_decode | Morse code | morse_encode("SOS") → "... --- ..." |
json_minify, json_prettify | JSON formatting | Minify or pretty-print JSON |
| Tool | Description | Example |
|---|---|---|
get_now | Current timestamp | ISO 8601 timestamp |
format_date, parse_date | Date formatting | Parse and format dates |
date_diff | Days between dates | date_diff("2024-01-15", "2024-03-22") → 67 days |
add_time, subtract_time | Date arithmetic | Add/subtract days, hours, minutes |
convert_timezone | Timezone conversion | Convert between any IANA timezones |
is_leap_year | Leap year check | is_leap_year(2024) → true |
calculate_age | Age from birthdate | Calculate exact age |
relative_time | Relative formatting | "2 hours ago", "in 3 days" |
days_in_month | Month length | days_in_month(2, 2024) → 29 |
is_weekend | Weekend check | Check if a date falls on Sat/Sun |
| Tool | Description | Example |
|---|---|---|
generate_uuid | UUID v4 | "550e8400-e29b-41d4-a716-446655440000" |
generate_uuid_v7 | UUID v7 (time-sortable) | Timestamp-based UUIDs |
generate_password | Secure passwords | Configurable length and character sets |
random_number | Random integers | random_number(1, 100) → 42 |
random_string | Random strings | Configurable length and charset |
generate_token | API tokens | Cryptographically secure tokens |
generate_lorem | Lorem ipsum | Generate placeholder text |
generate_color | Random colors | Random hex color codes |
roll_dice | Dice rolling | roll_dice(3, 6) → [4, 2, 6] |
flip_coin | Coin flip | "heads" or "tails" |
shuffle_list | Shuffle arrays | Randomize array order |
| Tool | Description | Example |
|---|---|---|
hex_to_hsl, hsl_to_hex | Color space conversion | Convert between formats |
hex_to_rgb, rgb_to_hex | RGB conversion | hex_to_rgb("#FF5733") → {r:255,g:87,b:51} |
lighten_color, darken_color | Brightness adjustment | Lighten/darken by percentage |
complement_color | Complementary colors | Get the opposite color |
triadic_colors, analogous_colors | Color harmonies | Generate color schemes |
contrast_ratio | WCAG contrast | Check accessibility compliance |
generate_gradient | Gradient generation | Generate color stops between two colors |
generate_shades, generate_tints | Shade/tint ramps | Create monochromatic palettes |
invert_color | Color inversion | Invert any hex color |
blend_colors | Color blending | Mix two colors together |
| Tool | Description | Example |
|---|---|---|
calculate_mean | Arithmetic mean | calculate_mean([10, 20, 30]) → 20 |
calculate_median | Median value | calculate_median([1, 3, 5, 7]) → 4 |
calculate_mode | Most frequent value | calculate_mode([1, 2, 2, 3]) → 2 |
calculate_variance | Population variance | Statistical variance |
calculate_stddev | Standard deviation | Statistical spread |
calculate_percentile | Percentile calculation | calculate_percentile([1..100], 95) → 95 |
calculate_quartiles | Q1, Q2, Q3 | Quartile boundaries |
calculate_correlation | Pearson correlation | Correlation coefficient between datasets |
calculate_zscore | Z-score | Standard score calculation |
describe_data | Summary statistics | Full statistical description of a dataset |
| Tool | Description | Example |
|---|---|---|
compound_interest | Compound interest | Calculate future value with compounding |
simple_interest | Simple interest | Basic interest calculation |
loan_payment | Loan payments | Monthly payment calculator |
mortgage_calculator | Mortgage | Monthly mortgage with amortization |
calculate_tip | Tip calculator | calculate_tip(85.50, 20) → $17.10 |
percentage_change | Growth/decline | percentage_change(100, 125) → 25% |
calculate_markup, calculate_margin | Pricing | Markup and margin calculations |
calculate_discount | Discounts | Price after discount |
return_on_investment | ROI | Investment return percentage |
rule_of_72 | Doubling time | Years to double an investment |
break_even | Break-even analysis | Units needed to break even |
| Tool | Description | Example |
|---|---|---|
calculate_bmi | Body Mass Index | calculate_bmi(70, 1.75) → 22.86 |
calculate_bmr | Basal Metabolic Rate | Daily calorie baseline |
ideal_weight | Ideal weight range | Based on height and frame |
heart_rate_zones | Training zones | Fat burn, cardio, peak zones |
estimate_body_fat | Body fat estimate | Navy method estimation |
daily_water_intake | Water recommendation | Based on weight and activity |
calories_burned | Exercise calories | Calories for activity type and duration |
calculate_macros | Macro split | Protein/carb/fat breakdown |
sleep_cycles | Sleep optimization | Optimal wake times based on cycles |
| Tool | Description | Example |
|---|---|---|
magic_8_ball | Magic 8-Ball | Random mystical answers |
dad_joke | Dad jokes | Guaranteed groan |
fortune_cookie | Fortune cookies | Random fortune messages |
random_compliment | Compliments | Brighten someone's day |
random_excuse | Excuses | Creative excuse generator |
would_you_rather | Would You Rather | Random dilemmas |
friendly_roast | Friendly roasts | Light-hearted roasts |
random_trivia | Trivia | Random trivia facts |
yes_no | Yes/No oracle | Random yes or no |
| Free | Starter | Pro | Enterprise |
|---|---|---|---|
$0/mo100 requests ✅ All 500+ tools ✅ MCP & REST API ✅ 10 req/min rate limit ✅ Community support |
$9/mo10,000 requests ✅ Everything in Free ✅ 100 req/min rate limit ✅ Email support ✅ Usage analytics |
$30/mo100,000 requests ✅ Everything in Starter ✅ 1,000 req/min rate limit ✅ Priority support ✅ Advanced analytics |
CustomUnlimited ✅ Everything in Pro ✅ SLA guarantee ✅ Dedicated support ✅ Custom integrations |
All plans include access to every tool. Sign up free →
All MCP server URLs must end with a trailing slash /.
tf_live_X-API-Key header (not Authorization)Your MCP client has a tool limit. Instead of /mcp/all/, use category-specific servers:
| If you need... | Use server | Tools |
|---|---|---|
| Validation only | /mcp/validate/ | 15 |
| Hashing only | /mcp/hash/ | 18 |
| Encoding only | /mcp/encode/ | 20 |
| Math only | /mcp/math/ | 52 |
See the full server list for all options.
You've hit your plan's rate limit. Options:
llms.txt for AI-readable documentationMIT License — see LICENSE for details.