/ الدليل / الملعب / golf
● مجتمع golf-mcp ⚡ فوري

golf

بواسطة golf-mcp · golf-mcp/golf

إطار عمل Python لنشر خوادم MCP جاهزة للإنتاج — اكتشاف تلقائي للأدوات، مصادقة مدمجة (JWT/OAuth/API key)، و OpenTelemetry مضمنة من البداية.

Golf (golf-mcp) يسمح بتعريف أدوات MCP كملفات Python عادية في مجلدات معروفة؛ يترجم الإطار هذه الملفات إلى خادم إنتاجي مع معالجة المصادقة والقياس والتسجيل. موجه للفرق التي تحتاج منصة MCP داخلية، وليس سكريبت لمرة واحدة.

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

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

عرض مباشر

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

golf.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "golf": {
      "command": "uvx",
      "args": [
        "golf"
      ],
      "_inferred": true
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "golf": {
      "command": "uvx",
      "args": [
        "golf"
      ],
      "_inferred": true
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "golf": {
      "command": "uvx",
      "args": [
        "golf"
      ],
      "_inferred": true
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "golf": {
      "command": "uvx",
      "args": [
        "golf"
      ],
      "_inferred": true
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "golf",
      "command": "uvx",
      "args": [
        "golf"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "golf": {
      "command": {
        "path": "uvx",
        "args": [
          "golf"
        ]
      }
    }
  }
}

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

claude mcp add golf -- uvx golf

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

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

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

بناء MCP داخلي للشركة باستخدام Golf

👤 مهندسو المنصات ⏱ ~60 min advanced

متى تستخدمه: تريد MCP واحد مصادق يكشف عن 20+ أداة داخلية (Jira, Grafana, ticketing) للموظفين عبر Claude.

المتطلبات الأساسية
  • Python 3.11+, uv — astral.sh/uv
الخطوات
  1. بناء الهيكل الأساسي
    شغّل uvx golf new acme-mcp والدخول إلى المجلد.✓ تم النسخ
    → مشروع يحتوي على مجلدات tools/, prompts/, resources/
  2. إضافة ملفات الأدوات
    أنشئ tools/list_tickets.py يُصدّر دالة غير متزامنة. يربط Golf الـ schema تلقائياً.✓ تم النسخ
    → الأداة مرئية في قائمة /tools
  3. تفعيل مصادقة JWT مرتبطة بـ IdP الخاص بك
    كوّن مصادقة golf.yaml: jwt مع عنوان JWKS URL الخاص بـ IdP. تطلب scope mcp:use.✓ تم النسخ
    → رفض المكالمات غير المصادق عليها

النتيجة: MCP قابل للنشر يسمح فقط للموظفين المصادق عليهم باستدعاؤه، مع تدفق الآثار إلى APM الخاص بك.

المزالق
  • أي فشل استيراد أداة يكسر بدء تشغيل الخادم — يحمّل Golf الأدوات بسرعة — أصلح أخطاء الاستيراد أو انقل التبعيات الثقيلة داخل الدالة

نشر MCP مع OpenTelemetry من اليوم الأول

👤 مهندسو الموثوقية، مهندسو القابلية للمراقبة ⏱ ~30 min advanced

متى تستخدمه: تشغّل مجمعات OTel بالفعل وتريد ظهور استدعاءات أدوات الوكيل في الآثار.

الخطوات
  1. تفعيل القياس
    في golf.yaml، فعّل telemetry.otlp مع نقطة نهاية المجمع الخاصة بك.✓ تم النسخ
    → تظهر استدعاءات الأدوات كـ spans في OTel backend الخاص بك
  2. وسم الآثار برقم معرّف المستخدم من المصادقة
    أضف middleware يعيّن user.id على كل span من JWT sub.✓ تم النسخ
    → رسوم بيانية للمكالمات لكل مستخدم

النتيجة: استخدام MCP هو مواطن من الدرجة الأولى في القابلية للمراقبة الموجودة لديك.

اجمعها مع: prometheus

إصدار الأسئلة جنباً إلى جنب مع الكود باستخدام Golf

👤 مهندسو الأسئلة ⏱ ~25 min intermediate

متى تستخدمه: تعيش أسئلتك في Notion وتنجرف عما تم نشره فعلاً.

الخطوات
  1. نقل الأسئلة إلى مجلد prompts/
    أنشئ prompts/triage.py مع قالب السؤال والمتغيرات.✓ تم النسخ
    → يظهر السؤال في MCP /prompts/list
  2. التحقق من CI في كل التزام
    أضف اختبار يعرض كل سؤال مع مدخلات عينة لالتقاط التغييرات التي تكسر الكود✓ تم النسخ
    → سلامة التراجع لتعديلات السؤال

النتيجة: تشحن الأسئلة عبر نفس عملية PR مثل الكود.

التركيبات

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

golf + hyper

مقارنة خادم Golf المستند إلى Python مع نموذج plugin hyper-mcp WASM

لدي نفس الأداة في Golf و hyper-mcp. شغّل مقارنة الكمون والذاكرة عبر 100 مكالمة لكل منهما.✓ تم النسخ
golf + prometheus

كشط نقطة نهاية مقاييس Golf إلى Prometheus

وجّه Prometheus الخاص بي إلى /metrics الخاص بـ golf، ثم ابحث عن p99 tool latency باستخدام prometheus-mcp.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
golf new <name> project_name: str بدء خادم جديد 0
golf build ترجمة مجلدات الأدوات إلى ثنائي أو صورة خادم 0
golf run --transport stdio|http بدء التطوير المحلي أو الإنتاج 0

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

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

حصة API
لا شيء — يعمل الإطار في أي مكان تستضيفه
الرموز لكل استدعاء
يعتمد على الأدوات
التكلفة المالية
مجاني، مفتوح المصدر
نصيحة
فعّل أخذ عينات القياس في الإنتاج (مثلاً 10% من استدعاءات الأدوات) للتحكم في تكلفة بلع OTel

الأمان

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

تخزين بيانات الاعتماد: أسرار JWT و OAuth عبر env؛ لن يُسجّلها Golf افتراضياً
نقل البيانات الخارجي: حيثما تستدعي أدواتك

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

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

Tool not showing in tools list

تحقق من أن الملف يُصدّر الدالة غير المتزامنة بالاسم الدقيق الذي يتوقعه Golf (انظر توثيق الإطار)؛ فقدان بيانات __tool__ الوصفية هو السبب الأكثر شيوعاً

تحقق: يعرض `golf run --debug` سجل الاكتشاف
JWT validation fails with valid token

عنوان JWKS URL غير متاح أو جهة إصدار خاطئة. تحقق باستخدام curl؛ تحقق من انحراف الساعة على المضيف

Traces not appearing in OTel backend

يستخدم Golf OTLP/HTTP — تأكد من تفعيل المجمع لهذا المستقبل، وليس gRPC فقط

تحقق: curl -v $OTLP_ENDPOINT/v1/traces

البدائل

golf مقابل البدائل

البديلمتى تستخدمهاالمقايضة
FastMCPتريد شيئاً أبسط بدون ميزات المصادقة والقياسأحضر مخاوفك الإنتاجية بنفسك
MCP-Nest (NestJS)فريقك متخصص في NestJSTypeScript فقط
Arcadeالتركيز على التوزيع والمشاركة بقدر البناءجمهور مستهدف مختلف قليلاً

المزيد

الموارد

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

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

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