Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Read PDFs locally: text, pages, metadata, scan detection, layout, permissions, render, OCR.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"benspdf": {
"command": "uvx",
"args": [
"benspdf-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add benspdf -- uvx benspdf-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"benspdf": {
"command": "uvx",
"args": [
"benspdf-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"benspdf": {
"type": "stdio",
"command": "uvx",
"args": [
"benspdf-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント benbergner で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, FactLot
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
BensPDF
PDF tools for AI agents. Your files never leave your machine.
Install in one click
Ben's PDF tools for AI agents, exposed over the Model Context Protocol (MCP).
[!NOTE]
Your PDFs are read on your own machine and never uploaded. With a hosted model
your questions still reach that model; pair the tools with a local Ollama model
and nothing leaves the machine at all.
Works with Claude Desktop, Claude Code, VS Code, Kiro, Cursor, the ChatGPT desktop app, and any other MCP client. The one-click buttons above need uv; for every other client, or to do it by hand, see Setup.
| Tool | What it does |
|---|---|
pdf_page_count | Counts the pages in a PDF |
pdf_metadata | Reads document properties: title, author, dates, producer |
pdf_check_text | Says whether a PDF is readable text or a scan that needs OCR |
pdf_extract_text | Reads the text a PDF holds, page by page |
pdf_page_layout | Page sizes, orientation, rotation and page boxes |
pdf_check_access | Encryption, and what the file permits: printing, copying, editing |
pdf_render_pages | Renders pages to images, so a page can be looked at |
pdf_ocr | Reads a scan with OCR, and can add a searchable text layer to it |
create_test_pdf_file | Generates a throwaway PDF, handy for trying things out |
export | Saves results to a real location on disk |
list_artifacts | Lists recent temporary results |
discard | Deletes temporary results now |
Every tool but one needs nothing beyond the package. pdf_ocr uses tesseract, a system program rather than a Python package, and only looks for it when you actually call it — so install it if and when you want OCR (brew install tesseract, sudo apt install tesseract-ocr, or winget install UB-Mannheim.TesseractOCR), and everything else works either way.
When a tool makes a new PDF, it goes into a scratch folder instead of your own folders, and you get back a short id like art_a1b2c3d4.pdf. Tools accept those ids anywhere they accept a file path, so several steps can be chained together.
Results carry the artifact's path as well as its id, so you can open a rendered page or an intermediate file straight away without exporting it first.
export is the only tool that writes into your folders, so nothing shows up until you ask for it. Each time the server starts it clears out scratch files older than 7 days. Set BENSTOOLS_WORKSPACE to put the scratch folder somewhere other than ~/.benstools/work.
Install uv once, then point your client at uvx benspdf-mcp and uv fetches the package, plus a suitable Python, on first run.
# macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
On macOS, brew install uv works too.
Add the server to your client with one of the configs below, then restart the server from your client's UI. Once connected, just ask in plain language:
How many pages are in ~/Downloads/report.pdf?
Edit claude_desktop_config.json, which lives at ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows. You can also open it from Settings → Developer → Edit Config.
{
"mcpServers": { "benspdf": { "command": "uvx", "args": ["benspdf-mcp"] } } }
One command, no config file. Add --scope user to enable it everywhere rather than just the current project.
claude mcp add benspdf -- uvx benspdf-mcp
Check it connected with claude mcp list.
.vscode/mcp.json in your workspace, or the same file in your user profile. Note VS Code uses servers rather than mcpServers, and wants an explicit type.
{
"servers": { "benspdf": { "type": "stdio", "command": "uvx", "args": ["benspdf-mcp"] } } }
.kiro/settings/mcp.json in your workspace, or ~/.kiro/settings/mcp.json to enable it everywhere. autoApprove skips the confirmation prompt for tools you trust.
{
"mcpServers": { "benspdf": { "command": "uvx", "args": ["benspdf-mcp"], "autoApprove": ["pdf_page_count"] } } }
The button at the top does this for you. By hand, it's ~/.cursor/mcp.json to enable it everywhere, or .cursor/mcp.json in a project.
{
"mcpServers": { "benspdf": { "type": "stdio", "command": "uvx", "args": ["benspdf-mcp"] } } }
~/.codeium/windsurf/mcp_config.json. You can also reach it from Cascade: Settings → Cascade → Manage MCPs → View raw config, which is worth using since the path has moved between versions.
{
"mcpServers": { "benspdf": { "command": "uvx", "args": ["benspdf-mcp"] } } }
~/.continue/config.yaml, or a .yaml file under .continue/mcpServers/ in a project. Continue is the one client here that doesn't take the JSON shape above: its config is YAML, and mcpServers is a list rather than an object keyed by name.
mcpServers:
All three are Codex clients and share one config file, ~/.codex/config.toml, so adding the server once covers all of them. Note this one is TOML, not JSON.
[mcp_servers.benspdf]
command = "uvx" args = ["benspdf-mcp"]
Almost every client uses the same JSON as Claude Desktop above — an mcpServers object, with command set to uvx and args to ["benspdf-mcp"]. Some want an explicit "type": "stdio"; adding it is harmless where it isn't required.
If a client just asks for a command to run, it's:
uvx benspdf-mcp
The clients above keep your PDFs local, but they answer using a hosted model. Pair the tools with a local model instead and nothing leaves your machine.
You'll need Ollama with a model pulled, plus this package:
pip install benspdf-mcp ollama
ollama pull llama3.1
Then run the bundled CLI:
benspdf-cli # uses the first model you have
benspdf-cli --model llama3.1 # or pick one BENSPDF_MODEL=llama3.1 benspdf-cli # or set it once
python -m benspdf.cli does the same thing, handy from a source checkout.
You: how many pages in ~/Downloads/report.pdf?
[Using tool: pdf_page_count] [Result: 12 pages in report.pdf] Assistant: The PDF has 12 pages.
Each tool's own description tells your client what it does and when to use it, so in normal use there is nothing to look up. If you want the detail — every field a tool returns, and the reasoning behind the answers it gives — see the tool reference.
To work on the code, see CONTRIBUTING.md.
Apache 2.0