About Data Transport Agent
Data Transport Agent is a headless service for converting data across structured, document, encoding, and aviation formats. It is aimed at AI agents and other clients, with aviation data parsing and MCP, A2A, and OpenAPI discovery.
Key features
- 01Converts data across 67+ format pairs
- 02Handles structured, document, and encoding formats
- 03Parses aviation weather and flight formats
- 04Returns aviation data as JSON or Markdown
Use cases
- 01Convert JSON, CSV, XML, YAML, or TOML
- 02Turn METAR or PIREP reports into structured data
- 03Convert documents such as PDF, Excel, and DOCX
MCP support
Exposes data transformation through an MCP endpoint at `/mcp`, which MCP clients can connect to. It is also discoverable through Google A2A and OpenAPI.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
3Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| source_format | enum | Yes | The format of the input data. Use the exact enum value, e.g. 'json', 'csv', 'xml'.json | csv | xml | yaml | toml | html | markdown | plain_text | pdf | excel | docx | metar | taf | notam | pirep | sigmet | airmet | atis | winds_aloft |
| target_format | enum | Yes | The desired output format to convert to. Use the exact enum value, e.g. 'csv', 'yaml'.json | csv | xml | yaml | toml | html | markdown | plain_text | excel |
| data | string | Yes | The input data as a text string. For binary formats (pdf, excel, docx), provide the file content as a base64-encoded string. |
| options | object | No | Optional configuration for the conversion. Supported keys: 'delimiter' (CSV separator, default ','), 'sheet_name' (Excel sheet, default 'Sheet1'), 'root_tag' (XML root element, default 'root'), 'item_tag' (XML item element, default 'item'). |
| options.delimiter | string | No | CSV column delimiter character. Default: ',' |
| options.sheet_name | string | No | Excel worksheet name to read from or write to. Default: 'Sheet1' |
| options.root_tag | string | No | Root XML element name when generating XML. Default: 'root' |
| options.item_tag | string | No | XML element name for each record. Default: 'item' |
Details
From the project READMEData Transform Agent
A headless, zero-UI data transformation service that converts between 67+ format pairs including aviation weather formats. Discovered by AI agents via MCP, Google A2A, and OpenAPI. Paid via x402 (USDC stablecoin) — first 100 requests free.
Live endpoint: https://transform-agent-lingering-surf-8155.fly.dev
Supported Formats
| Category | Formats |
|---|---|
| Structured | JSON, CSV, XML, YAML, TOML |
| Markup | HTML, Markdown, Plain Text |
| Documents | PDF, Excel (.xlsx), DOCX |
| Encoding | Base64, URL-encoded, Hex |
| Aviation | METAR, TAF, NOTAM, PIREP, SIGMET, AIRMET, ATIS, Winds Aloft |
Aviation Features
Purpose-built for aviation AI agents and flight planning workflows. Parses raw aviation weather formats into clean structured data.
METAR → Markdown
{
"source_format": "metar",
"target_format": "markdown",
"data": "METAR KSFO 061956Z 28015KT 10SM FEW015 BKN030 14/08 A2992"
}
Returns:
## METAR — KSFO
**Flight Category:** 🟢 VFR
**Wind:** 280° at 15kt
**Visibility:** 10.0 SM
**Sky:** FEW @ 1500ft, BKN @ 3000ft
**Temp/Dew:** 14°C / 8°C
**Altimeter:** 29.92 inHg
PIREP → Markdown
{
"source_format": "pirep",
"target_format": "markdown",
"data": "UA /OV OAK/TM 1530/FL085/TP C172/SK BKN065/TA 05/WV 27015/TB LGT/RM SMOOTH BELOW"
}
Returns:
## PIREP 🔵 ROUTINE
**Location:** OAK
**Altitude:** 8500 ft
**Aircraft:** C172
**Sky:** BKN065
**Temperature:** 5C
**Wind:** 270deg at 15kt
**Turbulence:** 🟢 LGT
**Remarks:** SMOOTH BELOW
ATIS → Markdown
{
"source_format": "atis",
"target_format": "markdown",
"data": "KSFO ATIS INFO NOVEMBER 1956Z. 28015KT 10SM FEW015 BKN030 14/08 A2992. ILS RWY 28L APCH IN USE. DEPTG RWY 28L. NOTAM BIRDS IN VICINITY."
}
Returns:
## ATIS — KSFO INFO NOVEMBER
**Flight Category:** 🟢 VFR
**Wind:** 280deg at 15kt
**Visibility:** 10.0 SM
**Sky:** FEW @ 1500ft, BKN @ 3000ft
**Runways In Use:** 28L
**Departure Runway:** 28L
**NOTAMs:** BIRDS IN VICINITY
Winds Aloft → Markdown
{
"source_format": "winds_aloft",
"target_format": "markdown",
"data": "FD1US1\nDATA BASED ON 091200Z\nVALID 091800Z FOR USE 1400-2100Z. TEMPS NEG ABV 24000\n\nFT 3000 6000 9000 12000 18000 24000 30000 34000 39000\nBOS 1606 2014+07 2119+02 2321-04 2434-15 245930 256344 256857 257063\nSFO 0000 3607+12 3515+07 3317+01 3322-12 333227 324042 314356 305163"
}
Returns:
## Winds Aloft Forecast
**Valid:** 091800Z
**For Use:** 1400Z to 2100Z
### BOS
| Altitude | Direction | Speed | Temp |
| --- | --- | --- | --- |
| 3000ft | 160° | 6kt | — |
| 6000ft | 200° | 14kt | 7C |
| 9000ft | 210° | 19kt | 2C |
| 12000ft | 230° | 21kt | -4C |
| 18000ft | 240° | 34kt | -15C |
All aviation formats also support json and plain_text as target formats.
Quick Start
Use via MCP (Claude, Cursor, Windsurf, etc.)
Add to your MCP client config:
{
"mcpServers": {
"data-transform-agent": {
"command": "npx",
"args": [
"mcp-remote",
"https://transform-agent-lingering-surf-8155.fly.dev/mcp"
]
}
}
}
Use via REST API
# 1. Get a free API key (instant, no signup)
curl -X POST https://transform-agent-lingering-surf-8155.fly.dev/auth/provision \
-H "Content-Type: application/json" \
-d '{}'
# 2. Convert a METAR to JSON
curl -X POST https://transform-agent-lingering-surf-8155.fly.dev/transform \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"source_format": "metar",
"target_format": "json",
"data": "METAR KSFO 061956Z 28015KT 10SM FEW015 BKN030 14/08 A2992"
}'
Discovery Protocols
| Protocol | Endpoint |
|---|---|
| MCP (Streamable HTTP) | /mcp |
| Google A2A (Agent Card) | /.well-known/agent-card.json |
| OpenAPI | /openapi.json |
| Smithery | smithery.ai/server/brad04-ai/data-transform |
| mcp.so | mcp.so |
Pricing
| Transform Type | Cost |
|---|---|
| Text formats (JSON, CSV, XML, YAML, etc.) | $0.001 |
| Aviation formats (METAR, TAF, NOTAM, PIREP, SIGMET, AIRMET, ATIS, Winds Aloft) | $0.001 |
| Documents (PDF, Excel, DOCX) | $0.005 |
| Encoding (Base64, hex, URL) | $0.0005 |
First 100 requests are free per API key. After that, pay-per-request via x402 (USDC on Base).
Self-Hosting
git clone https://github.com/brad04-ai/transform-agent
cd transform-agent
fly launch --copy-config
fly secrets set WALLET_ADDRESS=0xYourAddress ADMIN_API_KEY=your-secret
fly deploy
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.