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
No API key required — 10 requests/hour per IP for all compute tools
Higher limits with API key — pass as header:
x-api-key: tp_your_key_here
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
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Missing or invalid parameters |
| 404 | Unknown tool name |
| 429 | Rate limit exceeded (10 req/hour free tier) |
| 500 | Tool execution error |