fastocr-mcp 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fastocr_mcp-0.1.0/.gitignore +13 -0
- fastocr_mcp-0.1.0/CHANGELOG.md +13 -0
- fastocr_mcp-0.1.0/LICENSE +21 -0
- fastocr_mcp-0.1.0/PKG-INFO +172 -0
- fastocr_mcp-0.1.0/README.md +135 -0
- fastocr_mcp-0.1.0/pyproject.toml +80 -0
- fastocr_mcp-0.1.0/server.json +32 -0
- fastocr_mcp-0.1.0/src/fastocr_mcp/__init__.py +6 -0
- fastocr_mcp-0.1.0/src/fastocr_mcp/__main__.py +3 -0
- fastocr_mcp-0.1.0/src/fastocr_mcp/_version.py +1 -0
- fastocr_mcp-0.1.0/src/fastocr_mcp/py.typed +0 -0
- fastocr_mcp-0.1.0/src/fastocr_mcp/server.py +329 -0
- fastocr_mcp-0.1.0/tests/server.schema.json +574 -0
- fastocr_mcp-0.1.0/tests/test_metadata.py +28 -0
- fastocr_mcp-0.1.0/tests/test_server.py +255 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this server are listed here. The format follows
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow
|
|
5
|
+
[semantic versioning](https://semver.org).
|
|
6
|
+
|
|
7
|
+
## [0.1.0] - 2026-10-24
|
|
8
|
+
|
|
9
|
+
First release. A stdio MCP server for the FastOCR Document OCR API with the tools
|
|
10
|
+
`ocr_file` (a local PDF, PNG, JPG, JPEG, GIF, WebP or BMP file), `get_document`,
|
|
11
|
+
`list_documents` and `delete_document`. `ocr_pdf` is the same tool as `ocr_file` under its
|
|
12
|
+
earlier name. Needs `fastocr-sdk` 0.2.0 or later for image uploads. API requests send the
|
|
13
|
+
User-Agent `fastocr-mcp/<version>` followed by the SDK's own.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 FastOCR
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: fastocr-mcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: MCP server for the FastOCR Document OCR API: OCR scanned PDFs into text or searchable PDFs from Claude, Cursor and other MCP clients.
|
|
5
|
+
Project-URL: Homepage, https://fastocr.org
|
|
6
|
+
Project-URL: Documentation, https://fastocr.org/docs
|
|
7
|
+
Project-URL: Repository, https://github.com/fastocr-org/fastocr-mcp
|
|
8
|
+
Project-URL: Changelog, https://github.com/fastocr-org/fastocr-mcp/blob/main/CHANGELOG.md
|
|
9
|
+
Project-URL: Issues, https://github.com/fastocr-org/fastocr-mcp/issues
|
|
10
|
+
Author-email: FastOCR <support@fastocr.org>
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: ai-agents,fastocr,mcp,model-context-protocol,ocr,pdf,searchable-pdf
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Image Recognition
|
|
25
|
+
Classifier: Typing :: Typed
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Requires-Dist: fastocr-sdk<0.3,>=0.2.0
|
|
28
|
+
Requires-Dist: mcp<3,>=2.3.0
|
|
29
|
+
Provides-Extra: dev
|
|
30
|
+
Requires-Dist: jsonschema>=4.20.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest>=7.4.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: respx>=0.21.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: ruff>=0.6; extra == 'dev'
|
|
36
|
+
Description-Content-Type: text/markdown
|
|
37
|
+
|
|
38
|
+
<a href="https://fastocr.org"><img src="https://raw.githubusercontent.com/fastocr-org/fastocr-mcp/main/docs/images/logo.png" alt="FastOCR" width="56" height="56"></a>
|
|
39
|
+
|
|
40
|
+
# FastOCR MCP server
|
|
41
|
+
|
|
42
|
+
OCR any scanned PDF or image from Claude, Cursor and other MCP clients, in 100+ languages. **[fastocr.org](https://fastocr.org)** · [Docs](https://fastocr.org/docs) · [Get an API key](https://fastocr.org/developers/keys)
|
|
43
|
+
|
|
44
|
+
<!-- mcp-name: io.github.fastocr-org/fastocr-mcp -->
|
|
45
|
+
|
|
46
|
+
[](https://pypi.org/project/fastocr-mcp/)
|
|
47
|
+
[](LICENSE)
|
|
48
|
+
|
|
49
|
+
An [MCP](https://modelcontextprotocol.io) server for the
|
|
50
|
+
[FastOCR Document OCR API](https://fastocr.org/docs). It lets Claude Desktop,
|
|
51
|
+
Claude Code, Cursor and other MCP clients OCR a local scanned PDF or image and get
|
|
52
|
+
back its text or a searchable PDF.
|
|
53
|
+
|
|
54
|
+
- PDF files up to 1 GiB, and PNG, JPG, JPEG, GIF, WebP and BMP images up to 20 MiB; 100+ languages.
|
|
55
|
+
- Built on the official [`fastocr-sdk`](https://pypi.org/project/fastocr-sdk/) and the
|
|
56
|
+
official MCP Python SDK. Runs locally over stdio; your files go only to the FastOCR API.
|
|
57
|
+
|
|
58
|
+

|
|
59
|
+
|
|
60
|
+
A real scanned page and the first lines of the text FastOCR returned for it, unedited.
|
|
61
|
+
|
|
62
|
+
API reference and guides: **https://fastocr.org/docs**
|
|
63
|
+
|
|
64
|
+
## Get an API key
|
|
65
|
+
|
|
66
|
+
Any signed-in FastOCR account can create an API key and start right away.
|
|
67
|
+
|
|
68
|
+
1. Sign in and create an API key in the
|
|
69
|
+
[developer console](https://fastocr.org/developers/keys). You accept the
|
|
70
|
+
[API terms](https://fastocr.org/api-terms) with your first key.
|
|
71
|
+
2. Set the key as `FASTOCR_API_KEY` in your MCP client config (see below).
|
|
72
|
+
3. When you need more than the free pages, buy a prepaid API page pack by card in the
|
|
73
|
+
[developer console](https://fastocr.org/developers/keys#buy-api-pages).
|
|
74
|
+
|
|
75
|
+
Each account gets 50 free document pages per month.
|
|
76
|
+
|
|
77
|
+
## Install
|
|
78
|
+
|
|
79
|
+
With [uv](https://docs.astral.sh/uv/) there is nothing to install; MCP clients run it with
|
|
80
|
+
`uvx fastocr-mcp`. Or install it with pip and run `fastocr-mcp`:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install fastocr-mcp
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Python 3.10 or newer. The server reads the key from `FASTOCR_API_KEY`.
|
|
87
|
+
|
|
88
|
+
## Configure your MCP client
|
|
89
|
+
|
|
90
|
+
### Claude Code
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
claude mcp add fastocr -e FASTOCR_API_KEY=your_api_key -- uvx fastocr-mcp
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Claude Desktop
|
|
97
|
+
|
|
98
|
+
Add this to `claude_desktop_config.json` (Settings > Developer > Edit Config), then restart
|
|
99
|
+
Claude Desktop:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"fastocr": {
|
|
105
|
+
"command": "uvx",
|
|
106
|
+
"args": ["fastocr-mcp"],
|
|
107
|
+
"env": { "FASTOCR_API_KEY": "your_api_key" }
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Cursor
|
|
114
|
+
|
|
115
|
+
Add the same block to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (one project):
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"mcpServers": {
|
|
120
|
+
"fastocr": {
|
|
121
|
+
"command": "uvx",
|
|
122
|
+
"args": ["fastocr-mcp"],
|
|
123
|
+
"env": { "FASTOCR_API_KEY": "your_api_key" }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
If you installed with pip, use `"command": "fastocr-mcp"` and `"args": []`.
|
|
130
|
+
|
|
131
|
+
## Tools
|
|
132
|
+
|
|
133
|
+
| Tool | What it does |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `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`. |
|
|
136
|
+
| `ocr_pdf(path, output="text", output_path=None)` | The same tool as `ocr_file` under its earlier name, kept so existing setups keep working. |
|
|
137
|
+
| `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. |
|
|
138
|
+
| `list_documents(limit=20)` | The most recent documents in the account, newest first. |
|
|
139
|
+
| `delete_document(document_id)` | Deletes a document and its stored files on FastOCR. Local files are not touched. |
|
|
140
|
+
|
|
141
|
+
Try asking: *"OCR ~/Downloads/scanned-contract.pdf and summarize the termination clause"*,
|
|
142
|
+
*"Read the text in /Users/me/Desktop/receipt.jpg"* or
|
|
143
|
+
*"Make a searchable copy of /Users/me/archive/1998-letters.pdf"*.
|
|
144
|
+
|
|
145
|
+
Every processed page uses one page of the account's API allowance; an image is one page. A document that runs out
|
|
146
|
+
of pages fails with `buy_pages`; the tool says so and links to the
|
|
147
|
+
[developer console](https://fastocr.org/developers/keys#buy-api-pages).
|
|
148
|
+
|
|
149
|
+
## Errors
|
|
150
|
+
|
|
151
|
+
Tool errors are written for the agent to act on: a rejected key, an account out of pages
|
|
152
|
+
(`buy_pages`), too many documents processing at once (`concurrency_limit`), a missing file, or an
|
|
153
|
+
unsupported file type. Each message says what to do next. Error codes are listed in the
|
|
154
|
+
[API docs](https://fastocr.org/docs/documents).
|
|
155
|
+
|
|
156
|
+
## Configuration
|
|
157
|
+
|
|
158
|
+
| Variable | Purpose |
|
|
159
|
+
|---|---|
|
|
160
|
+
| `FASTOCR_API_KEY` | Required. Your API key. |
|
|
161
|
+
| `FASTOCR_BASE_URL` | Optional. Overrides `https://api.fastocr.org`. |
|
|
162
|
+
|
|
163
|
+
## Links
|
|
164
|
+
|
|
165
|
+
- Docs: https://fastocr.org/docs
|
|
166
|
+
- API keys and page packs: https://fastocr.org/developers/keys
|
|
167
|
+
- Python SDK: https://github.com/fastocr-org/fastocr-python
|
|
168
|
+
- Support: support@fastocr.org
|
|
169
|
+
|
|
170
|
+
## License
|
|
171
|
+
|
|
172
|
+
MIT
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
<a href="https://fastocr.org"><img src="https://raw.githubusercontent.com/fastocr-org/fastocr-mcp/main/docs/images/logo.png" alt="FastOCR" width="56" height="56"></a>
|
|
2
|
+
|
|
3
|
+
# FastOCR MCP server
|
|
4
|
+
|
|
5
|
+
OCR any scanned PDF or image from Claude, Cursor and other MCP clients, in 100+ languages. **[fastocr.org](https://fastocr.org)** · [Docs](https://fastocr.org/docs) · [Get an API key](https://fastocr.org/developers/keys)
|
|
6
|
+
|
|
7
|
+
<!-- mcp-name: io.github.fastocr-org/fastocr-mcp -->
|
|
8
|
+
|
|
9
|
+
[](https://pypi.org/project/fastocr-mcp/)
|
|
10
|
+
[](LICENSE)
|
|
11
|
+
|
|
12
|
+
An [MCP](https://modelcontextprotocol.io) server for the
|
|
13
|
+
[FastOCR Document OCR API](https://fastocr.org/docs). It lets Claude Desktop,
|
|
14
|
+
Claude Code, Cursor and other MCP clients OCR a local scanned PDF or image and get
|
|
15
|
+
back its text or a searchable PDF.
|
|
16
|
+
|
|
17
|
+
- PDF files up to 1 GiB, and PNG, JPG, JPEG, GIF, WebP and BMP images up to 20 MiB; 100+ languages.
|
|
18
|
+
- Built on the official [`fastocr-sdk`](https://pypi.org/project/fastocr-sdk/) and the
|
|
19
|
+
official MCP Python SDK. Runs locally over stdio; your files go only to the FastOCR API.
|
|
20
|
+
|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
A real scanned page and the first lines of the text FastOCR returned for it, unedited.
|
|
24
|
+
|
|
25
|
+
API reference and guides: **https://fastocr.org/docs**
|
|
26
|
+
|
|
27
|
+
## Get an API key
|
|
28
|
+
|
|
29
|
+
Any signed-in FastOCR account can create an API key and start right away.
|
|
30
|
+
|
|
31
|
+
1. Sign in and create an API key in the
|
|
32
|
+
[developer console](https://fastocr.org/developers/keys). You accept the
|
|
33
|
+
[API terms](https://fastocr.org/api-terms) with your first key.
|
|
34
|
+
2. Set the key as `FASTOCR_API_KEY` in your MCP client config (see below).
|
|
35
|
+
3. When you need more than the free pages, buy a prepaid API page pack by card in the
|
|
36
|
+
[developer console](https://fastocr.org/developers/keys#buy-api-pages).
|
|
37
|
+
|
|
38
|
+
Each account gets 50 free document pages per month.
|
|
39
|
+
|
|
40
|
+
## Install
|
|
41
|
+
|
|
42
|
+
With [uv](https://docs.astral.sh/uv/) there is nothing to install; MCP clients run it with
|
|
43
|
+
`uvx fastocr-mcp`. Or install it with pip and run `fastocr-mcp`:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install fastocr-mcp
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Python 3.10 or newer. The server reads the key from `FASTOCR_API_KEY`.
|
|
50
|
+
|
|
51
|
+
## Configure your MCP client
|
|
52
|
+
|
|
53
|
+
### Claude Code
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
claude mcp add fastocr -e FASTOCR_API_KEY=your_api_key -- uvx fastocr-mcp
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Claude Desktop
|
|
60
|
+
|
|
61
|
+
Add this to `claude_desktop_config.json` (Settings > Developer > Edit Config), then restart
|
|
62
|
+
Claude Desktop:
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"mcpServers": {
|
|
67
|
+
"fastocr": {
|
|
68
|
+
"command": "uvx",
|
|
69
|
+
"args": ["fastocr-mcp"],
|
|
70
|
+
"env": { "FASTOCR_API_KEY": "your_api_key" }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Cursor
|
|
77
|
+
|
|
78
|
+
Add the same block to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (one project):
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"mcpServers": {
|
|
83
|
+
"fastocr": {
|
|
84
|
+
"command": "uvx",
|
|
85
|
+
"args": ["fastocr-mcp"],
|
|
86
|
+
"env": { "FASTOCR_API_KEY": "your_api_key" }
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
If you installed with pip, use `"command": "fastocr-mcp"` and `"args": []`.
|
|
93
|
+
|
|
94
|
+
## Tools
|
|
95
|
+
|
|
96
|
+
| Tool | What it does |
|
|
97
|
+
|---|---|
|
|
98
|
+
| `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`. |
|
|
99
|
+
| `ocr_pdf(path, output="text", output_path=None)` | The same tool as `ocr_file` under its earlier name, kept so existing setups keep working. |
|
|
100
|
+
| `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. |
|
|
101
|
+
| `list_documents(limit=20)` | The most recent documents in the account, newest first. |
|
|
102
|
+
| `delete_document(document_id)` | Deletes a document and its stored files on FastOCR. Local files are not touched. |
|
|
103
|
+
|
|
104
|
+
Try asking: *"OCR ~/Downloads/scanned-contract.pdf and summarize the termination clause"*,
|
|
105
|
+
*"Read the text in /Users/me/Desktop/receipt.jpg"* or
|
|
106
|
+
*"Make a searchable copy of /Users/me/archive/1998-letters.pdf"*.
|
|
107
|
+
|
|
108
|
+
Every processed page uses one page of the account's API allowance; an image is one page. A document that runs out
|
|
109
|
+
of pages fails with `buy_pages`; the tool says so and links to the
|
|
110
|
+
[developer console](https://fastocr.org/developers/keys#buy-api-pages).
|
|
111
|
+
|
|
112
|
+
## Errors
|
|
113
|
+
|
|
114
|
+
Tool errors are written for the agent to act on: a rejected key, an account out of pages
|
|
115
|
+
(`buy_pages`), too many documents processing at once (`concurrency_limit`), a missing file, or an
|
|
116
|
+
unsupported file type. Each message says what to do next. Error codes are listed in the
|
|
117
|
+
[API docs](https://fastocr.org/docs/documents).
|
|
118
|
+
|
|
119
|
+
## Configuration
|
|
120
|
+
|
|
121
|
+
| Variable | Purpose |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `FASTOCR_API_KEY` | Required. Your API key. |
|
|
124
|
+
| `FASTOCR_BASE_URL` | Optional. Overrides `https://api.fastocr.org`. |
|
|
125
|
+
|
|
126
|
+
## Links
|
|
127
|
+
|
|
128
|
+
- Docs: https://fastocr.org/docs
|
|
129
|
+
- API keys and page packs: https://fastocr.org/developers/keys
|
|
130
|
+
- Python SDK: https://github.com/fastocr-org/fastocr-python
|
|
131
|
+
- Support: support@fastocr.org
|
|
132
|
+
|
|
133
|
+
## License
|
|
134
|
+
|
|
135
|
+
MIT
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling>=1.27"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "fastocr-mcp"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "MCP server for the FastOCR Document OCR API: OCR scanned PDFs into text or searchable PDFs from Claude, Cursor and other MCP clients."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
license-files = ["LICENSE"]
|
|
13
|
+
keywords = ["mcp", "model-context-protocol", "ocr", "pdf", "searchable-pdf", "ai-agents", "fastocr"]
|
|
14
|
+
authors = [
|
|
15
|
+
{ name = "FastOCR", email = "support@fastocr.org" }
|
|
16
|
+
]
|
|
17
|
+
classifiers = [
|
|
18
|
+
"Development Status :: 4 - Beta",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
28
|
+
"Topic :: Scientific/Engineering :: Image Recognition",
|
|
29
|
+
"Typing :: Typed",
|
|
30
|
+
]
|
|
31
|
+
dependencies = [
|
|
32
|
+
"fastocr-sdk>=0.2.0,<0.3",
|
|
33
|
+
"mcp>=2.3.0,<3",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.optional-dependencies]
|
|
37
|
+
dev = [
|
|
38
|
+
"pytest>=7.4.0",
|
|
39
|
+
"pytest-asyncio>=0.23.0",
|
|
40
|
+
"respx>=0.21.0",
|
|
41
|
+
"jsonschema>=4.20.0",
|
|
42
|
+
"ruff>=0.6",
|
|
43
|
+
"mypy>=1.10",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[project.scripts]
|
|
47
|
+
fastocr-mcp = "fastocr_mcp.server:main"
|
|
48
|
+
|
|
49
|
+
[project.urls]
|
|
50
|
+
Homepage = "https://fastocr.org"
|
|
51
|
+
Documentation = "https://fastocr.org/docs"
|
|
52
|
+
Repository = "https://github.com/fastocr-org/fastocr-mcp"
|
|
53
|
+
Changelog = "https://github.com/fastocr-org/fastocr-mcp/blob/main/CHANGELOG.md"
|
|
54
|
+
Issues = "https://github.com/fastocr-org/fastocr-mcp/issues"
|
|
55
|
+
|
|
56
|
+
[tool.hatch.version]
|
|
57
|
+
path = "src/fastocr_mcp/_version.py"
|
|
58
|
+
|
|
59
|
+
[tool.hatch.build.targets.wheel]
|
|
60
|
+
packages = ["src/fastocr_mcp"]
|
|
61
|
+
|
|
62
|
+
[tool.hatch.build.targets.sdist]
|
|
63
|
+
include = ["src", "tests", "README.md", "LICENSE", "CHANGELOG.md", "server.json"]
|
|
64
|
+
|
|
65
|
+
[tool.pytest.ini_options]
|
|
66
|
+
testpaths = ["tests"]
|
|
67
|
+
asyncio_mode = "auto"
|
|
68
|
+
|
|
69
|
+
[tool.ruff]
|
|
70
|
+
line-length = 120
|
|
71
|
+
target-version = "py310"
|
|
72
|
+
src = ["src", "tests"]
|
|
73
|
+
|
|
74
|
+
[tool.ruff.lint]
|
|
75
|
+
select = ["E4", "E7", "E9", "F", "I"]
|
|
76
|
+
|
|
77
|
+
[tool.mypy]
|
|
78
|
+
python_version = "3.10"
|
|
79
|
+
strict = true
|
|
80
|
+
files = ["src"]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.fastocr-org/fastocr-mcp",
|
|
4
|
+
"title": "FastOCR",
|
|
5
|
+
"description": "OCR scanned PDFs and images into text or searchable PDFs with the FastOCR API.",
|
|
6
|
+
"websiteUrl": "https://fastocr.org/docs",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/fastocr-org/fastocr-mcp",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
11
|
+
"version": "0.1.0",
|
|
12
|
+
"packages": [
|
|
13
|
+
{
|
|
14
|
+
"registryType": "pypi",
|
|
15
|
+
"registryBaseUrl": "https://pypi.org",
|
|
16
|
+
"identifier": "fastocr-mcp",
|
|
17
|
+
"version": "0.1.0",
|
|
18
|
+
"runtimeHint": "uvx",
|
|
19
|
+
"transport": {
|
|
20
|
+
"type": "stdio"
|
|
21
|
+
},
|
|
22
|
+
"environmentVariables": [
|
|
23
|
+
{
|
|
24
|
+
"name": "FASTOCR_API_KEY",
|
|
25
|
+
"description": "FastOCR API key from https://fastocr.org/developers/keys",
|
|
26
|
+
"isRequired": true,
|
|
27
|
+
"isSecret": true
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.0"
|
|
File without changes
|