pdfpipe-mcp-server 0.3.0 → 0.3.2

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 CHANGED
@@ -2,10 +2,10 @@
2
2
  /**
3
3
  * MCP server for PDFPipe (https://pdfpipe.xyz).
4
4
  *
5
- * Tools:
6
- * pdfpipe_generate_pdf — render HTML or URL to a PDF file
7
- * pdfpipe_list_documents list archived PDFs (requires store: true on generate)
8
- * pdfpipe_get_document — retrieve an archived PDF by document ID
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 { mkdirSync, writeFileSync } from "node:fs";
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 (e.g. a logo) appears on many pages. Default false."),
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 via pdfpipe_get_document.
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: {
@@ -192,13 +196,27 @@ Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally do
192
196
  content: [{ type: "text", text: "Error: Provide 'html' or 'url', not both." }],
193
197
  };
194
198
  }
199
+ // Validate and sandbox output_path before any network call (covers both relative and absolute).
200
+ const safeCwd = resolve(process.cwd());
201
+ const absPath = isAbsolute(params.output_path)
202
+ ? resolve(params.output_path)
203
+ : resolve(safeCwd, params.output_path);
204
+ if (!absPath.startsWith(safeCwd + sep) && absPath !== safeCwd) {
205
+ return {
206
+ isError: true,
207
+ content: [{ type: "text", text: "Error: output_path must not escape the working directory." }],
208
+ };
209
+ }
195
210
  try {
196
- const body = {
211
+ // When store: true the API returns JSON (not PDF bytes).
212
+ const responseType = params.store ? "json" : "arraybuffer";
213
+ const response = await axios.post(`${BASE_URL}/v1/pdf`, {
197
214
  ...(params.html ? { html: params.html } : { url: params.url }),
198
215
  options: {
199
216
  format: params.format,
200
217
  landscape: params.landscape,
201
218
  margin: params.margin,
219
+ print_background: params.print_background,
202
220
  ...(params.header_html ? { header_html: params.header_html } : {}),
203
221
  ...(params.footer_html ? { footer_html: params.footer_html } : {}),
204
222
  ...(params.tabular_nums ? { tabular_nums: true } : {}),
@@ -207,28 +225,41 @@ Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally do
207
225
  },
208
226
  ...(params.store ? { store: true } : {}),
209
227
  ...(params.filename ? { filename: params.filename } : {}),
210
- };
211
- const response = await axios.post(`${BASE_URL}/v1/pdf`, body, {
212
- responseType: "arraybuffer",
228
+ }, {
229
+ responseType,
213
230
  timeout: REQUEST_TIMEOUT_MS,
214
231
  headers: {
215
232
  Authorization: `Bearer ${apiKey()}`,
216
233
  "Content-Type": "application/json",
217
- Accept: "application/pdf",
234
+ Accept: params.store ? "application/json" : "application/pdf",
218
235
  },
219
236
  });
220
- const buffer = Buffer.from(response.data);
221
- const absPath = isAbsolute(params.output_path)
222
- ? params.output_path
223
- : resolve(process.cwd(), params.output_path);
224
- mkdirSync(dirname(absPath), { recursive: true });
225
- writeFileSync(absPath, buffer);
226
- const h = response.headers;
227
237
  const num = (v) => {
228
238
  const n = Number(v);
229
239
  return Number.isFinite(n) ? n : undefined;
230
240
  };
231
- const str = (v) => (typeof v === "string" && v ? v : undefined);
241
+ const str = (v) => typeof v === "string" && v ? v : undefined;
242
+ if (params.store) {
243
+ const data = response.data;
244
+ const output = {
245
+ output_path: absPath,
246
+ size_bytes: num(data["size_bytes"]) ?? 0,
247
+ plan: str(data["plan"]),
248
+ usage: num(data["used"]),
249
+ limit: num(data["limit"]),
250
+ document_id: str(data["document_id"]),
251
+ document_url: str(data["document_url"]),
252
+ document_expires: str(data["document_expires"]),
253
+ };
254
+ return {
255
+ content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
256
+ structuredContent: output,
257
+ };
258
+ }
259
+ const buffer = Buffer.from(response.data);
260
+ await mkdir(dirname(absPath), { recursive: true });
261
+ await writeFile(absPath, buffer);
262
+ const h = response.headers;
232
263
  const output = {
233
264
  output_path: absPath,
234
265
  size_bytes: buffer.length,
@@ -251,67 +282,10 @@ Returns JSON with output_path, size_bytes, plan, usage, limit, and optionally do
251
282
  };
252
283
  }
253
284
  });
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
285
  async function main() {
311
- // Fail fast with a clear message if the key is missing.
312
286
  if (!process.env.PDFPIPE_API_KEY) {
313
- console.error("WARNING: PDFPIPE_API_KEY is not set. Tool calls will fail until it is. " +
314
- "Get a key at https://pdfpipe.xyz.");
287
+ console.error("Error: PDFPIPE_API_KEY is not set. Get a key at https://pdfpipe.xyz.");
288
+ process.exit(1);
315
289
  }
316
290
  const transport = new StdioServerTransport();
317
291
  await server.connect(transport);
@@ -321,3 +295,4 @@ main().catch((error) => {
321
295
  console.error("Fatal:", error);
322
296
  process.exit(1);
323
297
  });
298
+ //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdfpipe-mcp-server",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "MCP server for PDFPipe. Generate PDF documents (invoices, reports, certificates) from HTML or a URL in one tool call.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",