Sponsored by Deepsite.site

Data Converter

Created By
a month ago
Convert data between 200+ format pairs across 16 formats: JSON, CSV, XML, YAML, TOML, HTML table, Markdown table, Properties, TSV, PDF, Excel, DOCX, Base64, URL-encoded, Hex, Plain Text. Includes JSON reshaping, format auto-detection, and batch conversion. Free tier: 100 requests per API key.
Content

/* ── Hero ───────────────────────────────────── */ .hero { padding: 140px 32px 80px; text-align: center; position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 800px; height: 400px; background: radial-gradient(ellipse at center, rgba(31,111,235,0.18) 0%, transparent 70%); pointer-events: none; } .hero-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 20px; background: rgba(56,139,253,0.12); border: 1px solid rgba(56,139,253,0.35); color: var(--blue); font-size: 13px; font-weight: 500; margin-bottom: 24px; } .hero-badge .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 6px var(--green); } .hero h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 800; line-height: 1.15; letter-spacing: -1.5px; color: #f0f6fc; max-width: 820px; margin: 0 auto 20px; } .hero h1 span { color: var(--blue); } .hero p { font-size: clamp(1rem, 1.5vw, 1.2rem); color: var(--muted); max-width: 600px; margin: 0 auto 36px; line-height: 1.7; } .hero-ctas { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-bottom: 60px; } .hero-stats { display: flex; justify-content: center; gap: 48px; flex-wrap: wrap; } .stat { text-align: center; } .stat-value { font-size: 2.2rem; font-weight: 800; color: #f0f6fc; letter-spacing: -1px; line-height: 1; } .stat-label { font-size: 12px; color: var(--muted); margin-top: 4px; text-transform: uppercase; letter-spacing: 0.5px; }

/* ── Section Commons ───────────────────────────────────── */ section { padding: 80px 32px; } .container { max-width: 1100px; margin: 0 auto; } .section-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--blue); margin-bottom: 10px; } .section-title { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 800; color: #f0f6fc; letter-spacing: -0.8px; margin-bottom: 14px; } .section-sub { font-size: 1.05rem; color: var(--muted); max-width: 560px; line-height: 1.7; } .section-header { margin-bottom: 48px; }

/* ── Format Grid ───────────────────────────────────── */ .formats-section { background: var(--panel2); } .formats-intro { margin-bottom: 48px; } .format-categories { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; } .format-category { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 24px; transition: border-color 0.2s, transform 0.2s; } .format-category:hover { border-color: var(--blue-dim); transform: translateY(-2px); } .category-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 14px; display: flex; align-items: center; gap: 7px; } .category-label .dot { width: 7px; height: 7px; border-radius: 50%; } .format-tags { display: flex; flex-wrap: wrap; gap: 7px; } .format-tag { padding: 4px 10px; border-radius: 5px; font-size: 12px; font-weight: 600; font-family: "SF Mono", "Fira Code", Consolas, monospace; background: rgba(255,255,255,0.05); border: 1px solid var(--border); color: var(--text); }

/* ── How It Works ───────────────────────────────────── */ .steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; } .step { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 28px; position: relative; } .step-num { width: 36px; height: 36px; border-radius: 8px; background: var(--blue-dim); color: #fff; font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; } .step h3 { font-size: 1.05rem; font-weight: 700; color: #f0f6fc; margin-bottom: 8px; } .step p { font-size: 14px; color: var(--muted); line-height: 1.65; }

/* ── Code Example ───────────────────────────────────── */ .code-section { background: var(--panel2); } .code-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } @media (max-width: 800px) { .code-grid { grid-template-columns: 1fr; } } .code-block { background: var(--bg); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; } .code-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; background: var(--panel); border-bottom: 1px solid var(--border); font-size: 12px; color: var(--muted); } .code-lang { padding: 2px 8px; border-radius: 4px; background: rgba(88,166,255,0.12); color: var(--blue); font-size: 11px; font-weight: 600; } pre { padding: 20px; overflow-x: auto; font-size: 13px; font-family: "SF Mono", "Fira Code", Consolas, monospace; line-height: 1.65; color: var(--text); } .kw { color: var(--blue); } .str { color: var(--green); } .key { color: var(--cyan); } .num { color: var(--orange); } .cmt { color: var(--muted); } .hl { color: var(--yellow); }

