t0md ships a remote MCP server. Claude Code, Cursor, Windsurf, OpenClaw, Hermes — any agent that speaks Model Context Protocol can convert PDF, HTML, Word and PowerPoint to Markdown without leaving the chat.
https://t0md.com/mcp — current MCP spec transport. POST your JSON‑RPC, get a single JSON response. Works with Hermes, modern Claude Code, OpenAI‑compatible clients.
https://t0md.com/mcp/sse — original MCP HTTP transport. Kept around for older Claude Code releases, early Cursor/Windsurf builds, and OpenClaw's default.
The current tool. Convert PDF, HTML, Microsoft Word (.docx) or PowerPoint (.pptx) to clean Markdown. Format is auto-detected from filename + content. Returns Markdown inline plus a 10-minute download link.
Deprecated alias kept for backward compatibility — only handles PDF. New integrations should call convert_to_markdown instead.
Out-of-band file upload. Returns an upload_id you can pass to either tool, so large files don't blow your model's output token budget on base64.
EPUB, XLSX, image OCR and URL-to-Markdown are queued. They'll appear here as they ship — no client reconfiguration needed; agents pick them up automatically.
Pick your client. Each snippet uses the recommended transport for that agent.
claude mcp add --transport http t0md https://t0md.com/mcp
Restart Claude Code and it'll see convert_to_markdown in any session. If you're on an older Claude Code release that doesn't support --transport http yet, the legacy SSE form still works: claude mcp add --transport sse t0md https://t0md.com/mcp/sse.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"t0md": {
"url": "https://t0md.com/mcp",
"transport": "streamable-http"
}
}
}
Add to ~/.cursor/mcp.json (Cursor) or your Windsurf MCP config. Either transport works:
{
"mcpServers": {
"t0md": {
"url": "https://t0md.com/mcp",
"transport": "streamable-http"
}
}
}
openclaw mcp set t0md '{"url":"https://t0md.com/mcp/sse"}'
Or, for the streamable-HTTP transport: openclaw mcp set t0md '{"url":"https://t0md.com/mcp","transport":"streamable-http"}'
Add to your Hermes config YAML:
mcp_servers:
t0md:
url: "https://t0md.com/mcp"
tools:
include: [convert_to_markdown]
Hermes uses streamable-HTTP — point it at /mcp, not /mcp/sse. The tools.include allow-list is optional but recommended for safety.
{
"mcp.servers": {
"t0md": {
"url": "https://t0md.com/mcp",
"transport": "streamable-http"
}
}
}
Add to ~/.continue/config.yaml:
mcpServers:
- name: t0md
url: https://t0md.com/mcp
transport: streamable-http
If your client only speaks stdio MCP, the local t0md-mcp binary forwards stdio JSON‑RPC to t0md.com. Build it:
git clone https://github.com/qed-am/t0md.git
cd t0md
go build -o /usr/local/bin/t0md-mcp ./cmd/mcp-server
Then point your client at /usr/local/bin/t0md-mcp as the command.
Free for now while we figure out demand. We may introduce paid tiers for high-volume usage, but if you're calling it a few times a day from any of the clients above, it stays free.