@pdfmakerapi/mcp
Advanced tools
+29
-1
@@ -55,4 +55,18 @@ #!/usr/bin/env node | ||
| `; | ||
| const server = new McpServer({ name: "pdfmakerapi", version: "0.1.3" }); | ||
| const ICONS = [ | ||
| { | ||
| src: "https://raw.githubusercontent.com/GerardoBarrera/pdfmakerapi-mcp/main/icon-400.png", | ||
| mimeType: "image/png", | ||
| sizes: ["400x400"], | ||
| }, | ||
| ]; | ||
| const server = new McpServer({ | ||
| name: "pdfmakerapi", | ||
| version: "0.1.4", | ||
| title: "PDFMakerAPI", | ||
| websiteUrl: "https://pdfmakerapi.com", | ||
| icons: ICONS, | ||
| }); | ||
| server.registerTool("create_document", { | ||
| title: "Create PDF Document", | ||
| description: `Create a professional, shareable PDF document — invoices, receipts, certificates, reports, resumes, letters, and more. Returns a link that opens the document in the PDFMakerAPI editor, where the user can preview it, edit any field, and download the PDF.\n${DOCUMENT_GUIDE}`, | ||
@@ -64,2 +78,15 @@ inputSchema: { | ||
| }, | ||
| outputSchema: { | ||
| url: z | ||
| .string() | ||
| .describe("Shareable link that opens the document in the PDFMakerAPI editor to preview, edit, and download the PDF."), | ||
| id: z.string().describe("The stored document id."), | ||
| }, | ||
| annotations: { | ||
| title: "Create PDF Document", | ||
| readOnlyHint: false, | ||
| destructiveHint: false, | ||
| idempotentHint: false, | ||
| openWorldHint: true, | ||
| }, | ||
| }, async ({ document }) => { | ||
@@ -92,2 +119,3 @@ try { | ||
| ], | ||
| structuredContent: { url: data.url, id: data.id }, | ||
| }; | ||
@@ -94,0 +122,0 @@ } |
+1
-1
| { | ||
| "name": "@pdfmakerapi/mcp", | ||
| "version": "0.1.3", | ||
| "version": "0.1.4", | ||
| "mcpName": "io.github.GerardoBarrera/pdfmakerapi-mcp", | ||
@@ -5,0 +5,0 @@ "description": "MCP server for PDFMakerAPI — turn a description into a shareable, editable PDF (invoices, certificates, reports, resumes) from any MCP client (Claude, Cursor, etc.).", |
+87
-19
| # PDFMakerAPI MCP server | ||
| [](https://www.npmjs.com/package/@pdfmakerapi/mcp) | ||
| [](https://smithery.ai/servers/gerardobarrera714/pdfmakerapi) | ||
| [](cursor://anysphere.cursor-deeplink/mcp/install?name=pdfmakerapi&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBwZGZtYWtlcmFwaS9tY3AiXX0=) | ||
| [](https://vscode.dev/redirect/mcp/install?name=pdfmakerapi&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40pdfmakerapi%2Fmcp%22%5D%7D) | ||
| An [MCP](https://modelcontextprotocol.io) server for **[PDFMakerAPI](https://pdfmakerapi.com)**. It | ||
| exposes a single `create_document` tool that turns a document description into a **shareable link** | ||
| which opens in the PDFMakerAPI editor — preview, edit any field, and download the PDF. | ||
| exposes a single **`create_document`** tool that turns a plain-English document description into a | ||
| **shareable link** which opens in the PDFMakerAPI editor — preview it, edit any field, and download | ||
| the PDF. | ||
| Works with any MCP client: **Claude Desktop**, **Cursor**, **Windsurf**, **Cline**, **Zed**, etc. | ||
| Works with **Claude Desktop, Claude.ai, Cursor, Windsurf, Cline, Zed, VS Code, ChatGPT**, and any | ||
| other MCP client. It's a thin client of the public API at `https://api.pdfmakerapi.com`, so it needs | ||
| no account or credentials of its own. | ||
| It's a thin client of the public API at `https://api.pdfmakerapi.com`, so it needs no server, | ||
| account, or credentials of its own. | ||
| ## Quick install | ||
| ## What it does | ||
| **One-click:** | ||
| The `create_document` tool accepts a PDFMakerAPI Document (invoice, certificate, report, resume, | ||
| letter, …) built by the calling model, stores it via `POST /api/v1/documents`, and returns a link | ||
| like `https://app.pdfmakerapi.com/d/<id>`. | ||
| [](cursor://anysphere.cursor-deeplink/mcp/install?name=pdfmakerapi&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBwZGZtYWtlcmFwaS9tY3AiXX0=) [](https://vscode.dev/redirect/mcp/install?name=pdfmakerapi&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40pdfmakerapi%2Fmcp%22%5D%7D) | ||
| ## Use it | ||
| **Or add the same config manually** (works in every desktop client): | ||
| ### Claude Desktop | ||
| Edit `claude_desktop_config.json` (Settings → Developer → Edit Config): | ||
| ```json | ||
@@ -37,11 +36,40 @@ { | ||
| Restart Claude Desktop, then ask: *"Make a professional invoice for Acme with 3 line items."* | ||
| ## Setup by client | ||
| ### Cursor / Windsurf / Cline / Zed | ||
| <details> | ||
| <summary><b>Claude Desktop</b></summary> | ||
| Add the same server to the client's MCP config: | ||
| Settings → Developer → Edit Config (`claude_desktop_config.json`), add the `mcpServers` block above, and restart Claude. | ||
| </details> | ||
| <details> | ||
| <summary><b>Cursor</b></summary> | ||
| Use the **Add to Cursor** button, or add the block to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (per-project). | ||
| </details> | ||
| <details> | ||
| <summary><b>Windsurf</b></summary> | ||
| Add the block to `~/.codeium/windsurf/mcp_config.json` (or via Settings → Cascade → MCP). | ||
| </details> | ||
| <details> | ||
| <summary><b>Cline</b></summary> | ||
| Cline → MCP Servers → Configure, and add the `mcpServers` block. | ||
| </details> | ||
| <details> | ||
| <summary><b>VS Code</b></summary> | ||
| Use the **Install in VS Code** button, or add to `.vscode/mcp.json` (note: VS Code uses a `servers` key): | ||
| ```json | ||
| { | ||
| "mcpServers": { | ||
| "servers": { | ||
| "pdfmakerapi": { "command": "npx", "args": ["-y", "@pdfmakerapi/mcp"] } | ||
@@ -52,2 +80,42 @@ } | ||
| </details> | ||
| <details> | ||
| <summary><b>Zed</b></summary> | ||
| In `settings.json`: | ||
| ```json | ||
| { | ||
| "context_servers": { | ||
| "pdfmakerapi": { "command": { "path": "npx", "args": ["-y", "@pdfmakerapi/mcp"] } } | ||
| } | ||
| } | ||
| ``` | ||
| </details> | ||
| ## Hosted (remote) option — no install | ||
| If your client supports remote MCP servers, just point it at the hosted endpoint — no `npx`, no Node: | ||
| ``` | ||
| https://api.pdfmakerapi.com/mcp | ||
| ``` | ||
| - **Claude.ai (web):** Settings → Connectors → Add custom connector → paste the URL. | ||
| - **ChatGPT (Plus/Pro/Enterprise):** Settings → Connectors → add the URL. | ||
| - **Cursor / others:** add `{ "url": "https://api.pdfmakerapi.com/mcp" }` instead of `command`/`args`. | ||
| ## Usage | ||
| Ask your assistant for a document: | ||
| > *"Make a professional invoice for Acme with 3 line items."* | ||
| > *"Create a course completion certificate."* | ||
| > *"Build a clean one-page resume."* | ||
| It calls `create_document` and returns a link like `https://app.pdfmakerapi.com/d/<id>` — open it to | ||
| preview, edit any field, and download the PDF. | ||
| ## Configuration | ||
@@ -57,3 +125,3 @@ | ||
| | --- | --- | --- | | ||
| | `PDFMAKERAPI_BASE_URL` | `https://api.pdfmakerapi.com` | Point the tool at a different API (e.g. `http://localhost:3001` for local dev). | | ||
| | `PDFMAKERAPI_BASE_URL` | `https://api.pdfmakerapi.com` | Point at a different API (e.g. `http://localhost:3001` for local dev). | | ||
@@ -60,0 +128,0 @@ ## Develop |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
13834
31.8%130
27.45%138
97.14%