/* ── Lang Tabs ───────────────────────────────────── */ .lang-tabs { display: flex; gap: 0; margin-bottom: 0; border-bottom: 1px solid var(--border); } .lang-tab { padding: 10px 18px; font-size: 13px; font-weight: 500; cursor: pointer; border: none; background: transparent; color: var(--muted); transition: color 0.2s; border-bottom: 2px solid transparent; margin-bottom: -1px; } .lang-tab.active { color: var(--blue); border-bottom-color: var(--blue); } .lang-pane { display: none; } .lang-pane.active { display: block; }

/* ── Demo Section ───────────────────────────────────── */ .demo-section { padding: 80px 32px; } .demo-container { max-width: 1100px; margin: 0 auto; background: var(--panel); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; } .demo-header { display: flex; align-items: center; justify-content: space-between; padding: 18px 24px; background: var(--panel2); border-bottom: 1px solid var(--border); } .demo-header-left { display: flex; align-items: center; gap: 12px; } .demo-dots { display: flex; gap: 6px; } .demo-dot { width: 12px; height: 12px; border-radius: 50%; } .demo-dot.red { background: #ff5f57; } .demo-dot.yellow { background: #febc2e; } .demo-dot.green { background: #28c840; } .demo-title { font-size: 13px; color: var(--muted); } .demo-iframe-wrapper { height: 700px; position: relative; } .demo-iframe-wrapper iframe { width: 100%; height: 100%; border: none; display: block; } .demo-overlay-cta { position: absolute; bottom: 0; left: 0; right: 0; padding: 20px; text-align: center; background: linear-gradient(transparent, rgba(13,17,23,0.95)); pointer-events: none; }

/* ── Mini Demo Playground ───────────────────────────────────── */ .playground { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; margin-top: 32px; } .playground-header { display: flex; align-items: center; gap: 12px; padding: 14px 20px; background: var(--panel2); border-bottom: 1px solid var(--border); font-size: 13px; color: var(--muted); } .playground-body { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0; } .pg-panel { padding: 20px; } .pg-divider { display: flex; align-items: center; justify-content: center; padding: 0 16px; background: var(--panel2); border-left: 1px solid var(--border); border-right: 1px solid var(--border); } .pg-label { font-size: 11px; color: var(--muted); margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.5px; } .pg-select-row { display: flex; gap: 8px; margin-bottom: 10px; } select { background: var(--bg); color: var(--text); border: 1px solid var(--border); border-radius: 6px; padding: 6px 10px; font-size: 13px; flex: 1; } select:focus { outline: none; border-color: var(--blue); } textarea { width: 100%; background: var(--bg); color: var(--text); border: 1px solid var(--border); border-radius: 6px; padding: 10px; font-size: 12px; font-family: "SF Mono", "Fira Code", Consolas, monospace; resize: vertical; min-height: 180px; line-height: 1.6; } textarea:focus { outline: none; border-color: var(--blue); } .pg-convert-btn { padding: 10px 20px; border-radius: 8px; background: var(--blue); color: #0d1117; border: none; cursor: pointer; font-size: 14px; font-weight: 700; transition: all 0.2s; writing-mode: vertical-rl; text-orientation: mixed; } .pg-convert-btn:hover { background: #79b8ff; } .pg-output { font-family: "SF Mono", "Fira Code", Consolas, monospace; font-size: 12px; line-height: 1.65; white-space: pre-wrap; color: var(--green); background: var(--bg); border: 1px solid var(--border); border-radius: 6px; padding: 10px; min-height: 180px; overflow: auto; } .pg-error { color: var(--red); }

/* ── Pricing ───────────────────────────────────── */ .pricing-section { background: var(--panel2); } .pricing-note { background: rgba(63,185,80,0.08); border: 1px solid rgba(63,185,80,0.25); border-radius: 8px; padding: 14px 20px; display: flex; align-items: center; gap: 10px; font-size: 14px; margin-bottom: 36px; color: var(--green); } .pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; } .pricing-card { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 24px; transition: border-color 0.2s, transform 0.2s; } .pricing-card:hover { border-color: var(--border); transform: translateY(-2px); } .pricing-card.featured { border-color: var(--blue); } .pricing-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 18px; margin-bottom: 14px; } .pricing-tier { font-size: 13px; font-weight: 600; color: var(--muted); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; } .pricing-price { font-size: 2rem; font-weight: 800; color: #f0f6fc; letter-spacing: -1px; line-height: 1; } .pricing-price span { font-size: 13px; font-weight: 500; color: var(--muted); } .pricing-desc { font-size: 13px; color: var(--muted); margin: 10px 0 16px; line-height: 1.55; } .pricing-formats { display: flex; flex-wrap: wrap; gap: 5px; } .pricing-format { padding: 2px 8px; border-radius: 4px; font-size: 11px; font-family: "SF Mono", "Fira Code", Consolas, monospace; font-weight: 600; background: rgba(255,255,255,0.05); border: 1px solid var(--border2); color: var(--muted); }

/* ── MCP / Use Cases ───────────────────────────────────── */ .usecases-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; } .usecase { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 28px; transition: border-color 0.2s; } .usecase:hover { border-color: var(--blue-dim); } .usecase-icon { font-size: 28px; margin-bottom: 14px; display: block; } .usecase h3 { font-size: 1rem; font-weight: 700; color: #f0f6fc; margin-bottom: 8px; } .usecase p { font-size: 14px; color: var(--muted); line-height: 1.65; }

/* ── Quick Start ───────────────────────────────────── */ .quickstart-section { background: var(--panel2); } .quickstart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; } @media (max-width: 800px) { .quickstart-grid { grid-template-columns: 1fr; } } .quickstart-block h3 { font-size: 1rem; font-weight: 700; color: #f0f6fc; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; } .tag { padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; background: rgba(88,166,255,0.12); color: var(--blue); border: 1px solid rgba(88,166,255,0.25); }

/* ── Security Badge ───────────────────────────────────── */ .security-section { text-align: center; } .security-badges { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; margin-top: 36px; } .security-badge { display: flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 8px; background: var(--panel); border: 1px solid var(--border); font-size: 13px; color: var(--text); } .security-badge .check { color: var(--green); font-size: 15px; }

/* ── Footer ───────────────────────────────────── */ footer { background: var(--panel); border-top: 1px solid var(--border); padding: 40px 32px 28px; } .footer-grid { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 36px; } @media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-brand { grid-column: 1 / -1; } } .footer-brand p { font-size: 13px; color: var(--muted); margin-top: 10px; max-width: 240px; line-height: 1.65; } .footer-col h4 { font-size: 13px; font-weight: 700; color: #f0f6fc; margin-bottom: 12px; } .footer-col ul { list-style: none; } .footer-col li { margin-bottom: 8px; } .footer-col a { font-size: 13px; color: var(--muted); text-decoration: none; transition: color 0.2s; } .footer-col a:hover { color: var(--blue); } .footer-bottom { max-width: 1100px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--border2); padding-top: 20px; font-size: 12px; color: var(--muted); flex-wrap: wrap; gap: 10px; }

/* ── Animations ───────────────────────────────────── */ @keyframes fade-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-up { animation: fade-up 0.6s ease forwards; } .fade-up-1 { animation-delay: 0.1s; opacity: 0; } .fade-up-2 { animation-delay: 0.2s; opacity: 0; } .fade-up-3 { animation-delay: 0.3s; opacity: 0; } .fade-up-4 { animation-delay: 0.4s; opacity: 0; }

@keyframes pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } } .pulse { animation: pulse-dot 2s infinite; }

