mcpField
S
SignNow MCP Server

SignNow MCP Server

ローカル
github.com/signnow生産性813 週間前に更新

SignNow MCP Server について

SignNow MCP Server は、AI エージェントを SignNow の電子署名ワークフローに接続し、テンプレート、招待、埋め込み署名、状態確認、文書取得のツールを提供します。ローカル stdio と Streamable HTTP に対応します。

主な機能

  1. 01テンプレートとテンプレートグループの閲覧
  2. 02テンプレートからの文書作成
  3. 03署名者の順序を指定した招待送信
  4. 04埋め込み署名・編集リンクの生成
  5. 05署名状態の確認と完了文書のダウンロード

活用シーン

  1. 01再利用可能なテンプレートによる文書準備
  2. 02複数の署名者への順番どおりの文書送信
  3. 03アプリへの署名フローの埋め込み
  4. 04完了文書の取得と進捗確認

MCP 対応

stdio または Streamable HTTP を介して、SignNow の電子署名ワークフローツールを MCP クライアントに提供します。サーバーへの認証情報設定に加え、HTTP ではリクエストごとのアクセストークンにも対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"signnow-sn": {
"command": "uvx",
"args": [
"signnow-mcp-server"
]
}
}
}
起動コマンドuvx signnow-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisignnow-mcp-server0.3.1

ツール

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

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

詳細

SignNow API について

SignNow REST API を使うと、署名者、書類作成者、送信者にシームレスな電子署名エクスペリエンスを提供できます。書類への事前入力、複数の署名者向けのブランド化された埋め込みワークフローの作成、支払いのリクエスト、署名状況のリアルタイム追跡が可能です。どのデバイスでも、シンプルで安全かつ直感的に署名できるようにします。

SignNow API でできること:

  • 役割に基づく順序で、署名用の書類や書類グループを送信する
  • 書類から再利用可能なテンプレートを作成する
  • データを使って書類のフィールドに事前入力する
  • 署名フローの一部として支払いを受け付ける
  • 書類の送信、署名、編集のエクスペリエンスをウェブサイト、アプリケーション、または任意の記録システムに埋め込む
  • 署名の進捗を追跡し、署名済みの書類をダウンロードする

SignNow MCP サーバー

AI エージェントに、STDIO または Streamable HTTP 経由で、SignNow の電子署名ワークフロー(テンプレート、埋め込み署名、招待、ステータス追跡、書類のダウンロード)への安全で構造化されたアクセスを提供する Model Context Protocol(MCP)サーバーです。

mcp-name: io.github.signnow/sn-mcp-server


目次


機能

  • テンプレートとグループ

    • すべてのテンプレートとテンプレートグループを参照する
    • テンプレートから書類やグループを作成する(ワンショットのワークフローにも対応)
  • 招待と埋め込み UX

    • メールでの招待と、順序を指定した受信者
    • アプリ内エクスペリエンス向けの埋め込み署名/送信/編集リンク
  • ステータスと取得

    • 招待のステータスと各ステップの詳細を確認する
    • 最終書類をダウンロードする(単一または結合済み)
    • プログラムによる判断に使える、標準化された書類/グループ構造を読み取る
  • トランスポート

    • STDIO(ローカルクライアントに最適)
    • Streamable HTTP(Docker/リモートに最適)

クイックスタート

前提条件
  • SignNow アカウント。無料の開発者アカウントを作成してください。
  • SignNow の認証情報:アカウントのメールアドレス、パスワード、アプリケーションの Basic Authorization Token が必要です。利用開始ガイドをご覧ください。
  • 有効な SignNow API アプリケーション。
  • Python 3.11 以降がシステムにインストールされていること(python3 --version で確認してください)
  • UVX がインストールされていること(uvx --version で確認してください)。最も手早くセットアップできるため、おすすめです。
  • 環境変数が設定されていること
  • クライアントが Streamable HTTP に対応している場合は、ローカルで実行する代わりに、デプロイ済みサーバーの URL https://mcp-server.signnow.com/mcp を使用できます。
クイック実行(uvx)

uv を使用する場合、パッケージをインストールせずにサーバーを実行できます。

uvx --from signnow-mcp-server sn-mcp serve
1. 環境変数の設定
# Create .env file with your SignNow credentials
# You can copy from env.example if you have the source code
# Or create .env file manually with required variables (see Environment Variables section below)
2. インストールと実行
オプション A:PyPI からインストール(推奨)
# Install the package from PyPI
pip install signnow-mcp-server

