Loupe MCP
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Loupe MCPExtract the text from this scanned contract page by page"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Loupe MCP
Loupe is an MCP server that reads documents for AI agents. It turns PDFs, scans, photos and Office files into text, at one of two quality levels:
Quality | How | Result |
| Azure Document Intelligence, layout model | Markdown per page |
| Document Intelligence (high-resolution OCR), the PDF's text layer and form fields, and an image of the page, reconciled per page by a vision model | HTML per page; photos and drawings described, checkboxes, handwriting and strike-through marked |
Accepted inputs: PDF; JPEG, PNG, BMP, TIFF (multi-page), HEIC/HEIF; DOCX, DOCM, XLSX, PPTX; HTML. Types are detected by content, never by name.
Agents upload files from their sandbox with curl to a signed URL, submit them as one batch job, and read the text page by page in context or download it. Jobs run independently of the MCP connection, report progress per document, and continue on another replica if one restarts. One Loupe deployment serves many projects.
The full design is in docs/CONCEPT.md.
Tools
Tool | Purpose |
| Creates an upload and returns a signed URL; |
| Starts a job over an upload's files at quality |
| Status, progress per document, page methods, and one manifest URL for downloads |
| Whole pages of one document's transcript, as many as fit into a window |
| Stops a job; documents already read stay readable |
A typical session:
create_upload() → u_8sLx2…, uploadUrl
submit("u_8sLx2…", "accurate", language: "de") → j_4fKq9…, 120 documents
get_job("j_4fKq9…", wait: 10) → running, 37 of 120 succeeded
read_result("j_4fKq9…", "contract.pdf") → pages 1–4U="<uploadUrl>"; for f in scans/*; do curl -fsS -T "$f" "$U"; done
M="<download.manifestUrl>"; B="${M%/manifest.json}"
curl -fsS "$M" | jq -r '.documents[] | select(.status == "succeeded") | .path' \
| xargs -P4 -I{} curl -fsS --create-dirs -o {} "$B/{}"Related MCP server: LandingAI ADE MCP Server
Run locally (stdio)
Requires Node.js 24, pnpm, and an Azure Document Intelligence resource plus an Azure OpenAI deployment of a vision model.
pnpm install
cp .env.example .env.loupe # add your endpoints and keys
node src/index.ts --env-file .env.loupeRegister it with Claude Code:
claude mcp add loupe -- node /path/to/loupe-mcp/src/index.ts --env-file /path/to/.env.loupeIn stdio mode, the store is ./.loupe/store, and upload and download URLs point to a small HTTP endpoint on 127.0.0.1 that the server starts alongside.
With Docker (the published image runs the HTTP transport by default):
docker run -i --rm --env-file .env.loupe \
-e LOUPE_TRANSPORT=stdio -e LOUPE_HOST=0.0.0.0 -e LOUPE_PORT=8765 \
-e LOUPE_PUBLIC_URL=http://127.0.0.1:8765 -p 127.0.0.1:8765:8765 \
ghcr.io/coreprocess/loupe-mcp:0.1.0Deploy
Loupe runs as one shared container deployment, protected by Microsoft Entra ID (OAuth 2.1, MCP authorization spec): directly when the host is on a domain verified in the tenant, otherwise through Loupe's built-in authorization server, which signs users in at Entra (LOUPE_AUTH=entra-broker). See docs/deployment.md, the configuration reference in docs/configuration.md, and the Terraform module in terraform/.
Development
pnpm lint && pnpm typecheck && pnpm test # unit tests, no Docker
pnpm test:integration # Azurite, two replicas, curl; needs DockerThe tests run against mocks of Document Intelligence and Azure OpenAI; test documents are generated.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Document conversion and OCR for AI agents: PDF, Office docs, images to text.
Convert PDF, Word, Excel and scanned documents to Markdown, tables and RAG chunks. OCR.
Hosted document tools for agents: extract, parse, classify, convert, OCR, sign, and redact.
- DatanemOAuthcom.datanem
Turn PDFs, scans and photos into a queryable database. Invoices, CVs, receipts, in bulk.
Related MCP Servers
- FlicenseCqualityDmaintenanceEnables AI systems to analyze documents and extract form data through Azure Form Recognizer/Document Intelligence, supporting various document types including receipts, invoices, and ID documents.232 npm2-
- FlicenseNot gradedqualityDmaintenanceEnables extraction of text, tables, and structured data from PDFs, images, and office documents using LandingAI's Agentic Document Extraction API. Supports both direct parsing and background job processing for large files with privacy-focused processing.-
- AlicenseNot gradedqualityDmaintenanceEnables intelligent document processing by extracting text, classifying document types, and generating structured summaries from PDFs and images using vision LLMs.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to parse and search documents including PDF, Word, Excel, PowerPoint, and images via OCR, with support for semantic search and batch processing.2MIT