/* ── Divider ───────────────────────────────────── */ hr { border: none; border-top: 1px solid var(--border); margin: 0; }

/* ── Responsive ───────────────────────────────────── */ @media (max-width: 700px) { nav { padding: 0 16px; } .nav-links { display: none; } .hero { padding: 110px 16px 60px; } section { padding: 60px 16px; } .hero-stats { gap: 28px; } .demo-iframe-wrapper { height: 500px; } .playground-body { grid-template-columns: 1fr; } .pg-divider { padding: 14px 20px; border-left: none; border-right: none; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .pg-convert-btn { writing-mode: horizontal-tb; width: 100%; } footer { padding: 32px 16px 20px; } }

Production-ready · MCP Native · x402 Payments

Convert Any Data Format
With a Single API Call

16 formats. 240 conversion pairs. JSON, CSV, XML, YAML, TOML, Markdown, HTML, PDF, Excel, DOCX, Base64 and more — exposed as an MCP tool your AI agents can call directly.

16
Data Formats
240
Conversion Pairs
297
Tests
$0.001
Per Conversion

Every Format You Work With
From structured data to tabular spreadsheets to binary documents — all converted through a single unified API.
Structured Data
JSON XML YAML TOML
Tabular Data
CSV TSV HTML Markdown Properties
Binary Documents
PDF Excel DOCX
Encoding / Text
Base64 URL-Encoded Hex Plain Text
<div style="margin-top:32px;padding:20px 24px;background:var(--panel);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;gap:16px;flex-wrap:wrap">
  <div style="flex:1;min-width:200px">
    <div style="font-size:13px;color:var(--muted);margin-bottom:4px">All formats can convert to all other formats</div>
    <div style="font-size:22px;font-weight:800;color:#f0f6fc;letter-spacing:-0.5px">16 × 15 = <span style="color:var(--blue)">240 conversion pairs</span></div>
  </div>
  <a href="/demo.html" class="btn btn-outline" style="flex-shrink:0">See All Conversions →</a>
</div>

Simple by Design
Send your data in any format, specify the target format, get back the result. No schemas. No configuration. No SDKs required.
1

Send Your Data

POST your raw data to /api/convert with source and target format specified. Supports up to 10 MB per request.

2

Instant Conversion

The engine detects the format, parses the structure, normalizes records, and serializes to your target. Binary documents are extracted automatically.

3

Get the Result

Receive clean, properly encoded output. Errors return structured messages — never raw stack traces. All responses include format metadata.

Or Use It as an MCP Tool

Connect Claude, Cursor, or any MCP-compatible AI agent directly. The service exposes 5 tools via the Model Context Protocol — no API calls needed from the agent side.


See It in Action
23 real-world scenarios covering every format and endpoint. Run them interactively and inspect every request and response.
<div class="demo-container">
  <div class="demo-header">
    <div class="demo-header-left">
      <div class="demo-dots">
        <div class="demo-dot red"></div>
        <div class="demo-dot yellow"></div>
        <div class="demo-dot green"></div>
      </div>
      <span class="demo-title">MCP Data Converter — Interactive Demo</span>
    </div>
    <a href="/demo.html" class="btn btn-outline btn-sm" target="_blank">Open Full Screen ↗</a>
  </div>
  <div class="demo-iframe-wrapper">
    <iframe src="/demo.html" title="MCP Data Converter Live Demo" loading="lazy"></iframe>
  </div>
</div>

<!-- Mini Playground -->
<div style="margin-top:40px">
  <div class="section-label" style="margin-bottom:8px">Quick Playground</div>
  <p style="font-size:14px;color:var(--muted);margin-bottom:20px">Try a conversion right here — no sign-up needed.</p>
  <div class="playground">
    <div class="playground-header">
      <svg width="14" height="14" viewBox="0 0 14 14" fill="none"><circle cx="7" cy="7" r="6" stroke="#3fb950" stroke-width="1.4"/><path d="M5 7l1.5 1.5L9.5 5" stroke="#3fb950" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
      <span>Playground — calls your local service at <code style="color:var(--cyan)">localhost:8080</code></span>
    </div>
    <div class="playground-body">
      <div class="pg-panel">
        <div class="pg-label">Input</div>
        <div class="pg-select-row">
          <select id="pg-source">
            <option value="json" selected>JSON</option>
            <option value="csv">CSV</option>
            <option value="yaml">YAML</option>
            <option value="xml">XML</option>
            <option value="toml">TOML</option>
            <option value="markdown">Markdown</option>
            <option value="properties">Properties</option>
            <option value="tsv">TSV</option>
            <option value="html">HTML</option>
            <option value="plain_text">Plain Text</option>
            <option value="base64">Base64</option>
          </select>
        </div>
        <textarea id="pg-input" spellcheck="false">[

{"name": "Alice", "age": 30, "city": "NYC"}, {"name": "Bob", "age": 25, "city": "SF"}, {"name": "Carol", "age": 35, "city": "Austin"} ]

Output
Click Convert → to see result


One Endpoint, Any Language
A simple REST API — POST /api/convert with JSON body. No SDK needed.
<div class="code-grid" style="margin-bottom:32px">
  <div class="code-block">
    <div class="code-header">
      <span>Request</span>
      <span class="code-lang">JSON</span>
    </div>
    <pre>{

"sourceFormat": "json", "targetFormat": "csv", "data": "[{"name":"Alice","age":30}]" }

Response JSON
{
"success": true,
"sourceFormat": "json",
"targetFormat": "csv",
"result": "name,age\nAlice,30"
}

<!-- Language tabs -->
<div class="code-block">
  <div class="code-header" style="padding:0">
    <div class="lang-tabs">
      <button class="lang-tab active" onclick="switchLang(this,'curl')">cURL</button>
      <button class="lang-tab" onclick="switchLang(this,'python')">Python</button>
      <button class="lang-tab" onclick="switchLang(this,'typescript')">TypeScript</button>
      <button class="lang-tab" onclick="switchLang(this,'kotlin')">Kotlin</button>
      <button class="lang-tab" onclick="switchLang(this,'mcp')">MCP (Claude)</button>
    </div>
  </div>
  <div id="lang-curl" class="lang-pane active">
# Convert JSON → CSV
curl -X POST https://mcp-converter.tnkng.com/api/convert \
  -H "Content-Type: application/json" \
  -d '{
    "sourceFormat": "json",
    "targetFormat": "csv",
    "data": "[{\"name\":\"Alice\",\"age\":30}]"
  }'

