/ Docs
NEW

MCP Server

Connect any AI agent to ToolPix via Model Context Protocol. Offload computation — format JSON, hash text, convert units, encode data, parse formats — without spending tokens calculating it yourself.

Why use MCP instead of doing it in the LLM?

Without MCP

LLM computes SHA-256 of a string → wastes ~200 tokens on chain-of-thought, may hallucinate wrong hash

With ToolPix MCP

Agent calls generate_hash → gets exact result in ~0 tokens → result piped back into context

Quick Start

1. Get server info + full tool list

GET https://toolpix.dev/api/mcp

2. Call a tool (simple format)

POST https://toolpix.dev/api/mcp
Content-Type: application/json

{
  "tool": "format_json",
  "input": { "json": "{\"name\":\"Alice\",\"age\":30}" }
}

3. MCP protocol format (for MCP-native clients)

POST https://toolpix.dev/api/mcp
Content-Type: application/json

{
  "method": "tools/call",
  "params": {
    "name": "generate_hash",
    "arguments": { "text": "hello world", "algorithm": "sha256" }
  }
}

Authentication

FREE

No API key required — 10 requests/hour per IP for all compute tools

KEY

Higher limits with API key — pass as header:

x-api-key: tp_your_key_here
Get API Key →

All Tools (34)

All tools are compute-only (no LLM). Results are deterministic and exact.

format_jsonFormat, validate, or minify JSON

INPUT

{ "tool": "format_json", "input": { "json": "{"hello":"world"}" } }

RESPONSE

