/ الدليل / الملعب / tfmcp
● مجتمع nwiizo ⚡ فوري

tfmcp

بواسطة nwiizo · nwiizo/tfmcp

دع Claude يقرأ ملفات Terraform الخاصة بك، ويشغل خطط التجريب (dry-run)، ويطبق التغييرات (اختياري) — دون تسليم مفاتيح السحابة الخاصة بك.

يُغلّف tfmcp سطر أوامر Terraform المحلي كخادم MCP. يقرأ HCL، ويشغل plan/validate/format، ويستكشف الحالة، وفقط عند تمكين TFMCP_ALLOW_DANGEROUS_OPS بشكل صريح — يمكنه تطبيق أو حذف. تبقى بيانات الاعتماد في بيئة AWS/GCP/Azure الموجودة لديك؛ لا يراها tfmcp مباشرة أبداً.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

tfmcp.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "tfmcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "tfmcp",
      "command": "TODO",
      "args": [
        "See README: https://github.com/nwiizo/tfmcp"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "tfmcp": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/nwiizo/tfmcp"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add tfmcp -- TODO 'See README: https://github.com/nwiizo/tfmcp'

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: tfmcp

مراجعة خطة Terraform قبل دمج الطلب

👤 مهندسو المنصات ومسؤولو موثوقية الموقع الذين يراجعون طلبات سحب Infrastructure as Code ⏱ ~10 min intermediate

متى تستخدمه: عندما يغيّر طلب سحب 40 مورداً أو أكثر وتريد فحص النطاق المتأثر قبل الموافقة.

المتطلبات الأساسية
  • سطر أوامر Terraform مثبّت وبيانات اعتماد السحابة مكوّنة — aws configure أو ما يعادله؛ يستخدم tfmcp ما تملكه الصدفة لديك
  • tfmcp مثبّت عبر cargo — cargo install tfmcp
الخطوات
  1. وجّه tfmcp إلى مجلد Terraform
    عيّن TERRAFORM_DIR إلى ~/work/infra/prod وشغّل terraform plan. لخّص ما يتغيّر.✓ تم النسخ
    → ملخص خطة نظيفة مع عدد العمليات الإضافة والتغيير والحذف
  2. اطلب توزيعاً مصنّفاً حسب المخاطر
    لكل مورد يتم حذفه أو استبداله، صنّف المخاطر (منخفضة/متوسطة/عالية) واشرح السبب. اضبط أي شيء ذي حالة.✓ تم النسخ
    → جدول مخاطر يسلّط الضوء على موارد قاعدة البيانات أو الطابور أو البيانات
  3. احصل على تعليق مراجعة جاهز للطلب
    اكتب مسودة تعليق مراجعة: موافق، اطلب تغييرات، أو احجب — مع الأسباب.✓ تم النسخ
    → نص مراجعة قابل للتنفيذ جاهز للنسخ

النتيجة: مراجعة خطة قائمة على المخاطر في 3 دقائق بدلاً من 30، دون قضاء أي ضغطات على التطبيق.

المزالق
  • تنجح الخطة محلياً لكن ستفشل في CI بسبب إصدارات موفر مختلفة — تأكد من أن إصدار Terraform في tfmcp يطابق ما يستخدمه CI — حدّد عبر .terraform-version أو tfenv
  • الحالة بعيدة وtfmcp يعلق على المصادقة — شغّل terraform init مرة واحدة يدوياً لتخزين مؤقت بيانات اعتماد الخلفية قبل استدعاء tfmcp
اجمعها مع: github · filesystem

اكتشف واشرح انجراف Terraform في الإنتاج

👤 مسؤولو موثوقية الموقع الذين يدقّقون في 'ما الذي تغيّر خارج Terraform' ⏱ ~20 min intermediate

متى تستخدمه: فحص الانجراف الشهري، أو عند الاشتباه في تغيير وحدة التحكم بالسحابة.

الخطوات
  1. شغّل خطة على الإنتاج وابحث عن التغييرات
    شغّل terraform plan على الإنتاج وأخبرني إن كان هناك انجراف — موارد حيث تختلف الحالة الحقيقية عن .tf.✓ تم النسخ
    → قائمة الموارد المنجرفة مع الفروقات
  2. صنّف كل انجراف
    لكل انجراف، قل ما إذا كان من الآمن تحديث (التوفيق بين Terraform والواقع) أو يتطلب إعادة تطبيق (التوفيق بين الواقع و Terraform).✓ تم النسخ
    → قائمتان: مرشحو التحديث ومرشحو إعادة التطبيق

النتيجة: تقرير انجراف مع خطة علاج محدّدة لكل مورد.

المزالق
  • الانجراف طبيعي لبعض الحقول ذات التحجيم التلقائي أو المُدارة من قبل الموفر — أضف قائمة تجاهل الانجراف (عبر كتلة دورة حياة ignore_changes) للحقول الصاخبة المعروفة مثل آخر طابع زمني معدّل

افهم وحدة Terraform غير الموثّقة

👤 أعضاء فريق جدد في مستودع terraform يحتوي على 500 ملف ⏱ ~15 min beginner

متى تستخدمه: ورثت مستودع البنية التحتية وتحتاج إلى خريطة لما هناك قبل لمس أي شيء.

الخطوات
  1. افحص المجلد
    اعرض كل وحدة في ~/work/infra. لكل منها، أخبرني ما هي الموارد التي تديرها والمدخلات التي تتوقعها.✓ تم النسخ
    → قائمة جرد الوحدة مع الغرض والمدخلات لكل وحدة
  2. أنشئ رسم بياني للتبعيات
    شغّل terraform graph واصف شجرة تبعيات الوحدة — أي وحدات تعتمد على أي.✓ تم النسخ
    → شجرة ASCII واضحة أو قائمة مرقّمة

النتيجة: خريطة عقلية للمستودع دون الاضطرار إلى قراءة كل ملف .tf يدوياً.

المزالق
  • بعض الوحدات هي رمز ميت غير مستخدم — اطلب من tfmcp أن يضع علامة على الوحدات التي لم تُشر إليها في الجذر أو أي وحدة أخرى
اجمعها مع: filesystem

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

tfmcp + github

مراجعة طلب سحب Terraform من البداية إلى النهاية: سحب الفرق من GitHub، خطة محلية عبر tfmcp، نشر تعليق المراجعة

اجلب PR #42 من acme/infra، تحقق من الفرع، شغّل tfmcp terraform plan، واكتب مسودة تعليق مراجعة.✓ تم النسخ
tfmcp + filesystem

إعادة هيكلة ملفات HCL بكميات كبيرة والتحقق من عدم تغيير المخرجات

أعد تسمية المتغير aws_region إلى region عبر جميع ملفات .tf في ~/infra، ثم تأكد من أن الخطة لا تظهر تغييرات الموارد.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
terraform_plan dir?: str, var_file?: str آمن — شغّل دائماً قبل التطبيق 1 terraform plan run
terraform_apply dir?: str, auto_approve?: bool فقط مع TFMCP_ALLOW_DANGEROUS_OPS=true ونية صريحة من المستخدم real cloud changes
terraform_validate dir?: str قبل الالتزام — فحص صيغة/نوع رخيص free
terraform_state_list dir?: str قائمة جرد ما يعرفه Terraform عنه free (reads state)
terraform_show dir?: str, resource?: str افحص الحالة المخزّنة لمورد محدّد free
terraform_graph dir?: str افهم تبعيات الوحدة/المورد free

التكلفة والحدود

تكلفة التشغيل

حصة API
لا توجد حصة tfmcp-level؛ محدودة بحد معدل API لموفر السحابة الخاص بك
الرموز لكل استدعاء
قد تصل مخرجات الخطة للمستودعات الكبيرة إلى 20k+ رمز — استخدم الاستهداف
التكلفة المالية
مجاني و MIT؛ التكلفة الحقيقية هي ما يلمسه التطبيق في السحابة الخاصة بك
نصيحة
احفظ التطبيق معطّلاً بشكل افتراضي. استخدم terraform plan -target=module.x لنطاق الخطط الصاخبة وحفظ رموز السياق.

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: ملف Terraform الثنائي المحلي + بيانات اعتماد القراءة لموفر السحابة للتخطيط/التحقق
تخزين بيانات الاعتماد: ما يستخدمه Terraform بالفعل — متغيرات بيئة AWS, ~/.aws/credentials, workload identity, إلخ.
نقل البيانات الخارجي: تستدعي واجهات برمجة التطبيقات لموفر السحابة مباشرة من جهازك؛ لا يستدعي tfmcp العودة إلى الوطن
لا تمنح أبدًا: TFMCP_ALLOW_DANGEROUS_OPS=true في الجلسات المشتركة بيانات اعتماد سحابة الإدارة عندما تكون القراءة فقط كافية

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

terraform binary not found

ثبّت Terraform وتأكد من وجوده على PATH. يستدعي tfmcp terraform؛ لا يجمعه.

تحقق: terraform version
Error: No valid credential sources

بيانات اعتماد السحابة الخاصة بالصدفة لم تُصدَّر. شغّل aws sts get-caller-identity (أو ما يعادله) أولاً.

تحقق: aws sts get-caller-identity
Plan says 'apply denied: TFMCP_ALLOW_DANGEROUS_OPS not set'

بالتصميم. إذا كنت تريد حقاً التطبيق، صدّر TFMCP_ALLOW_DANGEROUS_OPS=true لتلك الجلسة فقط.

تحقق: echo $TFMCP_ALLOW_DANGEROUS_OPS
Backend initialization required

شغّل terraform init مرة واحدة يدوياً في المجلد الهدف قبل استدعاء أدوات tfmcp.

تحقق: terraform init

البدائل

tfmcp مقابل البدائل

البديلمتى تستخدمهاالمقايضة
terraform-mcp-server (hashicorp official)تريد MCP مدعوم من البائع مع دعم السجلمطابقة CLI أقل؛ أدوات حالة/انجراف أقل
Raw shell MCP + terraformتريد مرونة كاملةلا توجد حواجز وقائية — من السهل تشغيل terraform destroy بالصدفة

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills