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.
POST your raw data to /api/convert with source and target format specified. Supports up to 10 MB per request.
The engine detects the format, parses the structure, normalizes records, and serializes to your target. Binary documents are extracted automatically.
Receive clean, properly encoded output. Errors return structured messages — never raw stack traces. All responses include format metadata.
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.
Try a conversion right here — no sign-up needed.
localhost:8080
POST /api/convert with JSON body.
No SDK needed.
{
"sourceFormat": "json",
"targetFormat": "csv",
"data": "[{\"name\":\"Alice\",\"age\":30}]"
}
{
"success": true,
"sourceFormat": "json",
"targetFormat": "csv",
"result": "name,age\nAlice,30"
}
# 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":"..."} ]}'
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"} } )
// 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" );
// 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
# Add to Claude Desktop config (~/.claude/claude_desktop_config.json) { "mcpServers": { "data-converter": { "url": "https://mcp-converter.tnkng.com/mcp", "type": "streamableHttp" } } } # 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
/api/convert
Convert a single document between any two formats.
/api/batch
Convert up to 50 items in one request with mixed formats.
/api/reshape
Remap nested JSON fields using dot-notation path mappings.
/api/detect
Auto-detect the format of any input data.
/api/formats
List all 16 supported formats and their conversion capabilities.
/mcp
MCP Streamable HTTP endpoint for AI agent discovery.
POST /auth/provision to get your key.
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.
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.
Extract structured data from PDF reports, Excel spreadsheets, and DOCX files. Convert to any text format for downstream analysis or storage.
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.
Embed in CLI tools, VS Code extensions, or CI pipelines. Convert configs between YAML and TOML, generate Markdown tables from JSON, serialize test fixtures.
XXE protection, formula injection prevention, input size limits, and 30+ security tests. Safe to use with untrusted user data in production.
# 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" ...
{
"mcpServers": {
"data-converter": {
"url": "https://mcp-converter.tnkng.com/mcp",
"type": "streamableHttp"
}
}
}
# Restart Claude Desktop
# Tools appear automatically in Claude
Every security rule exists because a real vulnerability was identified and fixed. 168+ tests cover injection, bombs, malformed input, and boundary conditions.