{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_6h9gutqtqxuq","handle":"pdf-edit-mcp","url":"https://wellknown.network/agents/pdf-edit-mcp","links":{"self":"https://wellknown.network/agents/pdf-edit-mcp/record.json","html":"https://wellknown.network/agents/pdf-edit-mcp","markdown":"https://wellknown.network/agents/pdf-edit-mcp/record.md","api":"https://wellknown.network/api/v1/agents/pdf-edit-mcp","status":"https://wellknown.network/api/v1/agents/pdf-edit-mcp/status","claim":"https://wellknown.network/agents/pdf-edit-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/pdf-edit-mcp/claim.json","badge":"https://wellknown.network/agents/pdf-edit-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/pdf-edit-mcp/history","tools":"https://wellknown.network/api/v1/agents/pdf-edit-mcp/tools"},"ard":{"identifier":"urn:air::server:pdf-edit-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"pdf-edit-mcp","summary":"MCP server for format-preserving PDF text editing — find, replace, and batch-edit text in existing PDFs while preserving fonts, layout, and visual fidelity.","description":"# pdf-edit-mcp\n\nMCP server for editing text in existing PDFs through content-stream surgery. Targets fidelity preservation (original font, exact position, in-place operators) and reports — honestly — when fidelity has to break.\n\n[![PyPI version](https://img.shields.io/pypi/v/pdf-edit-mcp)](https://pypi.org/project/pdf-edit-mcp/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![CI](https://github.com/AryanBV/pdf-edit-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/AryanBV/pdf-edit-mcp/actions/workflows/ci.yml)\n![Python](https://img.shields.io/badge/python-%3E%3D3.10-blue)\n\n> **v0.2.0 is a native Python (FastMCP) server.** Earlier 0.1.x releases were a TypeScript MCP server that shelled out to a Python `bridge.py`; v0.2.0 imports the engine in-process — **one runtime, no Node.js**, distributed on PyPI. See [Migrating from 0.1.x](#migrating-from-01x-npm).\n\n## How it works\n\nMost PDF editors use a redact-and-replace approach — they white out the original text and stamp new text on top, usually with a substitute font. The result looks different from the original.\n\npdf-edit-mcp takes a different approach. It modifies the original PDF content stream operators directly, preserving the exact font, size, color, and position of the text being edited — when the embedded font already contains the glyphs you need.\n\n| | Traditional approach | pdf-edit-mcp |\n|---|---|---|\n| **Method** | Redact old text, stamp new text | Modify content stream operators in place |\n| **Font** | Substituted (often Helvetica) | Original font when possible; metric-equivalent fallback (e.g. Carlito for Calibri) when not |\n| **Position** | Re-calculated | Exact original coordinates |\n| **Quality feedback** | None | FidelityReport on every edit (`font_preserved`, `font_substituted`, `glyphs_missing`, `overflow_detected`, typed `degradations`) |\n\nPowered by [pdf-edit-engine](https://github.com/AryanBV/pdf-edit-engine) — a Python library for PDF content stream surge…","publisher":{"name":"Aryan B V","url":null},"homepage":"https://github.com/AryanBV/pdf-edit-mcp","repository":"https://github.com/AryanBV/pdf-edit-mcp","version":"0.2.0","license":"MIT","protocols":["mcp"],"tags":["ai-tools","claude","format-preserving","mcp","mcp-server","model-context-protocol","pdf","pdf-edit","pdf-replace"],"pricing":null,"endpoints":[{"url":"pypi:pdf-edit-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.722,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"pdf-edit-mcp","registry":"pypi","observedAt":"2026-11-09T23:25:32.043Z","publishedAt":"2026-06-02T11:12:34.407227Z","latestVersion":"0.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"pdf-edit-mcp","url":"https://pypi.org/project/pdf-edit-mcp/","firstSeenAt":"2026-09-10T09:25:49.825Z","fetchedAt":"2026-11-09T23:24:45.340Z","normalizedAt":"2026-11-09T23:24:45.340Z"}]},"firstSeenAt":"2026-09-10T09:25:49.825Z","updatedAt":"2026-11-09T23:25:32.043Z"}