FastOCR
OCR scanned PDFs and images into text or searchable PDFs with the FastOCR API.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
fastocr-mcpclaude mcp add fastocr -e 'FASTOCR_API_KEY=<your fastocr_api_key>' -- uvx fastocr-mcp==0.2.0
{
"mcpServers": {
"fastocr": {
"command": "uvx",
"args": [
"fastocr-mcp==0.2.0"
],
"env": {
"FASTOCR_API_KEY": "<your fastocr_api_key>"
}
}
}
}
Environment variables
FASTOCR_API_KEYrequired secret FastOCR API key from https://fastocr.org/developers/keys
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
FastOCR MCP server
OCR any scanned PDF or image from Claude, Cursor and other MCP clients, in 100+ languages. fastocr.org · Docs · Get an API key
An MCP server for the FastOCR Document OCR API. It lets Claude Desktop, Claude Code, Cursor and other MCP clients OCR a local scanned PDF or image and get back its text or a searchable PDF.
- PDF files up to 1 GiB, and PNG, JPG, JPEG, GIF, WebP and BMP images up to 20 MiB; 100+ languages.
- Built on the official
fastocr-sdkand the official MCP Python SDK. Runs locally over stdio; your files go only to the FastOCR API.
A real scanned page and the first lines of the text FastOCR returned for it, unedited.
API reference and guides: **https://fastocr.org/docs**
Get an API key
Any signed-in FastOCR account can create an API key and start right away.
- Sign in and create an API key in the developer console. You accept the API terms with your first key.
- Set the key as
FASTOCR_API_KEYin your MCP client config (see below). - When you need more than the free pages, buy a prepaid API page pack by card in the developer console.
Each account gets 50 free document pages per month.
Install
With uv there is nothing to install; MCP clients run it with
uvx fastocr-mcp. Or install it with pip and run fastocr-mcp:
pip install fastocr-mcp
Python 3.10 or newer. The server reads the key from FASTOCR_API_KEY.
Configure your MCP client
Claude Code
claude mcp add fastocr -e FASTOCR_API_KEY=your_api_key -- uvx fastocr-mcp
Claude Desktop
Add this to claude_desktop_config.json (Settings > Developer > Edit Config), then restart
Claude Desktop:
{
"mcpServers": {
"fastocr": {
"command": "uvx",
"args": ["fastocr-mcp"],
"env": { "FASTOCR_API_KEY": "your_api_key" }
}
}
}
Cursor
Add the same block to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"fastocr": {
"command": "uvx",
"args": ["fastocr-mcp"],
"env": { "FASTOCR_API_KEY": "your_api_key" }
}
}
}
If you installed with pip, use "command": "fastocr-mcp" and "args": [].
Tools
| Tool | What it does |
|---|---|
ocr_file(path, output="text", output_path=None) | Uploads a local PDF or image, runs OCR and waits up to 45 seconds; a larger document returns its id for get_document. output="text" returns the text (text over 20,000 characters is cut, and the full text is saved to output_path or <file>.ocr.txt next to the input file). output="pdf" saves a searchable PDF to output_path or <file>.searchable.pdf. |
ocr_pdf(path, output="text", output_path=None) | The same tool as ocr_file under its earlier name, kept so existing setups keep working. |
get_document(document_id, output="status", output_path=None) | Status and page counts of a document; with output="text" or "pdf", waits up to 45 seconds and fetches the finished result. Fetching a result again costs no pages. |
list_documents(limit=20) | The most recent documents in the account, newest first. |
delete_document(document_id) | Deletes a document and its stored files on FastOCR. Local files are not touched. |
Try asking: "OCR ~/Downloads/scanned-contract.pdf and summarize the termination clause", "Read the text in /Users/me/Desktop/receipt.jpg" or "Make a searchable copy of /Users/me/archive/1998-letters.pdf".
Every processed page uses one page of the account's API allowance; an image is one page. A document that runs out
of pages fails with buy_pages; the tool says so and links to the
developer console.
Errors
Tool errors are written for the agent to act on: a rejected key, an account out of pages
(buy_pages), too many documents processing at once (concurrency_limit), a missing file, or an
unsupported file type. Each message says what to do next. Error codes are listed in the
API docs.
Configuration
| Variable | Purpose |
|---|---|
FASTOCR_API_KEY | Required. Your API key. |
FASTOCR_BASE_URL | Optional. Overrides https://api.fastocr.org. |
Links
- Docs: https://fastocr.org/docs
- API keys and page packs: https://fastocr.org/developers/keys
- Python SDK: https://github.com/fastocr-org/fastocr-python
- Support: support@fastocr.org
License
MIT
Frequently asked questions
What is FastOCR?
OCR scanned PDFs and images into text or searchable PDFs with the FastOCR API.
How do I install FastOCR?
It runs on your machine. In Claude Code: claude mcp add fastocr -e 'FASTOCR_API_KEY=<your fastocr_api_key>' -- uvx fastocr-mcp==0.2.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does FastOCR need an API key?
Yes. It expects FASTOCR_API_KEY, which you set in its configuration.
Is FastOCR open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains FastOCR?
It is published by fastocr-org. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.