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.
conversiontoolsmcp_auth_login
Auth login
Login to ConversionTools using OAuth. Opens a browser window for authentication.
Parameters
Name
Type
Required
Description
force
boolean
Optional
Force re-authentication even if already logged in
conversiontoolsmcp_auth_logout
Auth logout
conversiontoolsmcp_auth_status
Auth status
conversiontoolsmcp_convert_file
Convert file
conversiontoolsmcp_find_converter
Find converter
conversiontoolsmcp_get_converter_info
Get converter info
conversiontoolsmcp_list_converters
List converters
conversiontoolsmcp_request_upload_url
Request upload url
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.
GTM and RevOps Teams
Deal room sync
Pulls opportunity context from Salesforce, captures key decisions from Slack, and syncs a running summary to the deal room doc in Google Drive, but only when the deal actually changed.
People Ops and HR teams
Performance review collector
Collects review feedback from Airtable and Google Forms scoped to each manager's direct reports, writes per-employee summaries to Notion, and DMs the manager a Slack digest.
People Ops and HR teams
Offer letter routing agent
Drafts the offer in PandaDoc, blocks on the hiring manager's approval in Slack, then emails the candidate their e-signature link. Every call runs as the recruiter who triggered it, never a shared HR bot.
Support and Ops Teams
Support ticket automation agent
Fetches new Zendesk tickets, drafts a reply from Notion knowledge base articles, digests what it cannot answer to Slack, and archives the rest, acting as the support agent rather than a shared API key.
Test other agents
See the same per-user auth pattern across other files and documents connectors.
GTM
Deal room sync agent
Pull opportunity context from Salesforce, capture decisions from Slack, and keep the Google Drive deal room doc current.
PEOPLE OPS
Performance review collector agent
Collect review feedback from Airtable and Google Forms per manager, summarise each report in Notion, and DM the digest in Slack.
PEOPLE OPS
Offer letter routing agent
Draft the offer in PandaDoc, gate it on hiring manager approval in Slack, then email the candidate their signature link.
SUPPORT
Support ticket automation (Google ADK)
Fetch, annotate, and archive Zendesk tickets with Notion context, digesting anything it cannot answer to Slack.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
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""
}
}
}