Skip to main content
Glama

forms-mcp — חיבור קבוע של Claude ל-Google Forms

שרת MCP מרוחק (Remote MCP) שרץ על Cloudflare Workers ונותן ל-Claude גישה מלאה וקבועה ל-Google Forms של החשבון המחובר: יצירת טפסים, עריכת שאלות, בחנים עם ציונים, פרסום/סגירה, ושליפת כל התשובות.

  • אימות: OAuth מלא — השרת הוא OAuth Server מול Claude ו-OAuth Client מול Google. עם access_type=offline נשמר Refresh Token, כך שהחיבור מתחדש לבד לתמיד.

  • פרטיות: השרת פרטי. ALLOWED_EMAILS חוסם כל חשבון גוגל שאינו ברשימה. אין אף סוד בקוד — הכול ב-Cloudflare Secrets.

  • בסיס: התבנית הרשמית של Cloudflare‏ (remote-mcp-google-oauth) + הרחבות: Refresh Token אוטומטי, כלי Forms מלאים, allowlist.

הכלים שהשרת חושף ל-Claude

כלי

מה הוא עושה

whoami

לאיזה חשבון גוגל השרת מחובר

list_forms

רשימת טפסים שנגישים לשרת דרך Drive (scope‏ drive.file)

get_form

המבנה המלא של טופס: שאלות, itemId, הגדרות בוחן, מצב פרסום, קישור למשיבים

create_form

יצירת טופס חדש + פרסום אוטומטי (טפסים חדשים נוצרים לא-מפורסמים כברירת מחדל)

batch_update

כלי העריכה המקסימלי — העברה ישירה של batchUpdate מה-API: הוספה/עריכה/מחיקה/הזזה של שאלות, כותרות, הגדרות בוחן וציונים

set_publish_state

פרסום/ביטול פרסום, פתיחה/סגירה לתשובות

list_responses

כל התשובות שהוגשו (כולל ציוני בוחן), עם דפדוף וסינון לפי זמן

get_response

תשובה בודדת לפי מזהה

הערה על list_forms: ה-scope המינימלי drive.file רואה טפסים שנוצרו דרך השרת. טפסים קיימים מאתרים דרך מחבר Google Drive הרגיל של Claude — ומרגע שיש formId, כל שאר הכלים עובדים עליהם ישירות.

Related MCP server: mcp-google-forms

הקמה (חד-פעמית)

שלב 1 — GitHub + Cloudflare (PowerShell)

דרישות: Node.js‏ + git. הפקודות המלאות נמצאות ב-SETUP.md / בשיחת ההקמה. תמצית:

Set-Location C:\Users\yaniv\claude-work\forms-mcp
npm install
npx wrangler login          # התחברות / הרשמה חינמית ל-Cloudflare
npx wrangler kv namespace create OAUTH_KV   # ואז לעדכן את ה-id ב-wrangler.jsonc
npx wrangler deploy         # מדפיס את כתובת השרת: https://forms-mcp.<subdomain>.workers.dev
npx wrangler secret put COOKIE_ENCRYPTION_KEY   # מחרוזת אקראית (64 hex)
npx wrangler secret put ALLOWED_EMAILS          # yanivmiz77@gmail.com

שלב 2 — Google Cloud Console

  1. ליצור פרויקט חדש (למשל forms-mcp) ב-console.cloud.google.com.

  2. להפעיל שני API‑ים: Google Forms API ו-Google Drive API.

  3. במסך OAuth‏ (Google Auth Platform): סוג External, להוסיף את ה-scopes: .../auth/forms.body, .../auth/forms.responses.readonly, .../auth/drive.file

  4. לפרסם את האפליקציה ל-Production (Audience → Publish). בלי זה, במצב Testing, ה-Refresh Token פג אחרי 7 ימים והחיבור "הקבוע" יישבר כל שבוע.

  5. ליצור OAuth Client מסוג Web application עם Redirect URI: https://forms-mcp.<subdomain>.workers.dev/callback

  6. לשמור את המזהים כסודות:

npx wrangler secret put GOOGLE_CLIENT_ID
npx wrangler secret put GOOGLE_CLIENT_SECRET

שלב 3 — חיבור ב-Claude

Settings ‏→ Connectors ‏→ Add custom connector ‏→ להדביק: https://forms-mcp.<subdomain>.workers.dev/mcp בהתחברות גוגל יופיע מסך "האפליקציה לא מאומתת" (כי זו אפליקציה אישית שלא עברה Verification) — ‏Advanced ‏→ Continue. זה מסך חד-פעמי.

פתרון תקלות

  • 401 / token expired: השרת מרענן טוקנים לבד. אם בכל זאת נתקע — לנתק ולחבר מחדש את המחבר בהגדרות Claude.

  • 403 בסיום ההתחברות: החשבון לא ב-ALLOWED_EMAILS.

  • החיבור נשבר אחרי שבוע: האפליקציה בגוגל נשארה במצב Testing — לפרסם ל-Production (שלב 2.4).

  • create_form יצר טופס שלא מקבל תשובות: טפסים חדשים נוצרים לא-מפורסמים; create_form מפרסם אוטומטית, ואפשר לשלוט בזה עם set_publish_state.

  • לוגים: npx wrangler tail forms-mcp.

כללי עבודה בריפו

  • אין commit ישיר ל-main — תמיד branch חדש ואז PR (חריג יחיד: קומיט האתחול לריפו הריק).

  • אין סודות בקוד — רק Cloudflare Secrets (ול-CI, אם יתווסף: GitHub Secrets).

Related MCP Connectors

Related MCP Servers