# Auto-detect format
curl -X POST https://mcp-converter.tnkng.com/api/detect \
  -H "Content-Type: application/json" \
  -d '{"data": "name,age\nAlice,30"}'

# Batch convert (up to 50 items)
curl -X POST https://mcp-converter.tnkng.com/api/batch \
  -H "Content-Type: application/json" \
  -d '{"items":[
    {"sourceFormat":"json","targetFormat":"yaml","data":"..."},
    {"sourceFormat":"csv","targetFormat":"xml","data":"..."}
  ]}'
  </div>
  <div id="lang-python" class="lang-pane">
import requests

# Convert JSON array to CSV
response = requests.post(
    "https://mcp-converter.tnkng.com/api/convert",
    json={
        "sourceFormat": "json",
        "targetFormat": "csv",
        "data": '[{"name":"Alice","age":30}]'
    }
)
result = response.json()
if result["success"]:
    print(result["result"])

# Reshape nested JSON with dot-notation paths
reshape = requests.post(
    "https://mcp-converter.tnkng.com/api/reshape",
    json={
        "data": '{"user":{"name":"Alice","address":{"city":"NYC"}}}',
        "mappings": {"name": "user.name", "city": "user.address.city"}
    }
)
  </div>
  <div id="lang-typescript" class="lang-pane">
