formwire について
formwireは、Formpasteに接続し、問い合わせフォームの作成、設定済みコードの取得、送信内容の確認を行うローカルブリッジです。サイト運営者やフォーム業務向けで、フォームデータをローカルに保存せずリクエストを転送します。
主な機能
- 01送信先メールアドレス付きフォームの作成
- 02フレームワーク別フォームコードの取得
- 03フォーム一覧と設定の確認
- 04受信箱または迷惑メールの送信内容取得
- 05テスト用送信内容の保存
- 06各ツールのコマンドライン実行
活用シーン
- 01サイトへの問い合わせフォーム追加
- 02フォーム送信先の認証状態確認
- 03受信箱や迷惑メールの確認
- 04メールを送らずにフォームをテスト
MCP 対応
Formpasteの捕捉されたツール群をローカルMCPサーバーとして提供し、ホストされたMCPエンドポイントへ呼び出しを転送します。同じツール群はコマンドラインのサブコマンドとしても利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | フォームの人が読める名前。例:"Contact form"。 |
| framework | enum | いいえ | 返されるスニペットの対象フレームワーク。デフォルトは html です。html | react | nextjs | astro | vue | svelte |
| destinationEmail | string | はい | 送信内容をメールで受け取る宛先。配信を開始する前に検証が必要です。 |
詳細
formwire
formwire は、サイトの問い合わせフォームを設定する Formpaste のホスト型 MCP サーバーへの、小規模なローカルブリッジです。 フォームの作成、フォームのアクセスキーが入力済みの フレームワーク用コピペスニペットの取得、 フォームの設定確認、受信トレイに届いた 送信内容の閲覧ができます。
このブリッジ自体は何も保存しません。稼働中のエンドポイントから 取得した上流サーバーのツール一覧をそのままローカルで提供し、 各ツール呼び出しを上流に転送して、結果を変更せずに返します。 フォームは呼び出し元自身の Formpaste アカウントに属します。 フォームの送信先アドレスは所有者自身の通知先アドレスで、 フォーム作成時に一度設定します。また、テスト送信ツールは 呼び出し元自身のフォームにテスト用の印を付けた行を保存するだけで、 メールは送信しません。
ツール
create_form- フォームを作成し、アクセスキーと 設定済みのスニペットを取得します。必須項目:name(人が読めるラベル)とdestinationEmail(送信内容をメールで受け取るアドレス。新しいアドレスの場合、 配信開始前にダッシュボードで確認する必要があります)。 任意項目:framework(html、react、nextjs、astro、vueまたはsvelte。デフォルトはhtml)。 スニペットの形式を選択します。get_snippet- フレームワーク用のコピペ可能なフォームスニペットです。 必須項目:framework。任意項目:formId。 実際のアクセスキーを入力します。指定しない場合はプレースホルダーが 使用されます。list_submissions- 1つのフォームへの送信内容を、 件数と送信ごとのメタデータとして取得します。 必須項目:formId。任意項目:folder(inboxまたはspam)、limit、完全なメッセージ本文を含めるためのincludeContent。list_forms- アカウントにあるすべてのフォームを、それぞれの ID、 名前、アクセスキー、受信トレイ/スパムの件数とともに取得します。 引数は不要です。フォーム ID の確認に使用します。get_form- フォームの設定を読み取り、接続設定を確認します。 アクセスキー、送信先とその確認状況、許可ドメイン、 通知、自動返信、Webhook の設定を確認できます。 必須項目:formId。Webhook 署名シークレットは 決して返されません。send_test_submission- 稼働中であることを確認するため、 自分のフォームにテスト送信を保存します。必須項目:formId。任意項目:サンプル値を格納したフラットな文字列マップfields。省略するとデフォルトのペイロードが使用されます。 テスト行は受信トレイに「Test」バッジ付きで表示され、 メールは送信されず、クォータにも加算されません。
設定
FORMPASTE_MCP_URL(任意)- 上流エンドポイントを 上書きします。デフォルトはhttps://api.formpaste.com/mcpです。 (この上書きフックは、この再構築版独自のラベル付き実装です。)FORMPASTE_API_KEY(任意)- 設定すると、すべての上流リクエストに Formpaste ダッシュボードで発行したトークンを使ったAuthorization: Bearer <key>ヘッダーが付与されます。未設定の場合、 認証ヘッダーは送信されません。(この転送機能も ラベル付きの再構築であり、元のインターフェイスはキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流との
ストリーミング可能な HTTP セッションを開きます。まず JSON-RPC の
initialize リクエスト(protocolVersion 2025-03-26、
clientInfo name formwire)を送り、続けて
notifications/initialized 通知を送り、その後、呼び出し元の引数を
変更せずに含めた tools/call リクエストを送ります。上流が
initialize に Mcp-Session-Id ヘッダーを付けて応答した場合、
その値はセッション中の後続リクエストすべてに付与され、
プロセスが終了するまで同じセッションが再利用されます。応答は
通常の JSON または Server-Sent Events として届く場合があり、
どちらも読み取られます。
上流からの成功結果は、上流が設定した isError フラグも含めて、
そのまま渡されます。失敗(JSON-RPC エラー、2xx 以外のステータス、
読み取り不能な応答、または完了できないリクエスト)は、
テキストが formwire error: で始まる isError 結果として返されます
(この表示方法は、この再構築版独自のラベル付き実装です)。
CLI
各ツールはサブコマンドとしても実行でき、JSON 引数文字列を1つ受け取ります (引数不要のツールでは省略してください)。
npx @reneturcios/formwire create_form '{"name":"Contact form","destinationEmail":"[email protected]"}'
npx @reneturcios/formwire get_snippet '{"framework":"react","formId":"frm_123"}'
npx @reneturcios/formwire list_forms
npx @reneturcios/formwire get_form '{"formId":"frm_123"}'
npx @reneturcios/formwire list_submissions '{"formId":"frm_123","folder":"inbox"}'
npx @reneturcios/formwire --version
終了コード:成功時は 0、isError 結果の場合は 1、
使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/formwire mcp
MCP クライアントの設定:
{
"mcpServers": {
"formwire": {
"command": "npx",
"args": ["-y", "@reneturcios/formwire", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/formwire
docker run --rm ghcr.io/cloudcorprecords/formwire --version
コンテナーのデフォルトコマンドは mcp なので、最初の形式は stdio MCP サーバーです。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべて、スタブ化された JSON-RPC アップストリームに対して実行されます。実際のネットワーク呼び出しはありません。
ライセンス
MIT — 詳細は LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。