/ الدليل / الملعب / mcp-go (SDK)
● مجتمع mark3labs ⚡ فوري

mcp-go (SDK)

بواسطة mark3labs · mark3labs/mcp-go

Go SDK لبناء خوادم MCP — كود أساسي أدنى، تعريفات أدوات آمنة النوع، يستخدمه نصف خوادم Go الجاهزة للإنتاج في البرية.

mcp-go هو Go SDK الرسمي الفعلي لبروتوكول Model Context Protocol. يتولى النقل (stdio + SSE + HTTP القابل للبث)، وإطار JSON-RPC، وتسجيل الأدوات/الموارد/الـ prompts، والتحقق من الطلبات حتى تركّز على منطق خادم MCP. يستخدمه mcp-server من GitHub وdbhub وk8s-mcp وكثير غيرها.

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

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

عرض مباشر

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

mcp-go-mark3labs.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-go-mark3labs": {
      "command": "go",
      "args": [
        "install",
        "github.com/mark3labs/mcp-go/cmd/example@latest"
      ],
      "_inferred": true
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-go-mark3labs": {
      "command": "go",
      "args": [
        "install",
        "github.com/mark3labs/mcp-go/cmd/example@latest"
      ],
      "_inferred": true
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-go-mark3labs": {
      "command": "go",
      "args": [
        "install",
        "github.com/mark3labs/mcp-go/cmd/example@latest"
      ],
      "_inferred": true
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-go-mark3labs": {
      "command": "go",
      "args": [
        "install",
        "github.com/mark3labs/mcp-go/cmd/example@latest"
      ],
      "_inferred": true
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-go-mark3labs",
      "command": "go",
      "args": [
        "install",
        "github.com/mark3labs/mcp-go/cmd/example@latest"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-go-mark3labs": {
      "command": {
        "path": "go",
        "args": [
          "install",
          "github.com/mark3labs/mcp-go/cmd/example@latest"
        ]
      }
    }
  }
}

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

claude mcp add mcp-go-mark3labs -- go install github.com/mark3labs/mcp-go/cmd/example@latest

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

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

استخدامات عملية: mcp-go (SDK)

بناء خادم MCP داخلي لـ API شركتك في أقل من 100 سطر

👤 مطورو Go في الشركات الراغبون في كشف أدواتهم الداخلية لـ Claude ⏱ ~45 min intermediate

متى تستخدمه: لديك خدمة Go وتريد Claude يستدعيها دون كتابة مخططات OpenAPI.

المتطلبات الأساسية
  • Go 1.21 أو أحدث — ثبّته عبر brew أو asdf
الخطوات
  1. هيكلة الخادم
    Create a new Go project. Add mcp-go and define one tool: search_orders(customer_id) that calls our internal /v1/orders API.✓ تم النسخ
    → main.go ~50 سطراً، يُبنى بنظافة
  2. الاختبار مع mcp-inspector
    Run the server in stdio mode. Open mcp-inspector and verify the tool shows up.✓ تم النسخ
    → الأداة قابلة للاستدعاء من inspector
  3. التسجيل في Claude
    Add the binary to claude_desktop_config.json. Test from Claude with a real customer ID.✓ تم النسخ
    → استجابة حية من الـ API

النتيجة: API Go الداخلي مكشوف لـ Claude بأدوات MCP آمنة النوع.

المزالق
  • الاستدعاءات الطويلة تُعطّل stdio — استخدم نقل SSE أو HTTP القابل للبث للاستدعاءات التي تستغرق أكثر من 5 ثوانٍ
اجمعها مع: mcp-python-sdk

نقل REST API موجود إلى MCP دون كسر عملاء REST

👤 فرق الخلفية التي تتبنى MCP دون إجبار على الهجرة ⏱ ~60 min intermediate

متى تستخدمه: تريد REST وMCP يتعايشان على نفس المعالجات.