// Convert any format to any other
const convert = async (
  data: string,
  from: string,
  to: string
) => {
  const res = await fetch("https://mcp-converter.tnkng.com/api/convert", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ sourceFormat: from, targetFormat: to, data })
  });
  const result = await res.json();
  if (!result.success) throw new Error(result.error);
  return result.result;
};

// Usage
const csv = await convert(
  '[{"name":"Alice","age":30}]',
  "json", "csv"
);
  </div>
  <div id="lang-kotlin" class="lang-pane">
// Using the MCP Kotlin SDK
val client = HttpClient()
val response = client.post("https://mcp-converter.tnkng.com/api/convert") {
    contentType(ContentType.Application.Json)
    setBody(ConversionRequest(
        sourceFormat = "json",
        targetFormat = "yaml",
        data = """[{"name":"Alice","age":30}]"""
    ))
}
val result = response.body<ConversionResponse>()
if (result.success) println(result.result)

// Or add as MCP server in application.yml
// spring.ai.mcp.server.enabled: true
// All @Tool methods auto-registered
  </div>
  <div id="lang-mcp" class="lang-pane">
# Add to Claude Desktop config (~/.claude/claude_desktop_config.json)
{
  "mcpServers": {
    "data-converter": {
      "url": "https://mcp-converter.tnkng.com/sse",
      "type": "sse"
    }
  }
}

