Need this in your own application? The full Documentize product family for C#/.NET.
Licensing Documentize

为您的 AI 助手提供文档处理超能力

Connect AI agents to Documentize with MCP

The Documentize MCP server exposes all document processing capabilities as tools for AI agents and LLM clients — convert, merge, extract, sign, and more, directly from Claude Desktop, VS Code Copilot, Cursor, or any MCP-compatible host.

🔑 Your MCP key

Requests from an MCP client count against your account the same way work you do on the website does. Without a key the server treats the client as an anonymous visitor and applies the anonymous daily limit.

Clients that support MCP's OAuth flow (protected-resource metadata, RFC 9728) can skip keys entirely — they discover the login page from the server and sign you in through the browser. Keys remain the way to connect scripts and clients without OAuth support.

No account needed to try this out — Create key below issues a free trial key on the spot, at the same limits as a free account. Sign in (top of the page) to list or revoke keys later, or to upgrade to a paid plan for full limits.

Copy this key now — it is stored only as a hash and cannot be shown again.

Paste it into your client config as an Authorization header:

This is a free trial key — it works at the same limits as a free account. Sign in to keep it listed for later, or upgrade to a paid plan for full limits.

Existing keys

LabelKeyCreatedLast used

⚡ Endpoint

The MCP server runs over Streamable HTTP at:

https://api.documentize.app/mcp

The server uses stateful sessions. After the initial initialize request the server returns an Mcp-Session-Id header; include it in every subsequent request. MCP clients handle this automatically.

🔌 Connect from Claude Desktop

Add the server to claude_desktop_config.json (%APPDATA%\Claude\ on Windows, ~/Library/Application Support/Claude/ on macOS):

