PDF MCP Server
MCP Servers
A monorepo of Model Context Protocol servers. Each server under packages/ is an independently buildable, testable, and publishable MCP server that runs over stdio.
Packages
Package | Description |
Reads PDF files from local disk; returns text and positional structure to an LLM host over stdio. | |
Internal runner ( |
Quickstart
pnpm install
pnpm build
pnpm test
pnpm lintRequires Node >=22 and pnpm (managed via corepack — the packageManager field in the root package.json pins the exact version).
Usage
Servers are run through the runner binary, mcp-serve, which the root delegates to with pnpm serve <name>.
Run a server (builds first, then runs over stdio):
pnpm serve pdfDevelop a server (watches src/, rebuilds, and respawns on a clean rebuild; keeps the last-good server running on a compile error):
pnpm serve pdf --devSkip the build precondition when you know the build is current (run-only; ignored by --dev):
pnpm serve pdf --no-buildPoint an MCP host at a server by invoking the mcp-serve bin directly with the server name as the argument:
{
"mcpServers": {
"pdf": {
"command": "/absolute/path/to/node_modules/.bin/mcp-serve",
"args": ["pdf"]
}
}
}A typo'd name prints the list of known servers to stderr and exits non-zero.
Repository layout
.
├── packages/
│ ├── pdf/ # @jeius-mcp-servers/pdf
│ └── runner/ # @jeius-mcp-servers/runner (the mcp-serve runner)
├── docs/
│ ├── adr/ # repo-wide Architecture Decision Records
│ └── agents/ # repo-wide agent conventions (issue tracker, domain docs)
├── AGENTS.md # operational guide for AI coding agents (monorepo entry)
├── turbo.json # Turborepo task pipelines
├── tsconfig.base.json # shared TypeScript strict base
├── biome.json # shared lint/format config
└── pnpm-workspace.yaml # workspace definition (packages/*)Each package has its own AGENTS.md, CONTEXT.md, docs/ (PRD, architecture, tech-stack, plan, adr/), src/, and tests/.
Documentation
Agent guide:
AGENTS.mdDecisions:
docs/adr/— repo-wide ADRs; package-specific ADRs live inpackages/<name>/docs/adr/Domain glossaries: each
packages/<name>/CONTEXT.md
License
MIT