# Claude can then call tools directly:
# - convertData(sourceFormat, targetFormat, data)
# - batchConvert(items)
# - reshapeJson(data, mappings)
# - detectFormat(data)
# - listSupportedFormats()

# A2A discovery also available:
# GET /.well-known/agent-card.json
  </div>
</div>

<!-- Endpoints summary -->
<div style="margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px">
  <div style="background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px">
    <div style="display:flex;align-items:center;gap:10px;margin-bottom:10px">
      <span style="background:rgba(63,185,80,0.15);color:var(--green);font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px">POST</span>
      <code style="color:var(--cyan);font-size:13px">/api/convert</code>
    </div>
    <p style="font-size:13px;color:var(--muted)">Convert a single document between any two formats.</p>
  </div>
  <div style="background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px">
    <div style="display:flex;align-items:center;gap:10px;margin-bottom:10px">
      <span style="background:rgba(63,185,80,0.15);color:var(--green);font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px">POST</span>
      <code style="color:var(--cyan);font-size:13px">/api/batch</code>
    </div>
    <p style="font-size:13px;color:var(--muted)">Convert up to 50 items in one request with mixed formats.</p>
  </div>
  <div style="background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px">
    <div style="display:flex;align-items:center;gap:10px;margin-bottom:10px">
      <span style="background:rgba(63,185,80,0.15);color:var(--green);font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px">POST</span>
      <code style="color:var(--cyan);font-size:13px">/api/reshape</code>
    </div>
    <p style="font-size:13px;color:var(--muted)">Remap nested JSON fields using dot-notation path mappings.</p>
  </div>
  <div style="background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px">
    <div style="display:flex;align-items:center;gap:10px;margin-bottom:10px">
      <span style="background:rgba(63,185,80,0.15);color:var(--green);font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px">POST</span>
      <code style="color:var(--cyan);font-size:13px">/api/detect</code>
    </div>
    <p style="font-size:13px;color:var(--muted)">Auto-detect the format of any input data.</p>
  </div>
  <div style="background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px">
    <div style="display:flex;align-items:center;gap:10px;margin-bottom:10px">
      <span style="background:rgba(88,166,255,0.15);color:var(--blue);font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px">GET</span>
      <code style="color:var(--cyan);font-size:13px">/api/formats</code>
    </div>
    <p style="font-size:13px;color:var(--muted)">List all 16 supported formats and their conversion capabilities.</p>
  </div>
  <div style="background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px">
    <div style="display:flex;align-items:center;gap:10px;margin-bottom:10px">
      <span style="background:rgba(88,166,255,0.15);color:var(--blue);font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px">SSE</span>
      <code style="color:var(--cyan);font-size:13px">/sse</code>
    </div>
    <p style="font-size:13px;color:var(--muted)">MCP Server-Sent Events endpoint for AI agent discovery.</p>
  </div>
