mcpField
E
eSign MCP Server

eSign MCP Server

ローカル
github.com/adamanzファイル・ストレージ073 週間前に更新

eSign MCP Server について

eSign MCP Serverは、AIワークフローで署名や文書情報を扱うためのPDF署名ツールを提供します。指定ページの座標にPNGまたはJPG画像を配置でき、ページ数や寸法も確認できます。

主な機能

  1. 01PDFの指定位置に署名画像を配置
  2. 02PNG・JPG形式の署名画像に対応
  3. 03署名の横に日付を追加可能
  4. 04PDFのページ数と寸法を取得
  5. 05Base64でファイル内容を転送

活用シーン

  1. 01契約書PDFに署名画像を配置
  2. 02署名の横に現在の日付を追加
  3. 03PDFのページ数と寸法を確認
  4. 04AIワークフローでPDF署名を処理

MCP 対応

互換クライアントに`sign_pdf`と`get_pdf_info`のツールを提供します。PDFの入力と署名後の出力はBase64で受け渡します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

eSign MCP サーバー

指定した座標に署名画像を追加して PDF ドキュメントに署名するツールを提供する MCP(Model Context Protocol)サーバーです。

クレジット

この MCP サーバーは、Charlie DeTar([email protected])による優れた signpdf プロジェクトを基盤として構築されています。元の signpdf ユーティリティが提供する PDF 署名機能を、この MCP サーバーが最新の MCP インターフェースで利用できるようにしています。

機能

  • sign_pdf:正確な位置に署名画像を PDF ドキュメントに追加します
  • get_pdf_info:ページ数やサイズなど、PDF のメタデータを取得します
  • 入力検証とエラー処理
  • PNG および JPG の署名画像に対応
  • 日付の追加(任意)
  • ファイル転送用の Base64 エンコード

ツール

sign_pdf

指定した座標に署名画像を追加して PDF ドキュメントに署名します。

パラメーター:

  • pdf_data (string):Base64 エンコードされた PDF ファイルの内容
  • signature_data (string):Base64 エンコードされた署名画像(PNG、JPG)
  • page_number (int, optional):署名するページ番号(1 から始まるインデックス、デフォルト:1)
  • x (float, optional):PDF 単位での左下隅からの X 座標(デフォルト:100)
  • y (float, optional):PDF 単位での左下隅からの Y 座標(デフォルト:100)
  • width (float, optional):PDF 単位での署名の幅(デフォルト:125)
  • height (float, optional):PDF 単位での署名の高さ(デフォルト:40)
  • add_date (bool, optional):署名の横に現在の日付を追加するかどうか(デフォルト:false)

戻り値: Base64 エンコードされた署名済み PDF の内容

get_pdf_info

ページ数やサイズなど、PDF ドキュメントに関する情報を取得します。

パラメーター:

  • pdf_data (string):Base64 エンコードされた PDF ファイルの内容

戻り値:

{
  "num_pages": 1,
  "pages": [
    {
      "page_number": 1,
      "width": 612.0,
      "height": 792.0
    }
  ]
}

インストール

前提条件
  • Python 3.11+
  • uv パッケージマネージャー(推奨)または pip
ローカルインストール
  1. このリポジトリをクローンまたはダウンロードします
  2. 依存関係をインストールします:
    uv pip install -r requirements.txt
    
サーバーの起動

MCP サーバーを起動するには:

uv run python mcp_server.py

デフォルトでは、サーバーは stdio トランスポートで起動します。

テスト

サーバーの機能を確認するテストスクリプトが用意されています:

uv run python test_server.py

次の処理が実行されます:

  1. テスト用 PDF ドキュメントを作成します
  2. テスト用署名画像を生成します
  3. get_pdf_info ツールをテストします
  4. sign_pdf ツールをテストします
  5. 署名済み PDF を test_signed.pdf として保存します

Docker デプロイ

このサーバーには、コンテナ化されたデプロイ用の Docker サポートが含まれています:

# Build the image
docker build -t pdf-signer-mcp .

# Run the container
docker run -p 8000:8000 pdf-signer-mcp

Smithery デプロイ

このサーバーは、付属の smithery.yaml 設定ファイルを使用して Smithery にデプロイできるように設定されています。

設定ファイル
  • Dockerfile:コンテナのビルド手順
  • smithery.yaml:Smithery のデプロイ設定
  • requirements.txt:Python の依存関係

使用例

Claude Desktop での使用
  1. claude.ai/download から Claude Desktop をインストールします
  2. このリポジトリをクローンします:
    git clone https://github.com/adamanz/esign-mcp.git
    cd esign-mcp
    
  3. 依存関係をインストールします:
    uv pip install -r requirements.txt
    
  4. 設定ファイルを編集して Claude Desktop を設定します:

設定ファイルの場所:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

設定:

{
  "mcpServers": {
    "esign-mcp": {
      "command": "uv",
      "args": [
        "run", 
        "python", 
        "/ABSOLUTE/PATH/TO/esign-mcp/mcp_server.py"
      ]
    }
  }
}
  1. MCP サーバーを読み込むため、Claude Desktop を再起動します
  2. MCP ツールを確認します。利用可能なツールを示す 🔨 ハンマーアイコンが表示されます
