ShipMyForm について
ShipMyFormのJavaScriptライブラリは、静的サイトのフォームをホスト型バックエンドに送信します。React、Vue、Svelte、Solid、Astro向けの連携機能と型付きの結果を備え、不正利用対策にも対応します。
主な機能
- 01フレームワーク非依存の送信クライアント
- 02React、Vue、Svelte、Solid、Astro連携
- 03型付きの送信結果
- 04ハニーポットとTurnstileトークン対応
- 05署名付きタイムトラップトークンの任意利用
活用シーン
- 01静的サイトの問い合わせフォーム送信
- 02Reactアプリへのフォーム送信機能の追加
- 03SvelteやVueサイトからのフォームデータ送信
- 04送信時のTurnstileトークンの受け渡し
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://shipmyform.com/api/mcpclaude mcp add --transport http shipmyform https://shipmyform.com/api/mcp{"mcpServers":{"shipmyform":{"type":"http","url":"https://shipmyform.com/api/mcp"}}}Cursor で開く{"servers":{"shipmyform":{"type":"http","url":"https://shipmyform.com/api/mcp"}}}VS Code で開く{"mcpServers":{"shipmyform":{"type":"http","url":"https://shipmyform.com/api/mcp"}}}{"mcpServers":{"shipmyform":{"serverUrl":"https://shipmyform.com/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://shipmyform.com/api/mcp認証が必要ツール
29| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| string | はい | ユーザーのメールアドレス。ユーザーに尋ねてください。決して作り出さないでください。 | |
| workspaceName | string | いいえ | |
| agent | string | いいえ | あなたの名前。例:'Claude Code'。確認メールに表示されます。 |
| preset | enum | いいえ | 名前付きのスコープセット:full(すべて)、wiring(フォームのみ、送信アクセスなし)、readonly、triagefull | wiring | readonly | triage |
| scopes | array | いいえ | プリセットの代わりにスコープを明示的に指定します。呼び出し元のキーが持つスコープを超える場合は無視されます。 |
詳細
shipmyform-js
fetch を介して ShipMyForm にフォームを送信するためのクライアントライブラリです。型付きの結果とフレームワーク用バインディングを提供します。
| パッケージ | 用途 |
|---|---|
@shipmyform/core | フレームワークに依存しないクライアントとプログレッシブエンハンスメント |
@shipmyform/react | useSubmit フック |
@shipmyform/vue | useSubmit コンポーザブル |
@shipmyform/svelte | ストアと use:shipmyform アクション |
@shipmyform/solid | createSubmit プリミティブ |
@shipmyform/astro | <ShipMyForm> コンポーネント |
クイックスタート
import { createClient } from '@shipmyform/core'
const form = createClient({ formId: 'YOUR_FORM_ID' })
const result = await form.submit({ email: '[email protected]', message: 'Hello' })
if (!result.ok) console.error(result.error, result.message)
React:
import { useSubmit } from '@shipmyform/react'
function Contact() {
const { submit, submitting, succeeded, error } = useSubmit({ formId: 'YOUR_FORM_ID' })
if (succeeded) return <p>Thanks!</p>
return (
<form onSubmit={(e) => (e.preventDefault(), submit(e.currentTarget))}>
<input name="email" type="email" required />
<textarea name="message" required />
<button disabled={submitting}>Send</button>
{error && <p>{error.message}</p>}
</form>
)
}
不正利用対策
ShipMyForm のエンドポイントは公開されており、クロスオリジンであるため、取得する CSRF トークンはありません。リクエストは、オリジンの許可リスト、ハニーポットフィールド(_gotcha)、任意の Cloudflare Turnstile トークン、レート制限によって審査されます。クライアントはハニーポットを空のままにし、トークンを渡すと Turnstile トークンを転送します。また、任意の tokenProvider を介して署名付きタイムトラップトークンを取得できます。
リリース
Changesets を使用して公開しています。プルリクエストに Changeset を含めてください。
pnpm changeset
main へのマージ後、「Version Packages」プルリクエストが作成されます。これをマージするとバージョンが更新され、npm に公開されます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。