Odel
Doc_Conv — Document to Markdown

Doc_Conv — Document to Markdown

Local
@nicklee002ePythonMITUpdated 1mo ago

Convert PDF/Word/Excel/PowerPoint documents to Markdown, paid in USDC via x402.

docconv-mcp

MCP server for Doc_Conv — convert PDF / Word / Excel / PowerPoint documents to Markdown, paid per conversion with USDC on Base via the x402 protocol (gasless, EIP-3009). No account, no API key: the agent signs a USDC payment and the service returns Markdown.

Why? Feeding formatted files (PDF/PPT/DOCX) straight into an LLM can cost 5–50× more tokens than the same content as Markdown. This lets an agent cheaply pre-convert documents before use.

Tools

  • estimate_conversion(file_path) — free price quote (pages, credits, priceUsdc, jobId, jobToken). No payment, no side effects.
  • convert_document(file_path, max_usdc=1.0, poll_seconds=300) — pays via x402 (rejects if the quote exceeds max_usdc) and converts. Returns inline markdown for text documents, or a downloadUrl (zip) when the document contains images.

Install

Published to PyPI as docconv-mcp. Run with uvx (no install) or pip install docconv-mcp.

Configuration (env)

VariableDescriptionDefault
DOC_CONV_AGENT_PKPrivate key of the agent's Base wallet (must hold USDC). Signs x402 payments. Secret — never commit or share.(required)
DOC_CONV_BASE_URLDoc_Conv service base URL. Override only if self-hosting.https://converter.crepe.fund

The wallet needs USDC on Base; gas is paid by the service's x402 facilitator (the agent needs no ETH). Pricing is by document size: 50 pages = 1 credit = 0.2 USDC (call estimate_conversion for the exact amount).

Claude Desktop / Claude Code (claude_desktop_config.json or .mcp.json)

{
  "mcpServers": {
    "doc-conv": {
      "command": "uvx",
      "args": ["docconv-mcp"],
      "env": { "DOC_CONV_AGENT_PK": "0x<your-agent-wallet-private-key>" }
    }
  }
}

Claude Code one-liner:

claude mcp add doc-conv -- env DOC_CONV_AGENT_PK=0x<key> uvx docconv-mcp

Example

"Convert ~/papers/report.pdf to Markdown."

The agent calls estimate_conversion to see the price (e.g. 0.3 USDC), then convert_document to pay via x402 and return the Markdown. If conversion fails, the paid credit is retained on the payer wallet for reuse.

⚠️ convert_document spends real USDC. Use max_usdc to cap per-call cost.

Links

License

MIT © CREPE Foundation