{ "tool": "format_json", "result": { "formatted": "{
  \"hello\": \"world\"
}", "valid": true } }
encode_base64Encode text to Base64 or decode

INPUT

{ "tool": "encode_base64", "input": { "text": "Hello World", "mode": "encode" } }

RESPONSE

{ "tool": "encode_base64", "result": { "result": "SGVsbG8gV29ybGQ=" } }
encode_urlPercent-encode or decode a URL

INPUT

{ "tool": "encode_url", "input": { "text": "hello world & more", "mode": "encode" } }

RESPONSE

{ "tool": "encode_url", "result": { "result": "hello%20world%20%26%20more" } }
generate_hashGenerate MD5, SHA-1, SHA-256, SHA-512 hash

INPUT

{ "tool": "generate_hash", "input": { "text": "hello", "algorithm": "sha256" } }

RESPONSE

{ "tool": "generate_hash", "result": { "algorithm": "sha256", "hash": "2cf24db..." } }
generate_uuidGenerate 1–100 random UUID v4

INPUT

{ "tool": "generate_uuid", "input": { "count": 3 } }

RESPONSE

{ "tool": "generate_uuid", "result": { "uuids": ["uuid1", "uuid2", "uuid3"], "count": 3 } }
convert_colorConvert HEX ↔ RGB ↔ HSL

INPUT

{ "tool": "convert_color", "input": { "color": "#ff5733" } }

RESPONSE

{ "tool": "convert_color", "result": { "hex": "#ff5733", "rgb": "rgb(255, 87, 51)", "hsl": "hsl(11, 100%, 60%)" } }
count_wordsCount words, chars, sentences, paragraphs

INPUT

{ "tool": "count_words", "input": { "text": "Hello world. How are you?" } }

RESPONSE

{ "tool": "count_words", "result": { "words": 5, "chars": 25, "sentences": 2 } }
count_tokensEstimate LLM token count + cost

INPUT

{ "tool": "count_tokens", "input": { "text": "Your prompt text here" } }

RESPONSE

{ "tool": "count_tokens", "result": { "tokens": 4, "estimatedCost": { "gpt-4o": "$0.000010" } } }
find_replaceFind and replace with regex support

INPUT

{ "tool": "find_replace", "input": { "text": "Hello World", "find": "World", "replace": "ToolPix" } }

RESPONSE

{ "tool": "find_replace", "result": { "result": "Hello ToolPix", "matchCount": 1 } }
split_stringSplit text by any delimiter

INPUT

{ "tool": "split_string", "input": { "text": "a,b,c,d", "delimiter": "," } }

RESPONSE

{ "tool": "split_string", "result": { "parts": ["a", "b", "c", "d"], "count": 4 } }
generate_slugConvert text to URL-friendly slug

INPUT

{ "tool": "generate_slug", "input": { "text": "Hello World! This is a Test" } }

RESPONSE

{ "tool": "generate_slug", "result": { "slug": "hello-world-this-is-a-test" } }
generate_passwordGenerate secure random password

INPUT

{ "tool": "generate_password", "input": { "length": 16, "symbols": true } }

RESPONSE

{ "tool": "generate_password", "result": { "password": "xK9#mP2$nQ7@vR4!", "length": 16 } }
check_password_strengthScore password strength 0–7

INPUT

{ "tool": "check_password_strength", "input": { "password": "MyP@ssw0rd123" } }

RESPONSE

{ "tool": "check_password_strength", "result": { "score": 6, "maxScore": 7, "label": "Very Strong" } }
decode_jwtDecode JWT header + payload

INPUT

{ "tool": "decode_jwt", "input": { "token": "eyJhbG..." } }

RESPONSE

{ "tool": "decode_jwt", "result": { "header": { "alg": "HS256" }, "payload": { "sub": "123" } } }
minify_cssRemove whitespace and comments from CSS

INPUT

{ "tool": "minify_css", "input": { "css": "body { color: red; }" } }

RESPONSE

{ "tool": "minify_css", "result": { "minified": "body{color:red}", "saved": "28.6%" } }
json_to_csvConvert JSON array to CSV

INPUT

{ "tool": "json_to_csv", "input": { "json": "[{\"name\":\"Alice\",\"age\":30}]" } }

RESPONSE

{ "tool": "json_to_csv", "result": { "csv": "name,age\nAlice,30", "rowCount": 1 } }
csv_to_jsonParse CSV to JSON array

INPUT

{ "tool": "csv_to_json", "input": { "csv": "name,age\nAlice,30" } }

RESPONSE

{ "tool": "csv_to_json", "result": { "json": [{ "name": "Alice", "age": "30" }] } }
json_to_xmlConvert JSON to XML

INPUT

{ "tool": "json_to_xml", "input": { "json": "{\"name\":\"Alice\"}" } }

RESPONSE

{ "tool": "json_to_xml", "result": { "xml": "<?xml...><root><name>Alice</name></root>" } }
json_to_yamlConvert JSON to YAML

INPUT

{ "tool": "json_to_yaml", "input": { "json": "{\"name\":\"Alice\"}" } }

RESPONSE

{ "tool": "json_to_yaml", "result": { "yaml": "name: Alice" } }
sum_numbersSum, average, min, max from list

INPUT

{ "tool": "sum_numbers", "input": { "numbers": "10, 20, 30, 40" } }

RESPONSE

{ "tool": "sum_numbers", "result": { "sum": 100, "average": 25, "min": 10, "max": 40 } }
calculate_percentageCalculate percentage

INPUT

{ "tool": "calculate_percentage", "input": { "value": 25, "total": 200 } }

RESPONSE

{ "tool": "calculate_percentage", "result": { "percentage": "12.50%", "decimal": "0.1250" } }
convert_number_baseConvert between number bases

INPUT

{ "tool": "convert_number_base", "input": { "number": "255", "fromBase": 10, "toBase": 16 } }

RESPONSE

{ "tool": "convert_number_base", "result": { "result": "ff", "decimal": 255 } }
convert_unitConvert length, weight, temperature

INPUT

{ "tool": "convert_unit", "input": { "value": 100, "from": "km", "to": "mi" } }

RESPONSE

{ "tool": "convert_unit", "result": { "result": 62.1371, "from": "km", "to": "mi" } }
scientific_calculatorEvaluate math expressions

INPUT

{ "tool": "scientific_calculator", "input": { "expression": "sqrt(144) + sin(pi/2)" } }

RESPONSE

{ "tool": "scientific_calculator", "result": { "result": 13, "expression": "sqrt(144) + sin(pi/2)" } }
calculate_loanMonthly payment + total interest

INPUT

{ "tool": "calculate_loan", "input": { "amount": 100000, "rate": 5.5, "years": 30 } }

RESPONSE

{ "tool": "calculate_loan", "result": { "monthlyPayment": "567.89", "totalInterest": "104440.40" } }
calculate_vatAdd or remove VAT from price

INPUT

{ "tool": "calculate_vat", "input": { "amount": 100, "vatRate": 20, "mode": "add" } }

RESPONSE

{ "tool": "calculate_vat", "result": { "netAmount": "100.00", "vatAmount": "20.00", "grossAmount": "120.00" } }
calculate_ageExact age from birthdate

INPUT

{ "tool": "calculate_age", "input": { "birthdate": "1990-05-15" } }

RESPONSE

{ "tool": "calculate_age", "result": { "years": 36, "months": 0, "totalDays": 13161 } }
generate_meta_tagsHTML meta + OG + Twitter tags

INPUT

{ "tool": "generate_meta_tags", "input": { "title": "My Page", "description": "About us" } }

RESPONSE

{ "tool": "generate_meta_tags", "result": { "html": "<title>My Page</title>\n<meta name=\"description\"..." } }
generate_sitemapXML sitemap from URL list

INPUT

{ "tool": "generate_sitemap", "input": { "urls": "https://example.com\nhttps://example.com/about" } }

RESPONSE

{ "tool": "generate_sitemap", "result": { "xml": "<?xml...><urlset>...</urlset>", "urlCount": 2 } }
generate_schema_markupJSON-LD structured data

INPUT

{ "tool": "generate_schema_markup", "input": { "type": "LocalBusiness", "name": "My Shop", "url": "https://myshop.com" } }

RESPONSE

{ "tool": "generate_schema_markup", "result": { "jsonld": "...", "html": "<script type=\"application/ld+json\">..." } }
check_keyword_densityTop 20 keywords + density

INPUT

{ "tool": "check_keyword_density", "input": { "text": "SEO content with keywords..." } }

RESPONSE

{ "tool": "check_keyword_density", "result": { "topKeywords": [{ "word": "seo", "count": 3, "density": "5.00%" }] } }
generate_robots_txtGenerate robots.txt

INPUT

{ "tool": "generate_robots_txt", "input": { "sitemapUrl": "https://example.com/sitemap.xml", "disallow": "/admin/" } }

RESPONSE

{ "tool": "generate_robots_txt", "result": { "robotsTxt": "User-agent: *\nDisallow: /admin/\n\nSitemap: ..." } }
morse_codeText ↔ Morse code

INPUT

{ "tool": "morse_code", "input": { "text": "SOS", "mode": "encode" } }

RESPONSE

{ "tool": "morse_code", "result": { "result": "... --- ..." } }
generate_loremLorem Ipsum placeholder text

INPUT

{ "tool": "generate_lorem", "input": { "count": 2, "type": "sentences" } }

RESPONSE

{ "tool": "generate_lorem", "result": { "text": "Lorem ipsum dolor sit amet..." } }

Use with Claude (claude_desktop_config.json)

{
  "mcpServers": {
    "toolpix": {
      "url": "https://toolpix.dev/api/mcp",
      "headers": {
        "x-api-key": "tp_your_key_here"
      }
    }
  }
}

After adding, Claude will see all ToolPix tools as native tool calls.

Error Codes

CodeMeaning
200Success
400Missing or invalid parameters
404Unknown tool name
429Rate limit exceeded (10 req/hour free tier)
500Tool execution error