</div>

Pay Only for What You Use
Micropayments via x402 (USDC on Base). Fractions of a cent per conversion. First 100 requests are always free.
New API keys get 100 free requests — no credit card required. Run POST /auth/provision to get your key.
📄
Text Formats
$0.001 / req
For everyday data conversions between text-based formats.
CSV TSV HTML Table Markdown Properties Plain Text
📊
Document Extraction
$0.005 / req
Binary document parsing with full text and table extraction.
PDF Excel DOCX
🔐
Encoding
$0.0005 / req
Lightweight encoding and decoding operations.
Base64 URL-Encoded Hex

Built for Real Workloads
🤖

AI Agent Pipelines

Connect Claude, GPT-4, or any MCP-compatible agent. They can call convertData directly as a tool — no extra API calls, no prompt engineering needed to parse formats.

🔌

API Integrations

Bridge incompatible APIs without writing parsers. Receive XML from a legacy system, convert to JSON for your frontend, reshape fields with dot-notation — in one request.

📄

Document Processing

Extract structured data from PDF reports, Excel spreadsheets, and DOCX files. Convert to any text format for downstream analysis or storage.

🔄

ETL Pipelines

Use the batch endpoint to process up to 50 files in a single request. Mix formats freely — CSV inputs alongside YAML configs, all converted in one shot.

🛠️

Developer Tooling

Embed in CLI tools, VS Code extensions, or CI pipelines. Convert configs between YAML and TOML, generate Markdown tables from JSON, serialize test fixtures.

🔐

Security-Sensitive Workloads

XXE protection, formula injection prevention, input size limits, and 30+ security tests. Safe to use with untrusted user data in production.


Up in Minutes

Provision API Key

First request cURL
# Get your free API key (100 free requests)
curl -X POST https://mcp-converter.tnkng.com/auth/provision

# Response: { "apiKey": "mcp_xxxxxxxxxxxx", "freeRequestsRemaining": 100 }

# Use in requests: curl -H "X-API-Key: mcp_xxxx" ...

MCP Config Claude / Cursor

claude_desktop_config.json JSON
{
"mcpServers": {
"data-converter": {
"url": "https://mcp-converter.tnkng.com/sse",
"type": "sse"
}
}
}

# Restart Claude Desktop # Tools appear automatically in Claude


Hardened for Production

Every security rule exists because a real vulnerability was identified and fixed. 168+ tests cover injection, bombs, malformed input, and boundary conditions.

XXE Prevention
CSV Formula Injection
10 MB Input Limits
100K Record Cap
Recursion Depth Limit
ReDoS-Safe Regex
HTML/XML Output Escaping
No Raw Stack Traces

Server Config

{
  "mcpServers": {
    "mcp-data-converter": {
      "url": "https://mcp-converter.tnkng.com/mcp"
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Amap Maps高德地图官方 MCP Server
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Tavily Mcp
DeepChatYour AI Partner on Desktop
ChatWiseThe second fastest AI chatbot™
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
CursorThe AI Code Editor
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Serper MCP ServerA Serper MCP Server
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Playwright McpPlaywright MCP server
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
WindsurfThe new purpose-built IDE to harness magic
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.