{"name":"1PDF MCP agent workflow evidence","canonical":"https://1pdf.best/mcp","reviewedAt":"2026-08-04","heading":"Reproduce two local agent workflows","intro":"These tasks use a harmless public two-page fixture, a pinned package version, explicit output paths, and bounded checks. Agent wording and intermediate files can vary; verify the final PDF instead of treating a chat response as proof.","fixture":{"url":"/private-pdf-tools-sample.pdf","filename":"1pdf-local-processing-sample.pdf","description":"A generated two-page PDF containing fictional metadata and visible page markers. Make two copies for the merge task.","setupCommand":"mkdir -p onepdf-mcp-check/output && cd onepdf-mcp-check && curl -L https://1pdf.best/private-pdf-tools-sample.pdf -o sample-a.pdf && cp sample-a.pdf sample-b.pdf"},"package":{"name":"onepdf-mcp-server","version":"0.4.0","node":">=20.9.0","url":"https://www.npmjs.com/package/onepdf-mcp-server/v/0.4.0","scope":"npm package metadata records version 0.4.0, the MIT license, and Node.js 20.9 or newer."},"source":{"revision":"985ba0adc9dff09105617d74dfbe90dddd47ff67","url":"https://github.com/WendongAI/onepdf-mcp-server/tree/985ba0adc9dff09105617d74dfbe90dddd47ff67","scope":"Immutable public source snapshot used to check the README, tool inventory, development commands, and capability boundaries."},"registry":{"listed":false,"resultCount":0,"checkedAt":"2026-08-04","url":"https://registry.modelcontextprotocol.io/v0.1/servers?search=onepdf","scope":"The official MCP Registry API returned zero matching entries for “onepdf” on the checked date. This is a dated discovery check, not a permanent status claim."},"workflows":[{"client":"Codex","installCommand":"codex mcp add 1pdf -- npx -y onepdf-mcp-server@0.4.0","task":"Use the 1PDF MCP server. Call system_status first. Rotate every page of ./sample-a.pdf 90 degrees clockwise and save the final PDF as ./output/codex-rotated.pdf. Do not overwrite the input. Report the output path and page count; do not claim success unless the file exists.","expected":{"path":"./output/codex-rotated.pdf","pageCount":2,"checks":["The input file still exists and remains unchanged.","The output opens as a two-page PDF.","Both visible page markers are rotated 90 degrees clockwise."]},"boundary":"This checks system_status plus one core rotate operation. It does not test optional converters, every Codex surface, arbitrary PDFs, or whether the Agent chose the shortest possible tool sequence."},{"client":"Claude Code","installCommand":"claude mcp add 1pdf -- npx -y onepdf-mcp-server@0.4.0","task":"Use the 1PDF MCP server. Merge ./sample-a.pdf followed by ./sample-b.pdf and save the final PDF as ./output/claude-merged.pdf. Do not overwrite either input. Report the output path and page count; do not claim success unless the file exists.","expected":{"path":"./output/claude-merged.pdf","pageCount":4,"checks":["Both input files still exist and remain unchanged.","The output opens as a four-page PDF.","The visible page markers appear in the order 1, 2, 1, 2."]},"boundary":"This checks one core merge operation in Claude Code. It does not test Claude Desktop, remote MCP transport, optional local programs, malformed inputs, or the semantic correctness of unrelated tools."}],"compatibility":["Run the setup command from a directory the Agent can access, then start the Agent in that directory so the relative paths resolve.","The pinned commands reproduce npm version 0.4.0. The unpinned quick-start commands elsewhere on this page intentionally resolve the current npm latest release.","Core tools execute through a local stdio server. Nine document-conversion tools and some specialized operations require optional local programs; call system_status before those workflows.","A created file, page count, and visible fixture markers are the checks. The Agent’s prose response alone is not evidence that processing succeeded."]}