Fillout.io MCP サーバー
Fillout.io API 用の MCP サーバー。フォーム管理、応答処理、分析を可能にします。
トークンの設定
- Fillout.io API キーを取得します:
- Fillout.ioアカウントにログインしてください
- アカウント設定→APIとWebhooksへ移動
- 「新しいAPIキーを作成」をクリックします
- 新しいAPIキーをコピーします
- APIキー情報:
- プロダクションキーは
fo_live_
で始まります - テストキーは
fo_test_
で始まります - テストキーはテストフォームでのみ機能します
- APIキーを使用すると、アカウント内のすべてのリソースにアクセスできます。
- 設定内の
your-fillout-api-key
API キーに置き換えます。
⚠️ セキュリティに関する注意事項:
- APIキーを安全かつ非公開に保つ
- 開発にはテストキーを使用する
- 環境変数にキーを保存する
- 定期的にキーをローテーションする
- バージョン管理にキーをコミットしない
トークンのトラブルシューティング
よくあるエラーメッセージ
- 「無効なAPIキーが提供されました」または「認証に失敗しました」
- 原因: API キーが見つからない、形式が正しくない、または無効です
- 解決:
- キーが
fo_live_
またはfo_test_
で始まることを確認します - 余分なスペースや文字がないか確認する
- 環境変数が正しく設定されていることを確認する
- 必要に応じて新しいキーを作成します
- 「ライブフォームで使用されるテストモードキー」
- 原因: テストキー (
fo_test_
) を本番フォームで使用しています - 解決:
- 実稼働フォームにライブキーを使用する
- 開発用のテストフォームを作成する
- 適切なキータイプに切り替える
- 「レート制限を超えました」
- 原因: APIリクエストが多すぎる
- 解決:
- リクエストスロットリングを実装する
- ダッシュボードで使用状況を確認する
- リクエストパターンを最適化する
検証手順
- APIキーの形式を確認してください:
# Key should:
- Start with 'fo_live_' or 'fo_test_'
- Be approximately 50 characters
- Contain only letters, numbers, and underscores
- テスト API キー:
curl -H "Authorization: Bearer your-api-key" \
https://api.fillout.com/v1/api/forms
特徴
フォーム管理
- すべてのフォームを一覧表示する
- フォームの詳細を取得する
- 新しいフォームを作成する
- フォームを削除する
- フォーム設定を更新する
レスポンス処理
- フォームの回答を送信する
- フォームの送信を取得する
- フィルター応答
- 回答をエクスポートする
分析
ツール
list_forms
- アクセス可能なすべてのフォームを取得する
- パラメータ:
limit
(オプション): 返されるフォームの数offset
(オプション): ページネーションオフセット
- 戻り値: フォームオブジェクトの配列
get_form
- 詳細なフォーム情報を取得する
- パラメータ:
- 戻り値: 質問と設定を含むフォームの詳細
create_form
- 新しいフォームを作成する
- パラメータ:
name
(文字列): フォーム名description
(オプションの文字列): フォームの説明questions
(配列):質問オブジェクトの配列type
: 質問の種類(例:'ShortAnswer'、'MultipleChoice')name
: 質問テキストrequired
: 質問が必須かどうかchoices
: 複数選択の質問の選択肢の配列
- 戻り値: 作成されたフォームオブジェクト
get_form_responses
- フォームの送信を取得する
- パラメータ:
formId
(文字列): フォーム識別子filters
(オプション): レスポンスフィルターpageSize
(オプション): ページあたりの結果数afterDate
(オプション): 提出日でフィルタリングbeforeDate
(オプション): 提出日でフィルタリングstatus
(オプション): 完了ステータスでフィルタリング
- 戻り値: フォームの回答の配列
submit_form_response
- 新しい回答を送信する
- パラメータ:
formId
(文字列): フォーム識別子responses
(配列):回答の配列questionId
: 質問識別子value
: 応答値
calculations
(オプション): カスタム計算
- 返品: 提出確認
設定
Claude Desktopでの使用
Dockerの設定
{
"mcpServers": {
"fillout": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"FILLOUT_API_KEY",
"mcp/fillout"
],
"env": {
"FILLOUT_API_KEY": "your-fillout-api-key"
}
}
}
}
NPX構成
{
"mcpServers": {
"fillout": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-fillout"
],
"env": {
"FILLOUT_API_KEY": "your-fillout-api-key"
}
}
}
}
建物
前提条件
- Node.js 18以降
- npmまたはyarn
- Docker(オプション)
地域開発
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
Dockerビルド
# Build image
docker build -t mcp/fillout .
# Run container
docker run -e FILLOUT_API_KEY=your-key mcp/fillout
例
フォームの作成
const form = await client.createForm({
name: "Customer Feedback",
description: "Please share your experience",
questions: [
{
type: "ShortAnswer",
name: "What did you like most?",
required: true
},
{
type: "MultipleChoice",
name: "Would you recommend us?",
required: true,
choices: ["Yes", "No", "Maybe"]
}
]
});
回答の提出
const response = await client.submitFormResponse(formId, {
responses: [
{
questionId: "q1",
value: "Great customer service!"
},
{
questionId: "q2",
value: "Yes"
}
]
});
エラー処理
サーバーは、一般的な問題に関する詳細なエラー メッセージを提供します。
try {
const forms = await client.listForms();
} catch (error) {
if (error instanceof AuthenticationError) {
// Handle invalid API key
} else if (error instanceof FilloutError) {
// Handle API-specific errors
} else {
// Handle unexpected errors
}
}
ライセンス
このプロジェクトはMITライセンスの下で提供されています。詳細はLICENSEファイルをご覧ください。