# Run MCP server in standalone mode
sn-mcp serve
オプション B:ソースからインストール(開発用)
# 1) Clone & configure
git clone https://github.com/signnow/sn-mcp-server.git
cd sn-mcp-server
cp .env.example .env
# fill in your values in .env

# 2) Install (editable for dev)
pip install -e .

# 3) Run as STDIO MCP server (recommended for local tools & Inspector)
sn-mcp serve

STDIO はデスクトップクライアントやローカルでのテストに最適です。

ローカル/リモート(HTTP)
# Start HTTP server on 127.0.0.1:8000
sn-mcp http

# Custom host/port
sn-mcp http --host 0.0.0.0 --port 8000

# Dev reload
sn-mcp http --reload

デフォルトでは、Streamable HTTP の MCP エンドポイントは /mcp 配下で提供されます。URL の例:

http://localhost:8000/mcp
Docker
# Build
docker build -t sn-mcp-server .

# Run HTTP mode (recommended for containers)
docker run --env-file .env -p 8000:8000 sn-mcp-server sn-mcp http --host 0.0.0.0 --port 8000

多くのクライアントでは、コンテナ内の STDIO は安定しません。Docker を使用する場合は、HTTP をおすすめします。

Docker Compose
# Only the MCP server
docker-compose up sn-mcp-server

# Both services (if defined)
docker-compose up

設定

.env.example を .env にコピーして、値を入力します。すべての設定は起動時に pydantic-settings によって検証されます。

認証オプション

1)API キー/アクセストークン(最も簡単)

SIGNNOW_ACCESS_TOKEN=<your_api_key>
# or equivalently:
SIGNNOW_API_KEY=<your_api_key>

API キーを生成 →

2)ユーザー名/パスワード

SIGNNOW_USER_EMAIL=<email>
SIGNNOW_PASSWORD=<password>
SIGNNOW_API_BASIC_TOKEN=<base64 basic token>

3)OAuth 2.0(ホスト型/高度なシナリオ向け)

SIGNNOW_CLIENT_ID=<client_id>
SIGNNOW_CLIENT_SECRET=<client_secret>
# + OAuth server & RSA settings below

一部のデスクトップクライアントから実行する場合、ユーザー名/パスワードのみがサポートされることがあります。

リクエストごとのアクセストークン(HTTP トランスポート)

マルチテナント/プロキシ環境では、ラッピングバックエンドが専用の HTTP ヘッダーを通じて、リクエストごとに SignNow の生のアクセストークンを付与できます。環境変数の設定は不要で、MCP/OAuth のベアラートークンを含む Authorization も再利用しません。

X-SignNow-Access-Token: <raw SignNow access_token>
  • 値は生のトークンです。Bearer プレフィックスは付けません。
  • リクエストごとに解決され、キャッシュにも保存にも使われません(ステートレス)。
  • 優先順位: 環境変数で設定した SIGNNOW_ACCESS_TOKEN(オプション 1)が引き続き優先されます。ヘッダーをリクエストごとの認証情報として使うには、SIGNNOW_ACCESS_TOKEN も設定することは避けてください。設定すると、すべてのリクエストで環境変数のトークンが使われます。このヘッダーは、汎用の Authorization: Bearer より優先されます。
  • HTTP トランスポートのみ(sn-mcp http)。ツールの引数として公開されないため、トークンがモデルのコンテキストや会話ログに入ることはありません。HTTPS 経由で送信してください。
SignNow と OAuth の設定
# SignNow endpoints (defaults shown)
SIGNNOW_APP_BASE=https://app.signnow.com
SIGNNOW_API_BASE=https://api.signnow.com

# OAuth server (if you enable OAuth mode)
OAUTH_ISSUER=<your_issuer_url>
ACCESS_TTL=3600
REFRESH_TTL=2592000
ALLOWED_REDIRECTS=<comma,separated,uris>

# RSA keys for OAuth (critical in production)
OAUTH_RSA_PRIVATE_PEM=<PEM content>
OAUTH_JWK_KID=<key id>
本番環境でのキー管理

本番環境で OAUTH_RSA_PRIVATE_PEM が設定されていない場合、再起動のたびに新しい RSA キーが生成され、既存のすべてのトークンが無効になります。本番環境では、シークレット管理を通じて永続的な秘密鍵を必ず指定してください。


クライアントの設定

VS Code — GitHub Copilot(エージェントモード)/Cursor

ワークスペースに .vscode/mcp.json / .cursor/mcp.json を作成します。

STDIO(ローカル):

