@exactpdf/mcp 0.2.14 → 0.2.15
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.
- package/README.md +158 -1
- package/dist/run.js +1 -1
- package/llms-install.md +67 -0
- package/package.json +4 -3
- package/server.json +3 -3
package/README.md
CHANGED
|
@@ -10,7 +10,9 @@ Use it when an agent needs to inspect, merge, split, rotate, compress to upload
|
|
|
10
10
|
|
|
11
11
|
Developer quickstart: [https://exactpdf.com/developers](https://exactpdf.com/developers)
|
|
12
12
|
|
|
13
|
-
## Setup
|
|
13
|
+
## One-minute Setup
|
|
14
|
+
|
|
15
|
+
ExactPDF MCP is free to install. Hosted ExactPDF API workflows include 20 free test credits, then pay-as-you-go credits when the workflow is worth automating.
|
|
14
16
|
|
|
15
17
|
1. Create an API key at [max.exactpdf.com/account](https://max.exactpdf.com/account). New accounts get **20 free test credits**. Buy one-time credit packs only after the workflow works; no subscription is required for API/MCP.
|
|
16
18
|
2. Export:
|
|
@@ -48,6 +50,161 @@ For a local checkout of this monorepo:
|
|
|
48
50
|
"args": ["/path/to/ExactPDF/packages/exactpdf-mcp/dist/run.js"]
|
|
49
51
|
```
|
|
50
52
|
|
|
53
|
+
## Copy-paste Configs
|
|
54
|
+
|
|
55
|
+
Use this bare config when your client lets you set environment variables separately:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"mcpServers": {
|
|
60
|
+
"exactpdf": {
|
|
61
|
+
"command": "npx",
|
|
62
|
+
"args": ["-y", "@exactpdf/mcp"]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Use this config when the client supports env values inside JSON:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"mcpServers": {
|
|
73
|
+
"exactpdf": {
|
|
74
|
+
"command": "npx",
|
|
75
|
+
"args": ["-y", "@exactpdf/mcp"],
|
|
76
|
+
"env": {
|
|
77
|
+
"EXACTPDF_API_KEY": "sk_live_..."
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Claude Desktop
|
|
85
|
+
|
|
86
|
+
Add to `claude_desktop_config.json`, then restart Claude Desktop:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"mcpServers": {
|
|
91
|
+
"exactpdf": {
|
|
92
|
+
"command": "npx",
|
|
93
|
+
"args": ["-y", "@exactpdf/mcp"],
|
|
94
|
+
"env": {
|
|
95
|
+
"EXACTPDF_API_KEY": "sk_live_..."
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Claude Code
|
|
103
|
+
|
|
104
|
+
Add the server from your project terminal:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
claude mcp add exactpdf -- npx -y @exactpdf/mcp
|
|
108
|
+
export EXACTPDF_API_KEY="sk_live_..."
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
If your Claude Code setup stores env values in its MCP config, use the JSON block above instead.
|
|
112
|
+
|
|
113
|
+
### Cursor
|
|
114
|
+
|
|
115
|
+
Add to `.cursor/mcp.json` or Cursor Settings -> MCP:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"mcpServers": {
|
|
120
|
+
"exactpdf": {
|
|
121
|
+
"command": "npx",
|
|
122
|
+
"args": ["-y", "@exactpdf/mcp"],
|
|
123
|
+
"env": {
|
|
124
|
+
"EXACTPDF_API_KEY": "sk_live_..."
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Windsurf
|
|
132
|
+
|
|
133
|
+
Add ExactPDF as a custom MCP server:
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"mcpServers": {
|
|
138
|
+
"exactpdf": {
|
|
139
|
+
"command": "npx",
|
|
140
|
+
"args": ["-y", "@exactpdf/mcp"],
|
|
141
|
+
"env": {
|
|
142
|
+
"EXACTPDF_API_KEY": "sk_live_..."
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### VS Code / Cline
|
|
150
|
+
|
|
151
|
+
Add to your Cline MCP settings:
|
|
152
|
+
|
|
153
|
+
```json
|
|
154
|
+
{
|
|
155
|
+
"mcpServers": {
|
|
156
|
+
"exactpdf": {
|
|
157
|
+
"command": "npx",
|
|
158
|
+
"args": ["-y", "@exactpdf/mcp"],
|
|
159
|
+
"env": {
|
|
160
|
+
"EXACTPDF_API_KEY": "sk_live_..."
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Five Agent Recipes
|
|
168
|
+
|
|
169
|
+
Paste one of these after the MCP server is connected. Use absolute local file paths.
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
Merge these 3 PDFs into one file:
|
|
173
|
+
/Users/me/Desktop/cover.pdf
|
|
174
|
+
/Users/me/Desktop/form.pdf
|
|
175
|
+
/Users/me/Desktop/id.pdf
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
```text
|
|
179
|
+
Compress /Users/me/Desktop/application.pdf under 500KB for a government upload.
|
|
180
|
+
Use ExactPDF MCP and save the output next to the original.
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
Convert /Users/me/Desktop/manual.pdf to structured Markdown for RAG.
|
|
185
|
+
Keep headings and page references.
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
Extract metadata and per-page JSON from /Users/me/Desktop/contract.pdf.
|
|
190
|
+
Show me the page count, title, author, and first-page text.
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
Turn these images into one PDF:
|
|
195
|
+
/Users/me/Desktop/photo-1.jpg
|
|
196
|
+
/Users/me/Desktop/photo-2.jpg
|
|
197
|
+
/Users/me/Desktop/photo-3.jpg
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## 30-Second Demo
|
|
201
|
+
|
|
202
|
+

|
|
203
|
+
|
|
204
|
+
Video: https://exactpdf.com/demos/exactpdf-mcp-demo.mp4
|
|
205
|
+
|
|
206
|
+
Install ExactPDF MCP, paste one config block, ask your agent to fix a PDF, and get a local output file.
|
|
207
|
+
|
|
51
208
|
## Tools
|
|
52
209
|
|
|
53
210
|
Safe first run:
|
package/dist/run.js
CHANGED
|
@@ -35,7 +35,7 @@ const TARGET_SIZE_PRESETS = {
|
|
|
35
35
|
'500kb': 500 * 1024,
|
|
36
36
|
'1mb': 1024 * 1024,
|
|
37
37
|
};
|
|
38
|
-
const server = new McpServer({ name: 'exactpdf', version: '0.2.
|
|
38
|
+
const server = new McpServer({ name: 'exactpdf', version: '0.2.15' }, {
|
|
39
39
|
instructions: 'ExactPDF turns local PDFs into production outputs for agents: inspect metadata, merge/split/rotate/compress, target-size best-effort compression, create portal-ready merge/images workflows, extract text, export PDF JSON, export structured Markdown for RAG, and create short voice previews. Start with exactpdf_first_run_checklist, then exactpdf_account and exactpdf_pdf_info before paid work. New users can create a key with free test credits at https://max.exactpdf.com/account; developer quickstart: https://exactpdf.com/developers. Free tools: first-run checklist, account, pdf-info, voice-preview, and speech cost estimate. Standard document tools cost 1 credit on success, including launch portal-ready workflows. PDF-to-images and OCR are visible as backend-required placeholders until server renderer/OCR worker endpoints ship. Background PDF speech/audiobook/translation/presentation jobs are in production hardening and must be treated as planning-only until worker smoke passes. Use absolute local file paths; binary outputs are saved to EXACTPDF_API_OUTPUT_DIR or the OS temp directory.',
|
|
40
40
|
});
|
|
41
41
|
async function saveBinaryFromResponse(res, prefix, fallbackExt) {
|
package/llms-install.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# ExactPDF MCP Installation for Agents
|
|
2
|
+
|
|
3
|
+
Use this file when an AI coding assistant or MCP marketplace needs deterministic setup instructions for `@exactpdf/mcp`.
|
|
4
|
+
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
- Node.js 18 or newer.
|
|
8
|
+
- No repository clone is required.
|
|
9
|
+
- Optional: `EXACTPDF_API_KEY` for hosted ExactPDF API workflows.
|
|
10
|
+
|
|
11
|
+
## Install Command
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx -y @exactpdf/mcp
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## MCP Client Config
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"mcpServers": {
|
|
22
|
+
"exactpdf": {
|
|
23
|
+
"command": "npx",
|
|
24
|
+
"args": ["-y", "@exactpdf/mcp"],
|
|
25
|
+
"env": {
|
|
26
|
+
"EXACTPDF_API_KEY": "sk_live_or_test_key"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
If the user does not have an API key yet, keep the server installed and direct them to:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
https://max.exactpdf.com/account
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
New users get free test credits. The server can still show first-run guidance without a key.
|
|
40
|
+
|
|
41
|
+
## First Verification Prompt
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
Use ExactPDF MCP. Run the first-run checklist, then check my ExactPDF account.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## First PDF Workflow Prompt
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
Use ExactPDF MCP to inspect this PDF, then compress it under 500KB and save the result next to the original file:
|
|
51
|
+
/absolute/path/to/document.pdf
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Safety and Billing Notes
|
|
55
|
+
|
|
56
|
+
- ExactPDF MCP is free to install.
|
|
57
|
+
- Hosted ExactPDF API workflows include free test credits, then pay-as-you-go credits.
|
|
58
|
+
- Standard document workflows consume credits only on successful output.
|
|
59
|
+
- Background PDF speech, audiobook, translate-and-speak, and presentation narration are disabled while dedicated worker hardening is in progress.
|
|
60
|
+
- OCR and PDF-to-images are listed as backend-required placeholders until dedicated API workers are enabled.
|
|
61
|
+
|
|
62
|
+
## Common Troubleshooting
|
|
63
|
+
|
|
64
|
+
- If `npx` is not found, install Node.js 18+ and restart the MCP client.
|
|
65
|
+
- If the server starts but tools return `401`, set `EXACTPDF_API_KEY`.
|
|
66
|
+
- Use absolute file paths for local PDFs and images.
|
|
67
|
+
- If a PDF is too large for the API workflow, use ExactPDF browser tools or Max workflows from `https://exactpdf.com`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exactpdf/mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"description": "MCP server for ExactPDF — agent PDF workflows, target-size compression, structured Markdown/RAG, PDF JSON, merge/split, images-to-PDF, voice previews, and API credits.",
|
|
5
5
|
"mcpName": "com.exactpdf/mcp",
|
|
6
6
|
"type": "module",
|
|
@@ -14,19 +14,20 @@
|
|
|
14
14
|
"files": [
|
|
15
15
|
"dist",
|
|
16
16
|
"README.md",
|
|
17
|
+
"llms-install.md",
|
|
17
18
|
"server.json"
|
|
18
19
|
],
|
|
19
20
|
"publishConfig": {
|
|
20
21
|
"access": "public"
|
|
21
22
|
},
|
|
22
|
-
"homepage": "https://exactpdf.com/
|
|
23
|
+
"homepage": "https://exactpdf.com/mcp",
|
|
23
24
|
"bugs": {
|
|
24
25
|
"url": "https://exactpdf.com/docs/api",
|
|
25
26
|
"email": "support@exactpdf.com"
|
|
26
27
|
},
|
|
27
28
|
"repository": {
|
|
28
29
|
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/
|
|
30
|
+
"url": "git+https://github.com/smmallya/ExactPDF.git",
|
|
30
31
|
"directory": "packages/exactpdf-mcp"
|
|
31
32
|
},
|
|
32
33
|
"scripts": {
|
package/server.json
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"name": "com.exactpdf/mcp",
|
|
4
4
|
"title": "ExactPDF",
|
|
5
5
|
"description": "Agent-facing PDF API: merge, split, rotate, compress, target-size compression, images-to-PDF, metadata, text extraction, PDF JSON, structured Markdown/RAG, voice previews, and API credit checks. PDF-to-images/OCR require backend workers; background audio jobs are hardening-only until worker smoke passes.",
|
|
6
|
-
"version": "0.2.
|
|
7
|
-
"websiteUrl": "https://exactpdf.com/
|
|
6
|
+
"version": "0.2.15",
|
|
7
|
+
"websiteUrl": "https://exactpdf.com/mcp",
|
|
8
8
|
"packages": [
|
|
9
9
|
{
|
|
10
10
|
"registryType": "npm",
|
|
11
11
|
"identifier": "@exactpdf/mcp",
|
|
12
|
-
"version": "0.2.
|
|
12
|
+
"version": "0.2.15",
|
|
13
13
|
"transport": {
|
|
14
14
|
"type": "stdio"
|
|
15
15
|
}
|