الخطوات
  1. استخراج منطق المعالج
    Take the existing /api/v1/search handler. Extract the core function so both gin and mcp-go can call it.✓ تم النسخ
    → المعالج مُقسَّم — معالج http يفوّض إلى دالة خالصة
  2. التغليف في أداة MCP
    Register the pure func as an mcp-go tool. Map URL params to tool inputs.✓ تم النسخ
    → نفس المنطق، واجهتان
  3. ثنائي واحد، نقلان
    Build one binary that runs gin on :8080 and the MCP server over stdio when invoked with --mcp.✓ تم النسخ
    → ثنائي متعدد الأوضاع

النتيجة: REST وMCP يُخدَمان من ثنائي Go واحد بنواة مشتركة.

استضافة خادم MCP على الإنترنت العام عبر SSE

👤 المطورون الذين ينشرون MCPs عامة (مثل git-mcp.io) ⏱ ~90 min advanced

متى تستخدمه: تريد المستخدمين إضافة MCP الخاص بك دون تثبيت أي شيء محلياً.

المتطلبات الأساسية
  • نطاق وTLS — Caddy/nginx مع Let's Encrypt
الخطوات
  1. التبديل إلى نقل SSE
    Convert the stdio server to SSE. Add CORS for the relevant origins.✓ تم النسخ
    → الخادم يقبل اتصالات /sse
  2. إضافة مصادقة لكل مستخدم
    Validate Bearer token on each connection; reject unknown.✓ تم النسخ
    → 401 على tokens الخاطئة، ok على الصحيحة
  3. النشر والاختبار
    Deploy to fly.io. Add the URL to Claude via mcp-remote.✓ تم النسخ
    → الأداة قابلة للاستدعاء من Claude الذي يشير إلى URL بعيد

النتيجة: خادم MCP على الإنترنت العام مع مصادقة، جاهز للمستخدمين.

المزالق
  • SSE خلف موازن تحميل يقطع الاتصالات الطويلة — هيّئ مهلات الخمول >5 دقائق على موازن التحميل

التركيبات

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

mcp-go-mark3labs + mcp-python-sdk

نفس المشروع لكن SDK-ين لواجهات مختلفة

Use mcp-go for the perf-critical core; mcp-python-sdk for the data-science adjacency.✓ تم النسخ
mcp-go-mark3labs + mcp-registry

نشر MCP الذي بنيته في السجل الرسمي

Once your mcp-go server works, submit it to the modelcontextprotocol/registry.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
AddTool name, description, handler عند بدء الخادم لكل أداة 0
AddResource uri, name, handler كشف مورد قابل للقراءة 0
AddPrompt name, description, handler كشف prompts قابلة لإعادة الاستخدام 0
ServeStdio () وضع stdio المحلي (الأكثر شيوعاً) 0
ServeSSE addr, opts الوضع الشبكي/البعيد 0

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

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

حصة API
غير متاح — مكتبة
الرموز لكل استدعاء
غير متاح
التكلفة المالية
مجاني (MIT)
نصيحة
ثبّت إصداراً فرعياً محدداً؛ الـ API استقر في 2025 لكن تغييرات طفيفة تحدث

الأمان

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

تخزين بيانات الاعتماد: ما تحتاجه معالجات أدواتك
نقل البيانات الخارجي: يتحكم فيه معالجاتك

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

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

الأداة غير مرئية لـ Claude

تحقق من تفاوض القدرات؛ يجب تسجيل الأدوات قبل استدعاء ServeStdio

تحقق: Use mcp-inspector to confirm tool listing
رسائل stdio مشوّهة

لا تطبع إلى stdout في معالجاتك — هذه قناة JSON-RPC. استخدم stderr للسجلات.

SSE ينقطع في الخمول

أضف keepalives دورية؛ هيّئ مهلات الوكيل

البدائل

mcp-go (SDK) مقابل البدائل

البديلمتى تستخدمهاالمقايضة
mcp-python-sdk (official)تبني بـ Pythonلغة مختلفة؛ كلاهما من الدرجة الأولى
TypeScript SDK (official)منظومة Node/Bun مناسبةJS أولاً؛ هامش أداء أقل من Go

المزيد

الموارد

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

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

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