pdf_make_unsearchable
Remove the text layer from a PDF to make it non-searchable, preventing text extraction and search functionality.
Instructions
Make existing PDF document non-searchable by removing the text layer from it.
Ref: https://developer.pdf.co/api-reference/pdf-change-text-searchable/unsearchable.md
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to the source file. Supports publicly accessible links including Google Drive, Dropbox, PDF.co Built-In Files Storage. Use 'upload_file' tool to upload local files. | |
| httpusername | No | HTTP auth user name if required to access source url. (Optional) | |
| httppassword | No | HTTP auth password if required to access source url. (Optional) | |
| pages | No | Comma-separated page indices (e.g., '0, 1, 2-' or '1, 3-7'). Use '!' for inverted page numbers (e.g., '!0' for last page). Processes all pages if None. (Optional) | |
| password | No | Password of the PDF file. (Optional) | |
| name | No | File name for the generated output. (Optional) | |
| api_key | No | PDF.co API key. If not provided, will use X_API_KEY environment variable. (Optional) |
Implementation Reference
- pdfco/mcp/services/pdf.py:91-94 (helper)Service function 'make_pdf_unsearchable' that makes the actual API call to the 'pdf/makeunsearchable' endpoint using the PDFCoClient.
async def make_pdf_unsearchable( params: ConversionParams, api_key: str | None = None ) -> BaseResponse: return await request("pdf/makeunsearchable", params, api_key=api_key) - pdfco/mcp/services/client.py:15-58 (helper)PDFCoClient async context manager that creates an HTTPX AsyncClient with the API key for making requests to the PDF.co API.
@asynccontextmanager async def PDFCoClient(api_key: str | None = None) -> AsyncGenerator[AsyncClient, None]: # Use provided API key, fall back to environment variable x_api_key = api_key or X_API_KEY if not x_api_key: raise ValueError("""API key is required. Please provide an API key as a parameter or set X_API_KEY in the environment variables. To get the API key: 1. Sign up at https://pdf.co 2. Get the API key from the dashboard 3. Either set it as an environment variable or provide it as a parameter Environment variable setup example (.cursor/mcp.json): ```json { "mcpServers": { "pdfco": { "command": "uvx", "args": [ "pdfco-mcp" ], "env": { "X_API_KEY": "YOUR_API_KEY" } } } } ``` Or provide the API key as a parameter when calling the tool. """) client = AsyncClient( base_url=__BASE_URL, headers={ "x-api-key": x_api_key, "User-Agent": f"pdfco-mcp/{__version__}", }, ) try: yield client finally: await client.aclose()