[project]
name = "pdf-mcp"
version = "0.1.3"
description = "Local MCP server for PDF form filling, editing, and OCR text extraction"
authors = [{ name = "Local User" }]
requires-python = ">=3.10"
dependencies = [
"mcp>=0.1.1",
"pypdf>=5.1.0",
"fillpdf>=0.7.3",
"pymupdf>=1.26.7",
]
[project.optional-dependencies]
dev = ["pytest", "pre-commit", "ruff"]
ocr = ["pytesseract>=0.3.10", "pillow>=10.0.0"]
[build-system]
requires = ["setuptools>=61"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
# Avoid setuptools flat-layout auto-discovery picking up repo-doc folders (e.g. PROJECT_MEMO).
where = ["."]
include = ["pdf_mcp*"]
exclude = ["PROJECT_MEMO*", "memories-and-kb*", "docs*", "scripts*", "tests*"]
[tool.ruff]
target-version = "py310"
line-length = 120
[tool.ruff.lint]
#
# We enforce linting incrementally:
# - CI + pre-push run ruff on *changed files* to prevent regressions.
# - Keep rule set small to avoid forcing repo-wide cleanup in one PR.
select = ["F", "E9", "I"]
[tool.ruff.format]
quote-style = "double"