Claude Code での使用
  1. Claude Code をインストールします(まだインストールしていない場合)
  2. プロジェクトディレクトリで このリポジトリをクローンします:
    git clone https://github.com/adamanz/esign-mcp.git
    cd esign-mcp
    uv pip install -r requirements.txt
    
  3. ターミナルで MCP サーバーを起動します:
    uv run python mcp_server.py
    
  4. Claude Code では、stdio モードで実行すると MCP サーバーが自動的に検出されます
  5. Claude Code との会話で ツールを直接使用します
Cursor での使用
  1. cursor.sh から Cursor をインストールします
  2. プロジェクトに追加して MCP サーバーをセットアップします:
    git clone https://github.com/adamanz/esign-mcp.git
    cd esign-mcp
    uv pip install -r requirements.txt
    
  3. Cursor MCP 設定を作成または編集して、MCP サーバーを使用するよう Cursor を設定します
  4. サーバーを実行します:
    uv run python mcp_server.py
    
  5. Cursor の AI アシスタントインターフェースから ツールにアクセスします
代替方法:uv を使わずに使用する

標準の pip を使用する場合:

git clone https://github.com/adamanz/esign-mcp.git
cd esign-mcp
pip install -r requirements.txt
python mcp_server.py

設定を更新し、uv run python の代わりに python を使用します。

ツール呼び出しの例

PDF 情報の取得:

{
  "tool": "get_pdf_info",
  "arguments": {
    "pdf_data": "JVBERi0xLjQK..."
  }
}

PDF への署名:

{
  "tool": "sign_pdf",
  "arguments": {
    "pdf_data": "JVBERi0xLjQK...",
    "signature_data": "iVBORw0KGgoAAAA...",
    "page_number": 1,
    "x": 100,
    "y": 100,
    "width": 125,
    "height": 40,
    "add_date": true
  }
}
実際の使用例

MCP サーバーを起動すると、自然言語で PDF 署名ツールを操作できます:

会話の例:

  1. PDF 情報の取得:

    「PDF ファイルがあります。ページ数と寸法を教えてもらえますか?」

    AI は PDF ファイルの提供を求め、その後 get_pdf_info ツールを使って分析します。

  2. PDF への署名:

    「この契約書の PDF の最初のページに署名したいです。右下隅に署名画像を追加してもらえますか?」

    AI は適切な座標を使って右下に配置し、sign_pdf ツールを使用します。

  3. 複数の署名:

    「この PDF の 2 ページ目に、座標 200, 150 の位置で、100x30 ピクセルの大きさの署名を追加してください。今日の日付も追加してください。」

    AI は正確な座標を使い、日付の挿入を有効にします。

  4. 座標に関するサポートの取得:

    「この PDF に署名したいのですが、署名をどこに配置すればよいか分かりません。座標系について説明してもらえますか?」

    AI は PDF の座標について説明し、適切な値を選ぶ手助けをします。

技術上の注意

PDF の座標
  • 座標には PDF 標準単位(1/72 インチ)を使用します
  • 原点(0,0)はページの左下隅です
  • X は右方向、Y は上方向に増加します
対応画像形式
  • PNG(透過に対応しているため推奨)
  • JPG/JPEG
ファイルの取り扱い
  • すべてのファイル操作では一時ファイルを使用し、処理後に自動的に削除します
  • 入力を検証し、よくあるエラーを防ぎます
  • 説明的なメッセージを含む適切なエラー処理を行います

依存関係

  • fastmcp:MCP サーバーの実装に使用する FastMCP フレームワーク
  • pypdf:PDF の読み書きライブラリ
  • reportlab:PDF の生成と画像の配置
  • pillow:画像処理(reportlab の依存関係)

トラブルシューティング

よくある問題
  1. 「Module not found」エラー

    # Make sure dependencies are installed
    uv pip install -r requirements.txt
    # Or with pip
    pip install -r requirements.txt
    
  2. MCP サーバーが Claude Desktop に表示されない

    • claude_desktop_config.json のパスが絶対パス(相対パスではない)であることを確認します
    • 設定を変更した後、Claude Desktop を再起動します
    • Claude Desktop のログを確認します:~/Library/Logs/Claude/mcp*.log(macOS)
  3. 「Command not found: uv」

    • uv をインストールします:curl -LsSf https://astral.sh/uv/install.sh | sh
    • または、通常の pip を使用します:uv run python を python に置き換えます
  4. 権限エラー

    # Make sure the script is executable
    chmod +x mcp_server.py
    
  5. PDF への署名に失敗する

    • PDF と署名画像が有効であることを確認します
    • 座標がページの境界内にあることを確認します
    • まず get_pdf_info を使い、ページの寸法を確認します
ヘルプの利用
  • よくある問題については GitHub Issues を確認します
  • テストスクリプトを実行してインストールを確認します:uv run python test_server.py
  • Claude Desktop 固有の問題については、MCP troubleshooting guide を確認します

ライセンス

MIT ライセンス - このプロジェクトは、Charlie DeTar による元の signpdf プロジェクトと同じライセンスを採用しています。

元のプロジェクト

PDF 署名の中核機能は、Charlie DeTar による signpdf ユーティリティを基にしています。この MCP サーバーはその成果を拡張し、最新の AI 連携に対応する MCP 互換ツールを提供します。

貢献

  1. 提供されているテストスクリプトで変更をテストします
  2. すべての依存関係が適切に指定されていることを確認します
  3. 必要に応じてドキュメントを更新します
  4. 既存のコードスタイルとパターンに従います

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。