{
  "servers": {
    "signnow": {
      "command": "sn-mcp",
      "args": ["serve"],
      "env": {
        "SIGNNOW_USER_EMAIL": "${env:SIGNNOW_USER_EMAIL}",
        "SIGNNOW_PASSWORD": "${env:SIGNNOW_PASSWORD}",
        "SIGNNOW_API_BASIC_TOKEN": "${env:SIGNNOW_API_BASIC_TOKEN}"
      }
    }
  }
}

STDIO(uvx — ローカルインストール不要):

{
  "servers": {
    "signnow": {
      "command": "uvx",
      "args": ["--from", "signnow-mcp-server", "sn-mcp", "serve"],
      "env": {
        "SIGNNOW_USER_EMAIL": "${env:SIGNNOW_USER_EMAIL}",
        "SIGNNOW_PASSWORD": "${env:SIGNNOW_PASSWORD}",
        "SIGNNOW_API_BASIC_TOKEN": "${env:SIGNNOW_API_BASIC_TOKEN}"
      }
    }
  }
}

HTTP(リモートまたは Docker):

{
  "servers": {
    "signnow": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

次に、チャットを開いて エージェントモードを選択し、signnow ツールを有効にして、プロンプトで使用します。

注:Cursor にも同じ設定を適用できます。MCP 設定(STDIO または HTTP)に追加してください。STDIO では、上記のように uvx も使用できます。

Claude Desktop

Desktop Extensions を使うか、MCP 設定を手動で編集します(Developer → Edit config)。

手順:

  1. Claude Desktop を開き、Developer → Edit config を選択します
  2. mcpServers の下に新しいサーバーエントリを追加します
  3. 保存して Claude Desktop を再起動します

例:

STDIO(ローカルインストール):

{
  "mcpServers": {
    "signnow": {
      "command": "sn-mcp",
      "args": ["serve"],
      "env": {
        "SIGNNOW_USER_EMAIL": "${env:SIGNNOW_USER_EMAIL}",
        "SIGNNOW_PASSWORD": "${env:SIGNNOW_PASSWORD}",
        "SIGNNOW_API_BASIC_TOKEN": "${env:SIGNNOW_API_BASIC_TOKEN}"
      }
    }
  }
}

STDIO(uvx — ローカルインストール不要):

{
  "mcpServers": {
    "signnow": {
      "command": "uvx",
      "args": ["--from", "signnow-mcp-server", "sn-mcp", "serve"],
      "env": {
        "SIGNNOW_USER_EMAIL": "${env:SIGNNOW_USER_EMAIL}",
        "SIGNNOW_PASSWORD": "${env:SIGNNOW_PASSWORD}",
        "SIGNNOW_API_BASIC_TOKEN": "${env:SIGNNOW_API_BASIC_TOKEN}"
      }
    }
  }
}

HTTP(リモートまたは Docker):

{
  "mcpServers": {
    "signnow": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

次に、Claude のチャットでサーバーを有効にして、ツールを使い始めます。

Glama(ホスト型 MCP)

最小限の設定で、このサーバーを Glama にデプロイして実行できます。

手順:

  1. Glama のサーバーページを開きます:Glama 上の sn-mcp-server
  2. 赤い「Deploy Server」ボタンをクリックします
  3. 環境変数に次の値を指定します:
    • SIGNNOW_USER_EMAIL
    • SIGNNOW_PASSWORD
    • SIGNNOW_API_BASIC_TOKEN
    • (その他の変数はデフォルトのままでかまいません)
  4. Glama でアクセストークンを作成し、エンドポイント URL をコピーします。次のような形式です。
https://glama.ai/endpoints/{someId}/mcp?token={glama-mcp-token}

この HTTP MCP URL は、HTTP トランスポートに対応する任意のクライアントで使用できます(例:VS Code/Cursor の JSON 設定、または上記の Claude Desktop の HTTP の例)。

MCP Inspector(テスト)

ツールやスキーマを視覚的に確認するのに便利です。

# Start Inspector (opens UI on localhost)
npx @modelcontextprotocol/inspector

# Connect (STDIO): run your server locally and attach
sn-mcp serve

# Or connect (HTTP): use http://localhost:8000/mcp

ツールの一覧表示、JSON 引数を使った呼び出し、レスポンスの確認ができます。


ツール

各ツールの説明は簡潔に記載されています。正確な JSON スキーマを確認するには、MCP クライアント(例:Inspector)を使用してください。

  • list_all_templates — 簡略化されたメタデータでテンプレートとテンプレートグループを一覧表示します。limit/offset によるページネーションに対応しています(デフォルト:1ページあたり50件)。
  • list_contacts — 名前、メールアドレス、電話番号で CRM の連絡先を検索します。ID、メールアドレス、名/姓、会社名を返します。名前から受信者のメールアドレスを特定するには、send_invite の前に使用してください。per_page に対応しています(デフォルト15、最大100)。
  • list_documents — ドキュメント、ドキュメントグループ、ステータスを閲覧します。limit/offset によるページネーションに対応しています(デフォルト:1ページあたり50件)。
  • create_from_template — テンプレート/テンプレートグループからドキュメントまたはグループを作成します。
  • create_template — ドキュメントまたはドキュメントグループを、署名に再利用できるテンプレートに変換します。
  • send_invite — メールで招待を送信します(ドキュメントまたはグループ)。受信者の順序を指定できます。フィールドのない自由形式のドキュメントを自動検出します。自由形式の受信者では role を省略してください。self_sign=True(orders なし)を渡すと、自分でドキュメントに署名できます。このツールはサーバー側でユーザーのメールアドレスを特定し、すぐに開ける署名リンクを任意のフィールド link に含む SendInviteResponse を返します(自由形式の受信者のメールアドレスが認証済みユーザーと一致する場合も、このフィールドに値が設定されます)。テンプレート/テンプレートグループの場合は、先にドキュメント/ドキュメントグループを自動作成します。
  • create_embedded_invite — ドキュメント/グループ/テンプレート向けに、メールを送信せず埋め込み署名セッションを作成します。テンプレート/テンプレートグループの場合は、先にドキュメント/ドキュメントグループを自動作成します。
  • create_embedded_sending — ドキュメント/グループ/テンプレート向けに、埋め込みの「送信/管理」エクスペリエンスを作成します。テンプレート/テンプレートグループの場合は、先にドキュメント/ドキュメントグループを自動作成します。
  • create_embedded_editor — ドキュメント/グループ/テンプレートにフィールドを配置/調整するための埋め込みエディターリンクを作成します。テンプレート/テンプレートグループの場合は、先にドキュメント/ドキュメントグループを自動作成します。
  • send_invite_from_template — ワンショットで、テンプレートから作成して招待を送信します。
  • create_embedded_sending_from_template — ワンショットで、テンプレートから埋め込みの送信エクスペリエンスを作成します。
  • create_embedded_editor_from_template — ワンショットで、テンプレートから埋め込みエディターを作成します。
  • create_embedded_invite_from_template — ワンショットで、テンプレートから埋め込み署名を作成します。
  • get_invite_status — ドキュメントまたはグループの現在の招待ステータス/手順を取得します。フィールド招待と自由形式の招待に対応しています(両方ある場合はフィールドの経路を優先します)。レスポンスには invite_mode(field または freeform)が含まれます。自由形式のドキュメントグループでは、署名者のメールアドレスはグループの documents リスト(signature_requests)から取得します。
  • get_document_download_link — 直接ダウンロードリンクを取得します(グループの場合は統合された出力)。
  • get_signing_link — ドキュメントまたはドキュメントグループの署名リンクを取得します。
  • get_document — フィールド値を含む正規化されたドキュメント/グループ構造に加え、v3.0 ではエンティティが保存されているフォルダー(folder_id/folder_name)を取得します。
  • update_document_fields — 個々のドキュメントのテキストフィールドに値を事前入力します。
  • upload_document — ローカルファイルパス(file_path)、公開 URL(file_url)、または MCP リソース添付ファイル(resource_uri)からファイルをアップロードします。kind='template'(デフォルトは 'document')を設定すると、通常のドキュメントではなく再利用可能なテンプレートとして保存されます(その場合、返される document_id はテンプレート ID となり、next_steps はテンプレート向けの後続手順に切り替わります)。file_path の場合、解決後のパスは設定された安全なベースディレクトリ(デフォルトではユーザーのホームディレクトリ)内にある必要があります。このベースディレクトリ外のパスは検証に失敗します。対応形式:PDF、DOC、DOCX、PNG、JPG、JPEG。最大40 MB。document_id、filename、source を返します。
  • send_invite_reminder — ドキュメントまたはドキュメントグループで、署名待ちの署名者に署名リマインダーを送信します。
  • cancel_invite — ドキュメントまたはドキュメントグループに対する、保留中の有効な署名招待をすべてキャンセルします。エンティティの種類と招待の種類(フィールド/自由形式)を自動検出します。ステータスとして cancelled、completed(すでに完了)、または invite_not_sent を返します。
  • update_invite_recipient — 保留中のフィールド招待の署名受信者を置き換えます。現在の署名者に対する保留中の招待を検索し、新しいメールアドレスに差し替えます。ドキュメントとドキュメントグループの両方に対応しています。フィールド招待のみ対応しており、自由形式/埋め込み招待には対応していません。
  • view_document — ドキュメントまたはドキュメントグループの読み取り専用埋め込み表示リンクを生成します。MCP Apps 対応クライアントではドキュメントがインライン表示されます。それ以外のホストでは、クリック可能な URL としてリンクが返されます。
  • rename_entity — ドキュメント、ドキュメントグループ、テンプレート、またはテンプレートグループの名前を変更します。指定がない場合はエンティティの種類を自動検出します。
  • signnow_skills — 同梱の SignNow スキルライブラリを検索します。skill_name を省略すると、説明付きですべての利用可能なスキルを一覧表示します。skill_name(例:signnow101)を指定すると、Markdown 本文全体を取得します。SignNow のエンティティの種類、招待の種類、ツールの対応関係を学ぶには signnow101 を使用してください。
    • 一覧表示モードの例:{"skills": [{"name": "signnow101", "description": "SignNow の基本概念リファレンス...(説明は簡潔さのため省略)"}]}
    • 取得モードの例:{"name": "signnow101", "body": "# SignNow 101 — 概念リファレンス\n..."}

ヒント:まず引数なしで signnow_skills を実行して利用可能なスキルを確認し、次に list_all_templates → create_from_template → create_embedded_* / send_invite の順に実行します。その後、get_invite_status と get_document_download_link を実行してください。


FAQ / ヒント

  • STDIO と Docker のどちらを使うべきですか? ローカル開発では STDIO を、Docker 内では HTTP を推奨します。
  • サンドボックスと本番環境のどちらを使うべきですか? まず SignNow のサンドボックス/開発用認証情報を使用してください。本番環境では、適切な OAuth と永続化された RSA 秘密鍵が必要です。
  • 正確なツールスキーマはどこで確認できますか? MCP Inspector またはクライアントの「ツールの詳細」ビューを使用してください。
  • サンプルはどこにありますか? このリポジトリの examples/ を参照してください。導入の参考になるサンプルが用意されています。

サンプル

examples/ ディレクトリには、一般的な AI エージェントのフレームワークと SignNow MCP Server を連携させるための、実際に動作するサンプルが含まれています。

  • LangChain - langchain-mcp-adapters を使用して LangChain エージェントと連携します
  • LlamaIndex - llama-index-tools-mcp を使用して LlamaIndex エージェントと連携します
  • SmolAgents - MCP のネイティブサポートを使用して SmolAgents フレームワークと連携します

各サンプルでは、次の方法を紹介します。

  • MCP サーバーをサブプロセスとして起動する
  • MCP ツールをフレームワーク固有のツール形式に変換する
  • SignNow の機能を利用できるエージェントを作成する
  • 環境変数の設定を処理する

サンプルを実行するには:

# Make sure you have the required dependencies installed
pip install langchain-openai langchain-mcp-adapters  # for LangChain example
pip install llama-index-tools-mcp                   # for LlamaIndex example  
pip install smolagents                              # for SmolAgents example

# Set up your .env file with SignNow credentials and LLM configuration
# Then run the example
python examples/langchain/langchain_example.py
python examples/llamaindex/llamaindex_example.py
python examples/smolagents/stdio_demo.py

便利なリソース

サンプルアプリ

すぐに使えるサンプルアプリを試して、SignNow API を使用したソフトウェアからの書類の準備、署名、送信をすばやくテストしましょう。

サンプルアプリをお試しください。

API ドキュメント

SignNow API のリクエスト、パラメーター、コード例、発生する可能性のあるエラーに関する技術的な詳細を確認できます。詳細なガイドやユースケースで、API の機能について学びましょう。

API ドキュメントをお読みください。

SignNow API Helper MCP

AI を接続すると、API ドキュメントへのアクセス、複雑な署名ワークフロー向けのコード生成、連携エラーの自動トラブルシューティングができます。 API Helper MCP にアクセス


ライセンス

MIT — LICENSE.mdを参照してください。


概要 SignNow MCP Server — SignNow チームがメンテナンスしています。GitHub のプルリクエストで、課題の報告や貢献を歓迎します。


コメント

MCP は初めてですか?

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

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