{
  "mcpServers": {
    "documentize": {
      "type": "http",
      "url": "https://api.documentize.app/mcp",
      "headers": {
        "Authorization": "Bearer dmk_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. The Documentize tools will appear in the tool list. Omit the headers block to connect anonymously — the tools still work, but under the anonymous daily limit.

🔌 Connect from VS Code (GitHub Copilot)

Create .vscode/mcp.json in your workspace (or add to User Settings):

{
  "servers": {
    "documentize": {
      "type": "http",
      "url": "https://api.documentize.app/mcp",
      "headers": {
        "Authorization": "Bearer dmk_your_key_here"
      }
    }
  }
}

Open GitHub Copilot Chat, switch to Agent mode, and click the Tools button — Documentize tools will be listed there.

🔌 Connect from Cursor / Cline

In Cursor, open Settings → MCP and add a new server:

{
  "name": "documentize",
  "type": "http",
  "serverUrl": "https://api.documentize.app/mcp"
}

Cline users can add the same entry under MCP Servers in its settings panel.

⚙️ How tasks work

All processing tools are asynchronous. Each call starts a background job and returns a JSON object with a folderName field — that is your task ID.

  1. Call a processing tool (e.g. ConvertDocument) → receive a task ID (folderName).
  2. Call GetTaskStatus with that task ID and poll until statusCode is 200.
  3. When complete, the response contains a sharedFiles array. Each entry has a fileName (display name) and an uploadFileName (a pre-signed S3 download URL). Open any uploadFileName URL in your browser to download the result file.
// 1. Start a task
ConvertDocument(fileUrl: "C:\\Users\\Alice\\Documents\\report.pdf",
                inputType: "pdf", outputType: "docx")
// → { "folderName": "abc123", "statusCode": 204 }

// 2. Poll until done (statusCode 204/202/203 = still processing)
GetTaskStatus(taskId: "abc123")
// → {
//     "statusCode": 200,
//     "sharedFiles": [
//       {
//         "fileName": "report.docx",
//         "uploadFileName": "https://s3.amazonaws.com/...presigned-url..."
//       }
//     ]
//   }

// 3. Download the result
// Open uploadFileName in a browser, or tell the agent:
//   "Download https://s3.amazonaws.com/...presigned-url... and save it as report.docx"

Use GetNextAppSuggestions after any operation to get recommended follow-up tools based on the output format.

📂 Providing your files

Most users are pointing the agent at a file on their own machine, so lead with that — a plain local path or a file:// URI works directly, no upload step required. The server also accepts remote URLs when that's where the file actually lives.

Local file path (most common)

File paths are resolved by the server, not by the client. They work whenever the MCP server can see the path you give it — Documentize SelfHost, a local development instance, or an agent running alongside the server. Just point it at the file:

// Windows absolute path
ConvertDocument(fileUrl: "C:\\Users\\Alice\\Documents\\report.pdf",
                inputType: "pdf", outputType: "docx")

// macOS / Linux absolute path
ConvertDocument(fileUrl: "/home/alice/documents/report.pdf",
                inputType: "pdf", outputType: "docx")

You can also use the standard file:// URI format:

// file:// URI — Windows
ConvertDocument(fileUrl: "file:///C:/Users/Alice/Documents/report.pdf",
                inputType: "pdf", outputType: "docx")

// file:// URI — macOS / Linux
ConvertDocument(fileUrl: "file:///home/alice/documents/report.pdf",
                inputType: "pdf", outputType: "docx")

Remote URL

Pass any publicly accessible https:// or http:// URL instead, and the server fetches the file automatically before processing.

ConvertDocument(fileUrl: "https://example.com/report.pdf",
                inputType: "pdf", outputType: "docx")

Supported file-source schemes

The server recognizes these URL schemes for fileUrl / fileUrls — anything else is rejected before a task is started:

private static readonly HashSet<string> SupportedSchemes = new(StringComparer.OrdinalIgnoreCase)
{
    "http", "https", "ftp", "ftps", "file", "local"
};
  • file / local — a path on disk, either as a bare path (C:\..., /home/...) or a file:// URI.
  • http / https — a remote URL the server downloads before processing.
  • ftp / ftps — a file served from an FTP/FTPS host.

Practical agent prompts

Refer to files the way you naturally would — a path on your machine works directly:

// In Claude Desktop or Cursor chat:
"Convert my file C:\Users\Alice\Downloads\invoice.pdf to Word format"

"Compress file:///home/alice/documents/thesis.pdf and send me the download link"

"Extract all the text from /home/alice/documents/Q1.pdf"

If the file isn't local — it's already hosted somewhere — pass its URL instead: "Convert https://example.com/invoice.pdf to Word format".

👤 Accounts, limits & quotas

Usage is metered per account, and an MCP client is metered exactly like the website: one operation = one processing call, whatever the file count. Checking task status and asking about your own account are free.

TierWhoOperations / day
anonymousNo Authorization header3 — enough to try a tool, not to work
freeRegistered account, no subscription5, resets midnight UTC
paidActive subscriptionUnlimited — the tier built for bulk and unattended agents

Three tools let an agent manage this itself. None of them consume quota:

  • GetAccountStatus — current tier, plan, operations used and remaining, reset time, and the safe parallelism for batch work.
  • GetSignInInstructions — the exact steps to register, issue a key, and configure the client. The agent relays these to you; it cannot sign in on your behalf.
  • SignOut — how to disconnect. Pass revokeKey: true to also revoke the key this connection uses (permanent, and it breaks every client sharing that key).

A healthy, signed-in connection looks like this:

GetAccountStatus()
// → {
//     "ok": true,
//     "account": {
//       "authenticated": true,
//       "authMethod": "mcp_key",
//       "credentialRejected": false,
//       "tier": "paid",
//       "plan": "Business",
//       "unlimited": true,
//       "maxParallelRequests": 8
//     },
//     "advice": "Unlimited plan. Mass processing is supported; use ProcessBatch
//                with up to 8 parallel requests."
//   }

A free account running low looks like this:

GetAccountStatus()
// → {
//     "account": {
//       "authenticated": true, "tier": "free", "unlimited": false,
//       "used": 4, "limit": 5, "remaining": 1,
//       "resetsAtUtc": "2026-08-28T00:00:00Z",
//       "maxParallelRequests": 2
//     },
//     "advice": "1 of 5 operations left today (resets 2026-08-28 00:00:00Z)..."
//   }

When a call is refused

Refusals come back as a structured object with a machine-readable error and a nextStep for the agent to follow, so it stops instead of retrying blindly. Each code means something different:

errorWhat happenedWhat to do
credential_rejectedThe key in your client config was revoked, deleted or mistyped, and the connection silently fell back to anonymous.Issue a new key above, replace it in the config, restart the client. Retrying will not help.
auth_requiredAnonymous allowance spent.Sign in and add a key — the agent can read you the steps.
quota_exceededSigned in, but out of operations for today.Wait for retryAfterUtc (midnight UTC), or subscribe.
billing_unavailableSubscription service unreachable.Nothing — advisory only. The work was still accepted.
// Example refusal — note that it is explicitly not retryable
CompressDocument(fileUrl: "C:\\Users\\Alice\\Documents\\big.pdf")
// → {
//     "ok": false,
//     "error": "credential_rejected",
//     "statusCode": 401,
//     "message": "The Documentize API key in this MCP client's configuration was
//                 refused — it has been revoked, deleted, or was copied incorrectly...",
//     "nextStep": "Tell the user to sign in ... issue a new one, and replace the value
//                  in this MCP client's configuration (then restart the client).",
//     "retryable": false
//   }

📦 Mass processing

A subscription removes the daily cap, so the real limit on bulk work is round trips: pushing 200 files through ConvertDocument costs 200 turns of the agent's attention, and any one of them can derail the run. Two tools collapse that into two calls.

  1. ProcessBatch — one operation, many files. Submits them concurrently server-side (8 at a time on an unlimited plan, 2 otherwise), up to 200 files per call, and returns one task ID per file.
  2. WaitForTasks — polls all of those task IDs server-side and returns every download link at once. Free, and it hands back any still-pending IDs at the timeout so a long run resumes instead of restarting.

ListBatchOperations returns the supported operation names and their parameters — the agent should call it rather than guess.

// 1. Submit 3 files (a real batch would be hundreds)
ProcessBatch(operation: "convert",
             fileUrls: "C:\\Docs\\a.pdf,C:\\Docs\\b.pdf,C:\\Docs\\c.pdf",
             parametersJson: "{\"inputType\":\"pdf\",\"outputType\":\"docx\"}")
// → {
//     "ok": true, "operation": "convert",
//     "requested": 3, "submittedCount": 3, "failedCount": 0,
//     "parallelism": 8,
//     "taskIds": ["abc123", "def456", "ghi789"],
//     "nextStep": "Call WaitForTasks with taskIds to collect the download links..."
//   }

// 2. Collect every result in one call
WaitForTasks(taskIds: "abc123,def456,ghi789", timeoutSeconds: 300)
// → {
//     "ok": true, "total": 3, "completedCount": 3, "pendingCount": 0,
//     "completed": [
//       { "taskId": "abc123",
//         "files": [{ "fileName": "a.docx",
//                     "uploadFileName": "https://s3...presigned..." }] },
//       ...
//     ]
//   }

Prompts that take this path:

"Convert all these PDFs to Word: <list of 40 local file paths>"

"OCR every scan in this list and give me the searchable PDFs"

"Compress these 120 invoices at high compression and collect the links"

What batching does and does not change

  • Every file is still metered individually. A batch of 50 costs 50 operations — it saves round trips, it is not a way around the free tier.
  • A batch that cannot finish is refused before anything runs. Ask for 40 files with 5 operations left and you get insufficient_quota carrying remaining and retryAfterUtc — and not one file is processed. Half-finished bulk work is worse than none.
  • One bad file never aborts the batch. An unreachable URL comes back as a single items[].status = "failed" entry; the rest proceed.
  • Batching is one operation applied to many files. Merging (many files → one result) is not batchable — use MergeDocuments.

🧰 Available Tools

Document Operations

  • ConvertDocument — Convert between PDF, DOCX, PPTX, HTML, JPG, PNG, and more.
  • MergeDocuments — Combine multiple files into a single document.
  • SplitDocument — Split a PDF by page ranges, bookmarks, or fixed size.
  • CompressDocument — Reduce PDF file size (low / medium / high).
  • RotateDocument — Rotate all or selected pages by 90°, 180°, or 270°.
  • ResizeDocument — Resize PDF pages to A4, Letter, A3, etc.
  • RemovePages — Delete specific pages from a PDF.

Security

  • LockDocument — Encrypt a PDF with a password.
  • UnlockDocument — Remove a password from a protected PDF.
  • SignDocument — Digitally sign a document.
  • VerifySignature — Verify existing digital signatures.

Content Extraction

  • ExtractText — Pull all text from a document (Pure or Raw mode).
  • ExtractImages — Export all embedded images.
  • ExtractMetadata — Read author, title, creation date, keywords, etc.
  • ExtractFormData — Export data from fillable PDF form fields.
  • ParseDocument — Parse annotations, bookmarks, tables, and more.
  • SearchInDocument — Find text occurrences inside a document.
  • MakeSearchable — Add a text layer to a scanned PDF via OCR.
  • RunOcr — Run OCR on a scanned file or image to produce a searchable PDF.

Form & Structure

  • FlattenDocument — Flatten form fields and annotations (make non-editable).
  • AddTable — Embed a table from an Excel or CSV file into a PDF.
  • AddToc — Add a table of contents to a PDF based on its headings.

AI-Powered

  • GenerateTableOfContents — AI-structured TOC from document headings.
  • GenerateAbstract — Summarize a document (academic / professional / casual style).
  • GenerateChecklist — Extract tasks, requirements, or compliance items from a document.
  • AnalyzeResume — Extract, analyze, or compare a CV against a job description.
  • ChatWithDocument — Ask questions about document content (RAG).
  • GenerateSvg — Create an SVG illustration from a text prompt.
  • AddIllustrations — Generate AI illustrations and embed them in a document.

Bulk Processing

  • ProcessBatch — Apply one operation to up to 200 files in a single call.
  • WaitForTasks — Wait for many tasks and return all download links at once.
  • ListBatchOperations — List the operations ProcessBatch accepts and their parameters.

Account & Quota

  • GetAccountStatus — Tier, plan, operations remaining today, safe parallelism.
  • GetSignInInstructions — How to register, issue a key, and configure the client.
  • SignOut — Disconnect, and optionally revoke this connection's key.

Status & Utility

  • GetTaskStatus — Check task progress; returns download link when ready.
  • GetNextAppSuggestions — Get recommended follow-up operations for a given output.

📋 Notes

  • File sources can be a local path (C:\file.pdf, /home/user/file.pdf), a file:// URI, or a public https:// URL. Supported schemes: http, https, ftp, ftps, file, local.
  • For MergeDocuments, pass file URLs as a comma-separated string.
  • Status codes: 202/203 = still processing, 200 = done, 500 = error.
  • MCP protocol version reported by the server: 2025-11-25.
  • OAuth: the server publishes protected-resource metadata at /.well-known/oauth-protected-resource/mcp and answers unauthorized requests with WWW-Authenticate: Bearer resource_metadata="…", so clients implementing MCP authorization sign you in through the browser.
  • Authentication is optional but recommended: send Authorization: Bearer dmk_… to have calls counted against your account instead of the anonymous limit. Keys are created above, shown once, and can be revoked at any time.

Quick Reference

MCP Endpoint

https://api.documentize.app/mcp

claude_desktop_config.json

{
  "mcpServers": {
    "documentize": {
      "type": "http",
      "url": "https://api.documentize.app/mcp"
    }
  }
}

.vscode/mcp.json

{
  "servers": {
    "documentize": {
      "type": "http",
      "url": "https://api.documentize.app/mcp"
    }
  }
}

Key Facts

  • Protocol: MCP 2025-11-25 (Streamable HTTP)
  • Sessions: stateful — Mcp-Session-Id header required after init
  • Tasks are async — poll GetTaskStatus; download via sharedFiles[].uploadFileName (S3 pre-signed URL)
  • File inputs accept local paths / file:// URIs (most common) or public URLs — schemes: http, https, ftp, ftps, file, local
  • Auth: optional Authorization: Bearer dmk_… key ties usage to your account
  • Metering: 1 operation = 1 processing call; status checks and account tools are free

Common Cases

What to type in the agent's chat. It picks the tools itself.

One file

"Convert C:\Docs\a.pdf
 to Word"

Agent calls ConvertDocument, then GetTaskStatus until done, then gives you the link.

Many files

"OCR all 60 of these
 scans and give me the
 searchable PDFs"

ProcessBatch + WaitForTasks — two calls, not 120. Needs an unlimited plan to be practical.

Before a big job

"How many Documentize
 operations do I have
 left today?"

GetAccountStatus — free, and it reports the safe parallelism too.

Chained work

"Convert this to PDF,
 compress it high, then
 password-protect it"

Three operations, charged as three. The agent feeds each result URL into the next step.

Setting up

"How do I sign in to
 Documentize?"

GetSignInInstructions — the agent reads you the steps; the login itself happens in your browser.

Edge Cases

The situations that actually cost people an afternoon.

Tools work, but you are told to sign up
You are connected anonymously. Check the headers block really is in the config — many clients silently ignore a malformed one.
credential_rejected
Your key was revoked or mistyped and the connection quietly dropped to anonymous. Issue a new key, replace it, restart the client — config is read at startup. Retrying changes nothing.
Key edited but nothing changed
Same cause: the client is still holding the old session. Restart it, then ask the agent to run GetAccountStatus to confirm the tier.
Batch refused, nothing processed
insufficient_quota — the batch needed more operations than you have left, so none ran. Submit remaining files now, or subscribe.
Quota gone faster than expected
Each file in a batch is one operation, and each step of a chained job is another. The website shares the same daily counter.
Task never reaches 200
204/203 mean it is still running — large scans and AI tools can take minutes. Call WaitForTasks again with the pending IDs; waiting is never charged.
Download link stopped working
uploadFileName is a pre-signed URL and expires. Re-run GetTaskStatus for a fresh one.
Local file path fails
Paths are resolved by the server. Against the hosted endpoint your disk is not visible — use a public URL, or run SelfHost.
Merging a folder
Not a batch: ProcessBatch is one operation per file. MergeDocuments takes the comma-separated list instead.
More than 200 files
Split into chunks of 200. The agent can loop ProcessBatch — one chunk per call.
Two agents on one account
They share the daily counter, so a batch can be refused mid-run. Submitted files still come back with their task IDs — nothing you were charged for is lost.
Key leaked
Revoke it here, or ask the agent for SignOut with revokeKey: true. Every client using that key drops to anonymous immediately.
为您的 AI 助手提供文档处理超能力

通过自然语言,将 Claude、Cursor 或任何兼容 MCP 的客户端连接到 28+ 文档工具。

将 Claude、Cursor 或任何兼容 MCP 的客户端连接至 28+ 文档工具。转换、压缩、签名、提取文本、运行 OCR,并生成 AI 摘要——全部通过自然语言完成。

Documentize MCP 工作原理

1. 连接您的 MCP 客户端

将 Documentize MCP 服务器添加到 Claude Desktop、Cursor、VS Code 或任何兼容 MCP 的客户端。仅需一行配置。

2. 初始化会话

您的客户端自动发送初始化请求并获取会话 ID。所有后续调用都使用此会话进行跟踪(非常适合基于使用量的变现)。

3. 自然提问

“将此 PDF 转换为 DOCX” — 您的 AI 助手使用您的文档调用相应工具。无需 API 文档。

4. 获取结果

服务器异步处理,轮询状态,并将转换后的文档或提取的数据直接交付给您的 AI 助手。

FAQs

模型上下文协议(MCP)是一项开放标准,允许 Claude、Cursor 等 AI 助手直接调用工具。无需编写 API 代码,只需自然地提问即可。Documentize 提供了一个 MCP 服务器,内置 28 种文档处理工具,您的 AI 可以立即使用。
有状态模式支持每个会话的跟踪、使用计量和客户端隔离——这对实现盈利至关重要。每个客户端在初始化后会获得唯一的会话 ID,您可以依据该 ID 按使用量计费、强制速率限制或跟踪客户活动。您的 AI 客户端会自动处理会话 ID。
是的!使用 file:// URI(例如 file:///home/user/document.pdf)。您的 MCP 客户端会发送文件路径,Documentize 会直接从本地文件系统读取文件。非常适合不应上传到云端的敏感文档。
Claude Desktop(带代理模式)、Cursor IDE、带 Copilot 的 VS Code、Continue.dev,以及任何兼容 MCP 的客户端。我们还提供直接的 HTTP 接口以便自定义集成。
Documentize 在自行托管时运行在您自己的基础设施上,或在我们的欧盟服务器上运行云版。对于 MCP 服务器,您可以选择:自行托管以实现完整的数据控制,或使用我们的云 API 以获得便利。文档数据绝不会被用于训练 AI 模型。
Documentize 提供处理引擎。您可以添加身份验证中间件、使用跟踪和计费。状态会话模型为您提供可关联到 API 密钥或用户账户的 Mcp-Session-Id 标头。我们提供商业再分发的许可。

AI MCP 服务器

⬡

深度分层 SVG 架构

每个 SVG 由背景层、中景层和前景层组成,具备 Z-index 排序和依赖追踪。AI 管理层级关系,并自动移除表现不佳的层,以保持输出的整洁和连贯。

↻

迭代式 SVG 编辑

通过持续的 AI 对话改进和修改 SVG 设计。

✦

快速矢量创建

在几秒钟内创建图标、徽标和插图。

简洁,基于使用量的定价

免费套餐

$0
  • 每月 50 次文档操作
Choose 免费套餐

高级计划

$4/月(按年计费)
  • 完整访问所有 Documentize AI 应用程序
  • 扩展的每日处理限制
  • 优先处理和免费支持
Choose 高级计划

高级计划

每月7美元
  • 对 Documentize 应用程序的完整访问权限
  • 更高级的工具和功能
  • 扩展文件处理限制
  • 免费支持
Choose 高级计划