Merge PDF
Merge multiple user-provided PDF files by uploading them to Cross-Service-Solutions, polling until completion, then returning a download URL for the merged PDF.
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 1k · 0 current installs · 0 all-time installs
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description, SKILL.md, README, and the Python script all consistently implement uploading PDFs to the Cross-Service-Solutions API and polling for a merged result. One small inconsistency: the registry metadata lists no required env vars or primary credential, but both SKILL.md and the script require an API key (or SOLUTIONS_API_KEY environment variable). This is likely an omission in the registry metadata rather than a functional mismatch.
Instruction Scope
SKILL.md instructs only to accept PDFs, upload them to the stated API, poll the API, and return the download URL. The included script implements exactly that. The instructions and code do not read unrelated system files or other environment variables beyond the API key and optional base-URL override, and they do not transmit data to endpoints other than the documented Cross-Service-Solutions base URL.
Install Mechanism
There is no install spec (instruction-only skill) and the only code file is a straightforward Python script. requirements.txt lists only 'requests'. No downloads from untrusted URLs or extract/install steps are present.
Credentials
The skill legitimately requires a single service API key (passed as --api-key or via SOLUTIONS_API_KEY). No other credentials or unrelated environment access are requested. However the registry metadata did not declare this required credential, so users relying only on the registry listing might not realize an API key is required.
Persistence & Privilege
The skill is not always-enabled, does not request persistent/system-wide privileges, and does not modify other skills or system configuration. It runs network calls only to the documented API.
Assessment
This skill appears internally consistent and implements exactly what it claims: uploading PDFs to Cross-Service-Solutions and returning a merged-file URL. Before installing, confirm you trust the external service (https://api.xss-cross-service-solutions.com) and its privacy policy, because your PDF contents will be sent to that provider. Provide the API key via the --api-key argument or the SOLUTIONS_API_KEY environment variable (the registry metadata omitted this requirement). Avoid uploading sensitive or confidential documents to an untrusted third party; if you need an on-device merge instead, use a local tool that does not send files off-host. Finally, test with non-sensitive example PDFs to verify expected behavior and URLs.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
merge-pdf-files
Purpose
This skill merges multiple PDFs by:
- accepting multiple PDF files from the user,
- uploading them to the Cross-Service-Solutions merge API,
- polling the job status until it is finished,
- returning the merged PDF download URL.
Credentials
The API requires an API key used as a Bearer token:
Authorization: Bearer <API_KEY>
How the user gets an API key:
- https://login.cross-service-solutions.com/register
- Or the user can provide an API key directly.
Rule: never echo or log the API key.
API endpoints
Base URL:
https://api.xss-cross-service-solutions.com/solutions/solutions
Create merge job:
POST /api/30multipart/form-dataparameters:files(PDF Dokument) — required — multiple PDF files (multiple_files)
Get result by ID:
GET /api/<ID>
When done, the response contains:
output.files[]with{ name, path }wherepathis a downloadable URL.
Inputs
Required
- One or more PDF files (binary)
- An API key (string)
Optional
- None (ordering is determined by the provided file list order)
Output
Return a structured result:
job_id(number)status(string)download_url(string, when done)file_name(string, when available)input_files(array of strings)
Example output:
{
"job_id": 456,
"status": "done",
"download_url": "https://.../merged.pdf",
"file_name": "merged.pdf",
"input_files": ["a.pdf", "b.pdf", "c.pdf"]
}
Files
5 totalSelect a file
Select a file to preview.
Comments
Loading comments…
