pdfpipe-mcp-server 0.3.0 → 0.3.1
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/dist/index.js +35 -78
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP server for PDFPipe (https://pdfpipe.xyz).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Exposes a single high-value tool, `pdfpipe_generate_pdf`, that turns HTML or
|
|
6
|
+
* a public URL into a PDF document via the PDFPipe REST API and writes it to a
|
|
7
|
+
* path the agent chooses. Built so an AI agent can produce an invoice, report,
|
|
8
|
+
* or certificate in one tool call.
|
|
9
9
|
*
|
|
10
10
|
* Auth: set PDFPIPE_API_KEY. Override the host with PDFPIPE_BASE_URL.
|
|
11
11
|
*/
|
|
@@ -13,8 +13,8 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
13
13
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
14
14
|
import { z } from "zod";
|
|
15
15
|
import axios from "axios";
|
|
16
|
-
import {
|
|
17
|
-
import { dirname, isAbsolute, resolve } from "node:path";
|
|
16
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
17
|
+
import { dirname, isAbsolute, resolve, sep } from "node:path";
|
|
18
18
|
const BASE_URL = (process.env.PDFPIPE_BASE_URL || "https://api.pdfpipe.xyz").replace(/\/$/, "");
|
|
19
19
|
const REQUEST_TIMEOUT_MS = 60_000;
|
|
20
20
|
const PAGE_FORMATS = ["A4", "A3", "A5", "Letter", "Legal", "Tabloid"];
|
|
@@ -50,9 +50,7 @@ const GeneratePdfInput = z
|
|
|
50
50
|
store: z
|
|
51
51
|
.boolean()
|
|
52
52
|
.default(false)
|
|
53
|
-
.describe("If true, persist the PDF for later retrieval via pdfpipe_get_document. "
|
|
54
|
-
"Returns document_id, document_url, and document_expires. " +
|
|
55
|
-
"Retention by plan: hobby 1 day, starter 30 days, growth 1 year, scale 2 years."),
|
|
53
|
+
.describe("If true, persist the PDF for later retrieval via pdfpipe_get_document. Returns document_id, document_url, and document_expires."),
|
|
56
54
|
filename: z
|
|
57
55
|
.string()
|
|
58
56
|
.max(200)
|
|
@@ -66,6 +64,10 @@ const GeneratePdfInput = z
|
|
|
66
64
|
.string()
|
|
67
65
|
.optional()
|
|
68
66
|
.describe("HTML rendered as a running page footer. Same class substitution as header_html."),
|
|
67
|
+
print_background: z
|
|
68
|
+
.boolean()
|
|
69
|
+
.default(true)
|
|
70
|
+
.describe("Print background graphics and colors. Default true."),
|
|
69
71
|
tabular_nums: z
|
|
70
72
|
.boolean()
|
|
71
73
|
.default(false)
|
|
@@ -73,7 +75,7 @@ const GeneratePdfInput = z
|
|
|
73
75
|
deduplicate_images: z
|
|
74
76
|
.boolean()
|
|
75
77
|
.default(false)
|
|
76
|
-
.describe("Merge identical image XObjects in the output PDF. Reduces file size when the same image
|
|
78
|
+
.describe("Merge identical image XObjects in the output PDF. Reduces file size when the same image appears on many pages. Default false."),
|
|
77
79
|
pdf_a: z
|
|
78
80
|
.boolean()
|
|
79
81
|
.default(false)
|
|
@@ -152,7 +154,7 @@ server.registerTool("pdfpipe_generate_pdf", {
|
|
|
152
154
|
|
|
153
155
|
Use this to produce invoices, receipts, reports, certificates, statements, or any document, from HTML you compose or a web page you point at. The rendering runs server-side in a sandboxed browser, so the calling agent does not need a browser.
|
|
154
156
|
|
|
155
|
-
Pass store: true to persist the PDF and receive a document_id for later retrieval
|
|
157
|
+
Pass store: true to persist the PDF and receive a document_id for later retrieval.
|
|
156
158
|
|
|
157
159
|
Args:
|
|
158
160
|
- html (string, optional): Raw HTML to render. Provide html OR url, not both.
|
|
@@ -169,7 +171,9 @@ Args:
|
|
|
169
171
|
- store (boolean, optional): Persist the PDF for later retrieval, default false.
|
|
170
172
|
- filename (string, optional): Filename for the stored document (used with store: true).
|
|
171
173
|
|
|
172
|
-
Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally document_id/document_url/document_expires when store is true
|
|
174
|
+
Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally document_id/document_url/document_expires when store is true.
|
|
175
|
+
|
|
176
|
+
Errors return a message starting with "Error:" explaining the cause (bad key, limit reached, render failure, unreachable API).`,
|
|
173
177
|
inputSchema: GeneratePdfInput.shape,
|
|
174
178
|
outputSchema: GeneratePdfOutput.shape,
|
|
175
179
|
annotations: {
|
|
@@ -193,12 +197,13 @@ Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally do
|
|
|
193
197
|
};
|
|
194
198
|
}
|
|
195
199
|
try {
|
|
196
|
-
const
|
|
200
|
+
const response = await axios.post(`${BASE_URL}/v1/pdf`, {
|
|
197
201
|
...(params.html ? { html: params.html } : { url: params.url }),
|
|
198
202
|
options: {
|
|
199
203
|
format: params.format,
|
|
200
204
|
landscape: params.landscape,
|
|
201
205
|
margin: params.margin,
|
|
206
|
+
print_background: params.print_background,
|
|
202
207
|
...(params.header_html ? { header_html: params.header_html } : {}),
|
|
203
208
|
...(params.footer_html ? { footer_html: params.footer_html } : {}),
|
|
204
209
|
...(params.tabular_nums ? { tabular_nums: true } : {}),
|
|
@@ -207,8 +212,7 @@ Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally do
|
|
|
207
212
|
},
|
|
208
213
|
...(params.store ? { store: true } : {}),
|
|
209
214
|
...(params.filename ? { filename: params.filename } : {}),
|
|
210
|
-
}
|
|
211
|
-
const response = await axios.post(`${BASE_URL}/v1/pdf`, body, {
|
|
215
|
+
}, {
|
|
212
216
|
responseType: "arraybuffer",
|
|
213
217
|
timeout: REQUEST_TIMEOUT_MS,
|
|
214
218
|
headers: {
|
|
@@ -219,16 +223,25 @@ Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally do
|
|
|
219
223
|
});
|
|
220
224
|
const buffer = Buffer.from(response.data);
|
|
221
225
|
const absPath = isAbsolute(params.output_path)
|
|
222
|
-
? params.output_path
|
|
226
|
+
? resolve(params.output_path)
|
|
223
227
|
: resolve(process.cwd(), params.output_path);
|
|
224
|
-
|
|
225
|
-
|
|
228
|
+
if (!isAbsolute(params.output_path)) {
|
|
229
|
+
const safeCwd = resolve(process.cwd());
|
|
230
|
+
if (!absPath.startsWith(safeCwd + sep) && absPath !== safeCwd) {
|
|
231
|
+
return {
|
|
232
|
+
isError: true,
|
|
233
|
+
content: [{ type: "text", text: "Error: output_path must not escape the working directory." }],
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
await mkdir(dirname(absPath), { recursive: true });
|
|
238
|
+
await writeFile(absPath, buffer);
|
|
226
239
|
const h = response.headers;
|
|
227
240
|
const num = (v) => {
|
|
228
241
|
const n = Number(v);
|
|
229
242
|
return Number.isFinite(n) ? n : undefined;
|
|
230
243
|
};
|
|
231
|
-
const str = (v) =>
|
|
244
|
+
const str = (v) => typeof v === "string" && v ? v : undefined;
|
|
232
245
|
const output = {
|
|
233
246
|
output_path: absPath,
|
|
234
247
|
size_bytes: buffer.length,
|
|
@@ -251,67 +264,10 @@ Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally do
|
|
|
251
264
|
};
|
|
252
265
|
}
|
|
253
266
|
});
|
|
254
|
-
server.registerTool("pdfpipe_list_documents", {
|
|
255
|
-
title: "List archived PDFs",
|
|
256
|
-
description: "List PDFs previously stored with store: true. Returns up to 100 documents per page, newest first. Use the next_before cursor for pagination.",
|
|
257
|
-
inputSchema: z.object({
|
|
258
|
-
limit: z.number().int().min(1).max(100).default(100).describe("Max documents to return (1-100)."),
|
|
259
|
-
before: z.string().optional().describe("ISO 8601 cursor: return documents created before this timestamp. Use next_before from a previous response."),
|
|
260
|
-
}).shape,
|
|
261
|
-
annotations: { readOnlyHint: true },
|
|
262
|
-
}, async (params) => {
|
|
263
|
-
try {
|
|
264
|
-
const qs = new URLSearchParams({ limit: String(params.limit) });
|
|
265
|
-
if (params.before) qs.set("before", params.before);
|
|
266
|
-
const res = await axios.get(`${BASE_URL}/v1/documents?${qs}`, {
|
|
267
|
-
timeout: REQUEST_TIMEOUT_MS,
|
|
268
|
-
headers: { Authorization: `Bearer ${apiKey()}` },
|
|
269
|
-
});
|
|
270
|
-
return {
|
|
271
|
-
content: [{ type: "text", text: JSON.stringify(res.data, null, 2) }],
|
|
272
|
-
structuredContent: res.data,
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
return { isError: true, content: [{ type: "text", text: describeError(error) }] };
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
server.registerTool("pdfpipe_get_document", {
|
|
280
|
-
title: "Retrieve an archived PDF",
|
|
281
|
-
description: "Download a previously archived PDF by its document_id and save it to disk.",
|
|
282
|
-
inputSchema: z.object({
|
|
283
|
-
document_id: z.string().min(1).describe("The document_id returned by pdfpipe_generate_pdf when store was true."),
|
|
284
|
-
output_path: z.string().min(1).describe("Filesystem path to write the PDF to. Parent dirs are created."),
|
|
285
|
-
}).shape,
|
|
286
|
-
annotations: { readOnlyHint: false },
|
|
287
|
-
}, async (params) => {
|
|
288
|
-
try {
|
|
289
|
-
const res = await axios.get(`${BASE_URL}/v1/documents/${encodeURIComponent(params.document_id)}`, {
|
|
290
|
-
responseType: "arraybuffer",
|
|
291
|
-
timeout: REQUEST_TIMEOUT_MS,
|
|
292
|
-
headers: { Authorization: `Bearer ${apiKey()}`, Accept: "application/pdf" },
|
|
293
|
-
});
|
|
294
|
-
const buffer = Buffer.from(res.data);
|
|
295
|
-
const absPath = isAbsolute(params.output_path)
|
|
296
|
-
? params.output_path
|
|
297
|
-
: resolve(process.cwd(), params.output_path);
|
|
298
|
-
mkdirSync(dirname(absPath), { recursive: true });
|
|
299
|
-
writeFileSync(absPath, buffer);
|
|
300
|
-
const output = { output_path: absPath, size_bytes: buffer.length };
|
|
301
|
-
return {
|
|
302
|
-
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
303
|
-
structuredContent: output,
|
|
304
|
-
};
|
|
305
|
-
}
|
|
306
|
-
catch (error) {
|
|
307
|
-
return { isError: true, content: [{ type: "text", text: describeError(error) }] };
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
267
|
async function main() {
|
|
311
|
-
// Fail fast with a clear message if the key is missing.
|
|
312
268
|
if (!process.env.PDFPIPE_API_KEY) {
|
|
313
|
-
console.error("
|
|
314
|
-
|
|
269
|
+
console.error("Error: PDFPIPE_API_KEY is not set. Get a key at https://pdfpipe.xyz.");
|
|
270
|
+
process.exit(1);
|
|
315
271
|
}
|
|
316
272
|
const transport = new StdioServerTransport();
|
|
317
273
|
await server.connect(transport);
|
|
@@ -321,3 +277,4 @@ main().catch((error) => {
|
|
|
321
277
|
console.error("Fatal:", error);
|
|
322
278
|
process.exit(1);
|
|
323
279
|
});
|
|
280
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED