{
  "markdown": "<!-- mcp-name: io.github.sathvic-kollu/techtenstein-pdf -->\n\n# Techtenstein PDF MCP\n\nMCP server that gives your Claude, Cline, or Cursor session the ability to extract\ntext, tables, and metadata from any PDF URL — including scanned PDFs via OCR.\nPowered by the [Techtenstein PDF Extract API](https://apis.techtenstein.com).\n\n## Tools exposed\n\n- `pdf_extract_text(pdf_url, ocr=False)` — Extract all text from a PDF as clean plain text\n- `pdf_extract_tables(pdf_url)` — Extract all tables as structured row arrays\n- `pdf_metadata(pdf_url)` — Get title, author, page count, creation date, encryption status\n\n## Install (Claude Desktop)\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"techtenstein-pdf\": {\n      \"command\": \"uvx\",\n      \"args\": [\"techtenstein-pdf-mcp\"],\n      \"env\": {\n        \"TECHTENSTEIN_API_KEY\": \"your_key_from_techtenstein.com\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop. `pdf_extract_text`, `pdf_extract_tables`, and `pdf_metadata` will appear as available tools.\n\n## Install (Cline / VS Code)\n\nCline auto-detects MCP servers from your Claude Desktop config. Same setup as above works.\n\n## Install (Cursor)\n\nAdd to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"techtenstein-pdf\": {\n      \"command\": \"uvx\",\n      \"args\": [\"techtenstein-pdf-mcp\"],\n      \"env\": {\"TECHTENSTEIN_API_KEY\": \"your_key\"}\n    }\n  }\n}\n```\n\n## Get an API key\n\nFree tier (50 extractions/day, no card): https://apis.techtenstein.com\n\nPaid tiers start at $5/month for 2,000 extractions.\n\n## Example usage\n\nOnce installed, ask Claude:\n\n> \"Extract the tables from this earnings report PDF: https://example.com/q4.pdf\"\n\nClaude will call `pdf_extract_tables` and return a clean structured view of every table on the page.\n\nOr for scanned documents:\n\n> \"This PDF is a scanned invoice. Extract the text: https://example.com/invoice.pdf\"\n\nClaude will call `pdf_extract_text(pdf_url, ocr=True)` and read the image-based text via OCR.\n\n## Response schema (text mode)\n\n```json\n{\n  \"text\": \"Full extracted body text...\",\n  \"page_count\": 12,\n  \"word_count\": 3450,\n  \"ms\": 240\n}\n```\n\n## Response schema (tables mode)\n\n```json\n{\n  \"tables\": [\n    {\n      \"page\": 3,\n      \"rows\": [\n        [\"Product\", \"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n        [\"Widget A\", \"1200\", \"1350\", \"1420\", \"1600\"]\n      ]\n    }\n  ]\n}\n```\n\n## Support\n\n- Docs: https://apis.techtenstein.com\n- Issues: https://github.com/sathvic-kollu/techtenstein-pdf-mcp/issues\n- Email: sathvic777@gmail.com\n\n## License\n\nMIT\n",
  "bytes": 2523,
  "sha": "c85e0663434709b0bacd58c91f93fe363482fa1d66d59c6754b1898f689d3152",
  "repo_slug": "sathvic-kollu/techtenstein-pdf-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_sathvic_kollu_techtenstein_pdf_a2baf456/readme"
}