SignWell について
SignWell の MCP サーバーは、署名ワークフローを管理するチーム向けに、電子署名文書の操作を MCP クライアントに提供します。下書きの作成・送信、状態確認、テンプレート管理に対応し、クライアント設定用ウィザードも備えています。
主な機能
- 01文書とテンプレートの作成
- 02下書きの送信と署名状態の確認
- 03受信者と文書の管理
- 04文書・テンプレートリソースの読み取り
- 05ウィザードによる MCP クライアント設定
活用シーン
- 01電子署名用文書の作成
- 02下書きの送信と署名進捗の追跡
- 03完了文書の PDF リンク取得
- 04MCP クライアント向け SignWell 設定
MCP 対応
STDIO 経由で SignWell の文書・テンプレート操作ツールと読み取り専用リソースを MCP クライアントに提供します。設定ウィザードは Claude Desktop、Claude Code、Cursor、OpenCode を構成できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
16掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | |
| file_url | string | いいえ | |
| file_path | string | いいえ | |
| resource_uri | string | いいえ |
詳細
SignWell MCP サーバー
SignWell の電子署名ワークフローをオーケストレーションする Model Context Protocol サーバーです。
前提条件
- Node.js v18 以降。
- ドキュメントへのアクセス権がある SignWell API キー(環境変数
SIGNWELL_API_KEY)。 - オプションの上書き設定:
- 本番環境以外のエンドポイントには
SIGNWELL_API_BASE_URLを使用します。 - HTTP クライアントのタイムアウトを調整するには
SIGNWELL_API_TIMEOUT_MSを使用します(デフォルトは 90000 ms。setupの CLI フラグ--timeoutを指定すると、環境変数のプロンプトをスキップし、この設定を保存します)。
- 本番環境以外のエンドポイントには
セットアップ
対話型ウィザード(推奨)
-
まだインストールしていない場合は、依存関係をインストールします。
npm install -
CLI をバンドルし、MCP クライアントがビルド出力を参照するようにします。
npm run build -
ウィザードを実行し、プロンプトに従います。
node build/index.js setup- SignWell のシークレットは、Linux では
~/.config/signwell-mcp/env、macOS では~/Library/Application Support/SignWell/MCP/env、Windows では%APPDATA%/SignWell/MCP/envに、0700/0600のアクセス許可で保存されます。 - Claude Desktop、Claude Code、Cursor、OpenCode の設定ファイルを自動的に更新します(書き込みの前にバックアップが作成されるため、プラットフォームごとのパスを探す必要はありません)。
- クライアントの設定先:
- Claude Code:
~/.claude.jsonのmcpServers.signwell - Claude Desktop:
claude_desktop_config.jsonのmcpServers.signwell - Cursor:
~/.cursor/mcp.jsonのmcpServers.signwell - OpenCode:
~/.config/opencode/opencode.jsonのmcp.signwell(Windows:%USERPROFILE%\.config\opencode\opencode.json)
- Claude Code:
- 各クライアントで文書化されている JSON ラッパーと STDIO/ローカルサーバーの形式を使用するため、クライアントの再起動後にサーバーが表示されます。
- 以前の Claude Code のインストールで古い
~/.claude/mcp.jsonのservers.signwellエントリーが書き込まれている場合、セットアップを再実行すると、そのレガシーファイルのバックアップを作成し、正しい~/.claude.json設定を書き込んだ後、古い SignWell エントリーだけを削除します。 --print(または-p)を指定すると、ディスクに書き込まずに出力をプレビューできます。また、--yes --api-key=...を指定すると、非対話型の実行(CI、開発用コンテナーなど)ができます。- ウィザードで設定する MCP クライアントを制限するには、
--clients=claude-desktop,cursorを渡します。すべてのクライアントを対象にする場合は省略します。デフォルト以外の HTTP タイムアウトが必要な場合にのみ、--timeout=<ms>を渡してください。 - バンドル(
npm run build)してパッケージを公開すると、エンドユーザーはnpx @signwell/mcp setupで同じウィザードを実行できます。グローバルにインストールすると、signwell-mcp setupを直接実行することもできます。
- SignWell のシークレットは、Linux では
手動での環境変数設定
環境変数を自分で管理したい場合は、サーバーを実行する前に必要な値をエクスポートします。
export SIGNWELL_API_KEY="your_api_key"
# export SIGNWELL_API_BASE_URL="https://www.signwell.com/api/v1" # optional
インストール(npm)
パッケージが npm(GitHub:Bidsketch/signwell-mcp)に公開された後は、次の方法でインストールできます。
-
グローバルにインストールせずにセットアップウィザードを実行します。
npx @signwell/mcp setup -
バイナリを継続して使用する場合は、グローバルにインストールします。
npm install -g @signwell/mcp signwell-mcp setup
設定後、signwell-mcp を使って MCP サーバーを起動します(Node.js v18 以降が必要です)。
signwell-mcp.mcpb ファイルは、Claude Desktop 用の独立した拡張機能アーティファクトです。ルートの manifest.json を使用するため、リリース用には npm run build の実行後に再ビルドしてください。
ローカル開発ワークフロー
-
依存関係をインストールします:
npm install -
CLI エントリーポイントをバンドルします(MCP クライアントの設定に必要です):
npm run build -
認証情報を設定します:
node build/index.js setup(公開後はnpx @signwell/mcp setupも使用できます) -
MCP サーバーをローカルで起動します:
npm start(node build/index.jsを実行します) -
コミットする前に、別のターミナルを開いてテストとリンターを実行します。
npm test npm run typecheck npm run lint -
MCP Inspector やその他のクライアントを使用する場合は、
npm start(stdio)を指定してください。
サーバーの実行
-
開発用エントリーポイント(stdio トランスポート):
SIGNWELL_API_KEY="$SIGNWELL_API_KEY" npm start # or run directly: SIGNWELL_API_KEY="$SIGNWELL_API_KEY" node build/index.js -
CLI ヘルパー:
node build/index.js --helpは使い方と環境変数の要件を表示します。node build/index.js --versionは現在のビルドを表示します。node build/index.js setupは、ソースから作業している場合に、前述のセットアップウィザードを起動します。- パッケージがバンドル/公開された後は、
npx @signwell/mcp setupでウィザードを実行でき、SIGNWELL_API_KEY=... npx @signwell/mcpでパッケージ化されたバイナリを介してサーバーを起動できます(グローバルインストールの場合は、signwell-mcp ...を直接実行できます)。
MCP Inspector
MCP Inspector を使って、ローカルでツールを試してください。
npx @modelcontextprotocol/inspector node build/index.js
テスト
品質チェックを順番に実行します。
npm test
npm run typecheck
npm run lint
npm run format
デモ
MCP Inspector のセッション例(ID はサニタイズ済み):
-
下書きを作成
Tool: document_create Input: { "name": "Sales Agreement", "recipients": [{ "id": "1", "name": "Alice Example", "email": "[email protected]" }], "files": [{ "name": "agreement.pdf", "file_url": "https://files.example.com/agreement.pdf" }] } Output: { "ok": true, "type": "document_create", "message": "Document draft created.", "data": { "id": "doc_123", "status": "draft" } } -
下書きを送信
Tool: document_send_draft Input: { "document_id": "doc_123", "confirm_send": true } Output: { "ok": true, "type": "document_send_draft", "message": "Send request accepted.", "data": { "id": "doc_123", "status": "Sent" }, "warnings": ["Status may update asynchronously. If this response still shows Draft, call document_get after a few seconds; do not send again. Recipient send_email is an embedded-signing setting, not an email-delivery receipt."] } -
ステータスを確認
Tool: document_get Input: { "document_id": "doc_123" } Output: { "ok": true, "type": "document_get", "message": "Fetched document status.", "data": { "id": "doc_123", "status": "completed", "recipients": [{ "email": "[email protected]", "status": "signed" }] } } -
完成した PDF
Tool: document_completed_pdf Input: { "document_id": "doc_123" } Output: { "ok": true, "type": "document_completed_pdf", "data": { "pdf_url": "https://signwell-downloads.example.com/doc_123.pdf" } }
プライバシーポリシー
このセクションでは、SignWell MCP サーバーのデータ取り扱いについて説明します。
データの収集
- MCP サーバー自体は、個人データや使用状況の分析データを収集、送信、保存しません。
- SignWell API キーは、アクセス許可を制限したファイル権限(
0600)で、プラットフォームごとの安全な場所にローカル保存されます。- macOS:
~/Library/Application Support/SignWell/MCP/env - Linux:
~/.config/signwell-mcp/env - Windows:
%APPDATA%/SignWell/MCP/env
- macOS:
使用と保存
file_storeで提供されたファイルは、60 分の TTL で一時的にメモリ内に保持され、自動的に消去されます。- メモリ内のファイルデータはすべて、サーバーの再起動時にも消去されます。
- セットアップ時に作成される認証情報ファイル以外に、永続的なデータ保存はありません。
第三者との共有
- MCP サーバーは、第三者とデータを共有しません。
- すべての API 通信は、お使いのマシンと SignWell のサーバー(
https://www.signwell.com/api/v1)の間で直接行われます。
テレメトリーと分析
- サーバーは、いかなる種類の使用状況分析データやテレメトリーも収集、送信、保存しません。
データの保持
- メモリ内のファイルストレージは、サーバーの再起動時、または 60 分の TTL の期限切れ後に消去されます。
- ローカルの認証情報設定ファイル以外に、永続的に保持されるデータはありません。
お問い合わせ
プライバシーに関するお問い合わせは、[email protected] までご連絡いただくか、github.com/Bidsketch/signwell-mcp/issues で issue を作成してください。
ホストされているプライバシーポリシーは、https://www.signwell.com/privacy/ もご覧ください。
リソース
- MCP リソース:
document://{id}とtemplate://{id}は、ツールと同じ正規化ロジックを再利用する読み取り専用の JSON スナップショットを提供します。これにより、インスペクターや他の MCP クライアントから、以前に作成したアセットをすばやく参照できます。
ファイルの添付と下書きの安全性
document_createとtemplate_create_documentは常にdraft: trueを設定するため、document_send_draftを明示的に呼び出さない限り、メールが送信されることはありません。files配列を使って、file_url(公開 URL、または Claude Desktop などの UI でファイルを@添付した際に MCP クライアントが提供するリンク)、file_base64、またはresource_uriのいずれかでファイルを指定します。resource_uriを指定すると、MCP サーバーは自動的にresources/readを呼び出して添付ファイルのバイトデータを取得し、SignWell の/api/v1/documents/エンドポイントに転送します。
ドキュメントの修正と署名日
- 受信者名: 各
document_create受信者にnameを指定します。nameを省略した場合は、従来のfirst_nameとlast_nameが結合されます。API の課金なしで拘束力のないテスト用ドキュメントを作成するには、test_mode: trueを設定します。 - 下書きの設定:
document_send_draftでは、confirm_send: trueとともに、name、subject、message、expires_in、remindersなどの更新を任意で指定できます。省略した設定は保持されます。受信者、ファイル、フィールドの編集や、送信せずに変更を保存することはできません。 - 送信済みドキュメントの受信者:
document_getを呼び出して受信者 ID を取得し、document_id、confirm_update: true、recipients: [{ "id": "<returned recipient ID>", "name": "Correct Name", "email": "[email protected]" }]を指定してdocument_update_recipientsを呼び出します。変更しない値も含め、名前とメールアドレスの両方を指定してください。送信済み/閲覧済み/保留中/バウンス済みのドキュメントで、署名を開始していない受信者のみ変更できます。埋め込み形式ではない受信者には新しい通知メールが送信されます。埋め込み形式の受信者には、既存のsend_email設定が適用されます。 - ドキュメントの取り下げ:
document_idとconfirm_delete: trueを指定してdocument_deleteを呼び出すと、ドキュメントが削除され、進行中の署名がキャンセルされます。誤ったリクエストがある場合は、置き換えを作成する前に削除して、リクエストが二重に有効になるのを防いでください。 - 送信ステータス: 送信が成功すると「Send request accepted」が返され、ステータスの更新が 1 回試みられます。更新に失敗しても、受け付けられた送信は成功のままです。ステータスの反映には遅れが生じる場合があります。再送信するのではなく、数秒後に
document_getを使用してください。send_emailは埋め込み署名のオプションであり、配信確認ではありません。
自動入力され、編集できない署名日を設定するには、text_tags: true と次の既存の SignWell テキストタグを使用します。
{{signature:1:y}} {{autofill_date_signed:1:y}}
{{signature:2:y}} {{date:2:y::::::y}}
どちらの日付形式も署名日を固定します。署名者が選択する日付には、編集可能な {{date:1:y}} を引き続き使用してください。テキストタグの解析は非同期です。処理後に document_get でフィールドを確認してください。SignWell のテキストタグオプション、受信者の更新、更新と送信の制限を参照してください。
利用可能なスクリプト
| スクリプト | 用途 |
|---|---|
npm start | npm run build の実行後、stdio 経由で MCP サーバーのエントリーポイントを実行します。 |
npm test | テストスイートを実行します。 |
npm run typecheck | tsc --noEmit でプロジェクトの型をチェックします。 |
npm run lint | Biome を使ってソースとテストの lint を実行します。 |
npm run format | Biome を使ってリポジトリのフォーマット規約を適用します。 |
npm run build | esbuild を使って build/index.js に ESM バンドルを生成します。 |
ディレクトリ構成
.
├── src/ # MCP server source (entrypoint + domain modules)
│ └── setup/ # Interactive setup wizard for MCP client configuration
├── test/ # Test suites
├── build/ # Bundled output (ignored in releases)
├── biome.json # Biome lint/format configuration
└── tsconfig.json # TypeScript compiler configuration
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。