MCP サーバー
Claude Code、Cursor、VS Code などの AI エージェントから、Ikiform の MCP サーバー経由でフォーム、送信データ、Webhook を管理できます。
Ikiform はリモートの Model Context Protocol サーバーを提供しています。AI エージェントに接続すると、エージェントがワークスペースのフォームの作成、配線、設定、送信データの読み取りと仕分け、Webhook のセットアップとデバッグを、REST API と同じシークレットキーとスコープで行えます。
| URL | https://ikiform.com/mcp |
| トランスポート | Streamable HTTP、ステートレス、POST による JSON-RPC |
| 認証 | Authorization: Bearer ik_sk_... |
| レート制限 | キーごとに 1 分あたり 100 リクエスト。REST API と共有 |
キーを作成する
ダッシュボードで シークレット キーを作成し、エージェントに必要なスコープだけを付与します。どのツールも、キーを所有するワークスペースに対して動作します。キーはリポジトリに含めず、環境変数かクライアントのシークレット入力を使ってください。
| スコープ | ツール |
|---|---|
forms:read | list_forms、get_form、form_id を指定した connect_form |
forms:write | create_form, update_form, set_form_fields, delete_form |
submissions:read | list_submissions, get_submission |
submissions:write | mark_spam, mark_not_spam, delete_submission |
webhooks:read | list_webhook_endpoints, list_deliveries |
webhooks:write | create_webhook_endpoint と update_webhook_endpoint(submissions:read も必要)、roll_webhook_secret、delete_webhook_endpoint、send_test_event、replay_failed_deliveries |
forms:read と forms:write で足ります。読み取り専用で仕分けるなら submissions:read を使います。必要なスコープなしでツールを呼び出すと、不足しているスコープを示す forbidden エラーが返ります。クライアントを接続する
claude mcp add --transport http ikiform https://ikiform.com/mcp \
--header "Authorization: Bearer ik_sk_..."Cursor では、環境変数 IKIFORM_API_KEY を設定します。VS Code は初回にキーを尋ね、安全に保存します。カスタムヘッダー付きのリモート HTTP サーバーに対応したクライアントなら、どれも同じ方法で使えます。
Ikiform は公式 MCP Registry に io.github.preetsuthar17/ikiform として登録されています。Claude Code では、Ikiform プラグインでサーバーとフォーム接続用のスキルを追加できます。claude plugin marketplace add preetsuthar17/ikiform-plugin を実行し、続けて claude plugin install ikiform@ikiform を実行してください。
ツール
ID の形式は、フォームが frm_...、送信データが sub_...、Webhook エンドポイントが whk_...、配信が dlv_... です。一覧はデフォルトで 25 件、最大 100 件を返します。has_more が true のときは、next_cursor を cursor として渡してください。
| ツール | できること |
|---|---|
list_forms | フォームを新しい順に一覧。ID、名前、ステータス、送信数、エンドポイント付き |
get_form | フォームのエンドポイント、フィールド、ハニーポットのフィールド、許可ドメイン、リダイレクト URL、コードスニペット、設定手順 |
create_form | 名前からフォームを作成。許可ドメインとリダイレクト URL は任意 |
update_form | フォームの一時停止と再開、名前、許可ドメイン、リダイレクト URL、スパムチェック、レート制限、メール通知の変更 |
set_form_fields | 送信データのバリデーションに使うフィールドスキーマの公開、または削除 |
delete_form | フォームを削除。エンドポイントは送信を受け付けなくなります |
list_submissions | 送信データを新しい順に一覧。フォーム、ステータス(received または spam)、日付で絞り込み可能 |
get_submission | 1 件の送信データと、そのフィールド、メタデータ、スパムスコア |
mark_spam, mark_not_spam | 送信データをスパムに移す、またはスパムから戻す。対応する Webhook も送信 |
delete_submission | 送信データを完全に削除。元に戻せません |
list_webhook_endpoints | エンドポイントの URL、ステータス、イベント、失敗状態。シークレットは返しません |
create_webhook_endpoint | エンドポイントを追加し、署名シークレットを 1 回だけ返します |
update_webhook_endpoint | エンドポイントの URL、フォーム、イベント、カスタムヘッダーの変更、またはオンとオフの切り替え |
roll_webhook_secret | 新しい署名シークレットを返します。古いものは 24 時間使えます |
delete_webhook_endpoint | エンドポイントとその配信履歴を削除 |
list_deliveries | エンドポイントの最近の配信。ステータス、試行回数、最後のエラー付き |
send_test_event | 有効なエンドポイントに、署名付きの endpoint.test イベントを送信 |
replay_failed_deliveries | 直近 24h、3d、7d に失敗した配信を再送 |
サーバーは connect_form プロンプトも提供しています。プロジェクトにフォームを接続する手順で、form_id を渡すとフォームのエンドポイントとフィールドが埋め込まれます。
頼めること
- 「このプロジェクトのお問い合わせフォームを Ikiform に接続して」
- 「ウェイトリストフォームの先週のスパムを見せて。本物らしいものは元に戻して」
- 「Webhook が失敗するのはなぜ?ハンドラーを直して、テストを送ってから、今日失敗した分を再送して」
- 「新しいウェイトリストの登録を /api/ikiform の API ルートに送って、シークレットは .env に入れて」
- 「古いお問い合わせフォームを一時停止して、新しいほうで人間確認をオンにして」
フォームや送信データ、エンドポイントの削除、配信の再送、フィールドスキーマの公開、許可ドメイン、スパム設定、レート制限の変更の前には、エージェントがあなたに確認するべきです。Claude Code プラグインのスキルは、そうするよう指示しています。署名シークレットと Turnstile シークレットは、コードではなく環境変数に入れてください。
ダッシュボードのみ
API キー、メンバー、通知の宛先、請求はダッシュボードで管理します。そのため、キーが漏えいしても、キーの作成、人の招待、新しいアドレスへのメール送信、お金の使用はできません。