Conversion Tools MCP

Live

API KEY

FILES & DOCUMENTS

Files & Documents

Let your agent convert files between CSV, XML, JSON, Excel, and PDF, upload source documents, and download results as the user who owns the API token.

  • Acts as the token owner. Every conversion task and file transfer is attributed to the real user's Conversion Tools account, not a shared service key.
  • Keys stay vaulted. Conversion Tools API keys sit in an AES-256 vault, resolved per request, never in the prompt.
  • Scoped before every call. Each task creation, upload, and download is scoped to the authenticated user, with a 90-day audit trail.
Conversion Tools MCP
agent · Acme Q3
Run
Convert this vendor XML feed to CSV and give me the download link.
S
conversiontools_task_create
140ms
Conversion Tools agent
Task queued as xml_to_csv, finished in 2.1s. The CSV has 1,204 rows across 9 columns and is ready to download.
Sources: 1 task, xml_to_csv, 1 output file
conversiontoolsmcp
1 task
18:29
Message Claude...

Tools your document agent reaches for on Conversion Tools, scoped per user.

CALL ANY TOOL
Upload source files, create conversion tasks, poll their status, and download results, each call scoped to the authenticated user's Conversion Tools account.
conversiontools_file_upload
Upload file
Upload a source file to Conversion Tools and receive a file ID for use in a conversion task.
Parameters
Name
Type
Required
Description
file_path
string
Required
Local path or URL of the file to upload
filename
string
Optional
Name to record for the uploaded file
conversiontools_task_create
Create conversion task
conversiontools_task_get
Get task status
conversiontools_file_download
Download result
conversiontools_tasks_list
List tasks
conversiontools_website_convert
Convert website
Build your Agent
The same per-user auth pattern wires into every agent framework.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { ChatOpenAI } from "@langchain/openai";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["conversiontoolsmcp"], toolNames: ["conversiontools_file_upload", "conversiontools_task_create", "conversiontools_task_get"] },
pageSize: 100,
});

const agent = createReactAgent({ llm: new ChatOpenAI({ model: "gpt-4o" }), tools });
await agent.invoke({ messages: [{ role: "user", content: "Convert the vendor XML feed to CSV" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const openai = new OpenAI();
const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["conversiontoolsmcp"], toolNames: ["conversiontools_file_upload", "conversiontools_task_create", "conversiontools_task_get"] },
pageSize: 100,
});

const res = await openai.responses.create({
model: "gpt-4o",
input: "Convert this Excel sheet to CSV and return the link",
tools,
});
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const anthropic = new Anthropic();
const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["conversiontoolsmcp"], toolNames: ["conversiontools_file_upload", "conversiontools_task_create", "conversiontools_task_get"] },
pageSize: 100,
});

const msg = await anthropic.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
tools,
messages: [{ role: "user", content: "Convert the PDF invoice to text" }],
});
import { LlmAgent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["conversiontoolsmcp"], toolNames: ["conversiontools_file_upload", "conversiontools_task_create", "conversiontools_task_get"] },
pageSize: 100,
});

const agent = new LlmAgent({ name: "conversiontools_agent", model: "gemini-2.0-flash", tools });
await agent.run("Convert the JSON export to CSV");
Try these prompts
Paste any prompt into your agent to start converting files on Conversion Tools.
Convert data
Copy the prompt
Copied
Convert this vendor XML feed to CSV and give me the download link.
Copy the prompt
Copied
Turn the uploaded Excel workbook into a CSV using the Sheet1 tab.
Copy the prompt
Copied
Convert the JSON export into a flat CSV with comma delimiters.
Documents & pages
Copy the prompt
Copied
Extract the text from this PDF invoice.
Copy the prompt
Copied
Convert the pricing page at this URL to a PDF.
Copy the prompt
Copied
Scrape the product listing page into an HTML file.
Track & retrieve
Copy the prompt
Copied
What is the status of my last conversion task?
Copy the prompt
Copied
List my conversion tasks from the last day that are still running.
Copy the prompt
Copied
Download the output file from the xml_to_csv task.
SEE HOW AUTH WORKS
The user authorises Conversion Tools once with their API token. Every later agent call uses that credential with per-user scope enforced.
1
Authorize
Your user connects
Conversion Tools MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Conversion Tools MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Conversion Tools MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Conversion Tools MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other files and documents connectors.
No items found.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
Other connector libraries treat auth as a demo afterthought. File conversion needs real per-user attribution.
01.
Shared tokens break per-user analytics
A shared Conversion Tools key looks fine in a demo. In production every upload and conversion logs against one account, so you lose track of who ran what and burn a single quota. Scalekit resolves the real user's key per call.
// shared token
convert → service_key

// scalekit
convert → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Conversion Tools today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Conversion Tools as the user or as a shared key?
As the user. Scalekit resolves the authenticated user's own Conversion Tools API key at request time, so every upload, conversion task, and download is attributed to their account rather than a shared service key.
Where is the Conversion Tools API key stored?
In an AES-256 encrypted vault, namespaced per tenant. Keys are fetched only at the moment of a tool call and are revocable from a single dashboard, never exposed to the model or the prompt.
Can I limit what the agent is allowed to do in Conversion Tools?
Yes. Pass a toolNames filter to listScopedTools to expose only the actions you want, for example upload and convert without listing every past task. Scalekit also runs a scope check before each API call.
What happens when a user revokes Conversion Tools access?
The credential is invalidated at the next tool call, which fails closed rather than falling back to a shared key. Other users are unaffected, and the revocation is recorded in the audit trail.
Which conversions can the agent run?
Any conversion Conversion Tools supports, including xml_to_csv, csv_to_xml, excel_to_csv, json_to_csv, pdf_to_text, and website_to_pdf. You choose which to expose by filtering tool names, and each task runs against the authenticated user's own quota.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""conversiontoolsmcp"": {
""url"": ""https://mcp.scalekit.com/conversiontoolsmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.conversiontoolsmcp]
url = ""https://mcp.scalekit.com/conversiontoolsmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""conversiontoolsmcp"": {
""url"": ""https://mcp.scalekit.com/conversiontoolsmcp"",
""type"": ""http""
}
}
}