StayPut について
StayPutは、PDFや写真をローカルで処理するMCP サーバーです。Claude、Cursor、VS Codeなどのクライアントで利用でき、ファイルはアップロードされず、入力ファイルも変更せずに新しいファイルを作成します。
主な機能
- 01PDFの結合・分割・回転
- 02PDFページの抽出・並べ替え・削除
- 03PDFへのページ番号の追加
- 04JPG・PNG画像のPDF化
- 05写真メタデータの確認と削除
活用シーン
- 01ローカルの請求書PDFの結合
- 02契約書から指定ページを抽出
- 03論文へのページ番号の追加
- 04写真のGPS情報を確認して削除した複製を作成
MCP 対応
MCP サーバーは、MCP対応クライアントにローカルでPDFや写真を処理するツールを提供します。ファイルは端末上で読み書きされ、ネットワークリクエストは発生しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
9掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | PDF のパス。 |
| password | string | いいえ | 開くときにパスワードを求められる PDF のパスワード。このマシン上でのみ使用されます。 |
詳細
Stayput MCP サーバー
Claude、Cursor、VS Code、その他の Model Context Protocol に対応するアプリで使える、ローカルの PDF・写真ツールです。アシスタントに PDF の結合やページの抽出、写真から GPS の位置情報の削除を頼むと、ご利用のマシン上で処理します。
ブラウザー版の stayput.dev と同じコードで動作します。ファイルはディスクから読み込まれ、ディスクに書き戻されます。アップロードは行われず、サーバーからネットワークリクエストが送信されることもありません。 無料のオープンソース(MIT)で、アカウントや API キーは不要です。
ツール
| ツール | 機能 |
|---|---|
merge_pdfs | 指定した順に PDF を 1 つに結合します |
extract_pdf_pages | 一部のページだけを残したり、ページを並べ替えたり(「3,1,2」)、ページを削除したりします |
split_pdf | 1 ページごと、または N ページごとにファイルを分割します |
rotate_pdf | すべてのページ、または指定したページを 90 度、180 度、270 度回転します |
number_pdf_pages | 「全 {total} ページ中 {n} ページ目」のようなページ番号を追加します |
pdf_info | ページ数、ページサイズ、タイトルを表示します |
images_to_pdf | JPG と PNG の画像を、再圧縮せずに 1 ページにつき 1 枚の PDF にまとめます |
inspect_image_metadata | 写真に含まれる GPS の位置情報、カメラ、撮影日時、その他の非表示メタデータを表示します |
strip_image_metadata | EXIF、GPS、XMP、コメントを削除した JPG、PNG、WebP のコピーを、再エンコードせずに作成します |
各ツールは新しいファイルを書き込み、そのパスを返します。入力ファイルが変更されることはなく、既存のファイルが上書きされることもありません(代わりに file-1.pdf が作成されます)。暗号化された PDF(銀行の明細書や印刷が制限されたフォームなど)は qpdf でローカルに復号されます。開くときにパスワードが必要な PDF では、アシスタントが password 引数にパスワードを渡します。
インストール
Node.js 20 以降が必要です。
Claude Code
claude mcp add stayput -- npx -y stayput-mcp
Claude Desktop、Cursor、Windsurf、その他の JSON 設定(claude_desktop_config.json、.cursor/mcp.json、...)
{
"mcpServers": {
"stayput": {
"command": "npx",
"args": ["-y", "stayput-mcp"]
}
}
}
VS Code
code --add-mcp '{"name":"stayput","command":"npx","args":["-y","stayput-mcp"]}'
インストール後は、次のように依頼できます。
- 「~/Downloads にある invoice-march.pdf と invoice-april.pdf を結合して」
- 「contract.pdf から 2〜5 ページを取り出して」
- 「IMG_2041.jpg に位置情報が含まれている?含まれていたら、位置情報のないコピーを作って」
- 「thesis.pdf の 3 ページ目からページ番号を付けて」
相対パスはサーバーを起動したフォルダーを基準に解決されるため、絶対パスか ~/... を指定するのが最も安全です。
対応していない機能
HEIC、WebP、AVIF の変換、圧縮、PDF から画像への変換、PDF への署名にはブラウザーエンジンが必要です。これらの機能は stayput.dev で利用できます。こちらも同じ仕組みで動作し、ブラウザー上で処理されるため、アップロードは行われません。
開発
cd mcp
npm install
npm test # builds dist/index.js and runs the end-to-end tests
テストではサイトのフィクスチャを使います。まずリポジトリのルートから python3 tests/fixtures/make-fixtures.py && node tests/fixtures/make-pdf.mjs を実行して生成してください(Pillow と pillow-heif が必要です)。
サーバーは ../src/lib から PDF とメタデータのコードをインポートし、esbuild(build.mjs)でバンドルします。ブラウザー専用の 2 つのモジュールはビルド時に置き換えられます。src/unlock.ts は <script> タグではなく node_modules から qpdf を読み込み、src/no-canvas.ts は PDF の圧縮でのみ使われる canvas ヘルパーの代わりになります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。