/ الدليل / الملعب / MCPSharp
● مجتمع afrise ⚡ فوري

MCPSharp

بواسطة afrise · afrise/MCPSharp

قم بشحن MCP في C#/.NET - قم بتزيين الطريقة باستخدام [McpTool]، ابدأ تشغيل الخادم، وانتهى الأمر. يعمل مع Microsoft.Extensions.AI وSemantic Kernel.

MCPSharp عبارة عن حزمة .NET NuGet تعمل على تحويل أساليب C# إلى أدوات (وموارد) MCP عبر السمات، كما توفر للعميل إمكانية الاتصال بخوادم MCP أخرى من C#. فهو يتعامل مع السباكة JSON-RPC، والتحقق التلقائي من صحة المعلمات وتحويل النوع، ويسحب أوصاف الأداة من تعليقات مستند XML الخاص بك. عمليات التكامل من الدرجة الأولى لـ Microsoft.Extensions.AI وSemantic Kernel تعني أنه يمكنك توصيل وكلاء أدوات MCP بتطبيقات .NET بأقل قدر من النمط المعياري.

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

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

عرض مباشر

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

mcpsharp.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcpsharp": {
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ],
      "_inferred": false
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcpsharp",
      "command": "dotnet",
      "args": [
        "add",
        "package",
        "MCPSharp"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "mcpsharp": {
      "command": {
        "path": "dotnet",
        "args": [
          "add",
          "package",
          "MCPSharp"
        ]
      }
    }
  }
}

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

claude mcp add mcpsharp -- dotnet add package MCPSharp

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

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

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

كشف خدمات C# الموجودة كأدوات MCP

👤 متاجر .NET بها مكتبات داخلية يريدون من وكلاء الذكاء الاصطناعي الاتصال بها ⏱ ~30 min intermediate

متى تستخدمه: لديك مكتبة أعمال عاملة في C# وتحتاج إلى جعلها قابلة للوصول إلى الوكيل.

المتطلبات الأساسية
  • صافي 8+ SDK — https://dotnet.microsoft.com/download
  • حزمة MCPSharp — الدوت نت إضافة حزمة MCPSharp
الخطوات
  1. طرق تزيين
    أضف [McpTool] إلى الطرق العامة التي أريد كشفها في OrdersService. الاحتفاظ بالتوقيعات؛ دع MCPSharp يتحقق من صحته.✓ تم النسخ
    → السمات المطبقة، ومستندات XML المستخدمة كأوصاف
  2. ابدأ الخادم
    قم بإضافة نقطة إدخال Program.cs التي تستدعي MCPServer.StartAsync("orders"، "1.0.0").✓ تم النسخ
    → يتم تشغيله عبر تشغيل الدوت نت؛ يمكن لعملاء MCP اكتشاف الأدوات
  3. قم بتوصيل كلود سطح المكتب
    قم بإصدار مقتطف claude_desktop_config.json الذي يقوم بتشغيل ثنائي dotnet الخاص بي.✓ تم النسخ
    → كتلة التكوين باستخدام الأمر=dotnet args=[run --project, path]

النتيجة: يعمل خادم MCP على تعزيز خدمات C# الخاصة بك، مع القليل من التعليمات البرمجية الجديدة.

المزالق
  • إرجاع الأشياء الكبيرة دون تشكيلها — إرجاع DTOs - لا تقم بإجراء تسلسل لكيانات EF بخصائص التنقل، فسوف تفجر الاستجابات
اجمعها مع: fastmcp

استخدم أدوات MCP من وكيل Semantic Kernel

👤 وكلاء بناء الفرق باستخدام Microsoft Semantic Kernel ⏱ ~45 min intermediate

متى تستخدمه: أنت على SK وتريد استخدام أدوات خادم MCP خارجي.

الخطوات
  1. أضف العميل
    قم بإضافة عميل MCPSharp وقم بتسجيل الخادم البعيد كمكون إضافي لـ SK.✓ تم النسخ
    → تظهر الأدوات في خطة SK
  2. استدعاء من وظيفة
    إظهار وظيفة الدردشة التي تستدعي إحدى الأدوات عن بعد عندما يطلب المستخدم ذلك.✓ تم النسخ
    → رحلة ذهابًا وإيابًا: موجه → SK يحدد الأداة → استدعاء MCP → يؤدي إلى الرد

النتيجة: يمكن لتطبيق SK الخاص بك أن يستهلك أي خادم MCP بشكل نظيف.

قم بتسجيل الأدوات في وقت التشغيل من مجلد البرنامج المساعد

👤 تقوم الفرق بشحن أنظمة المكونات الإضافية أو المنتجات ذات التعليمات البرمجية المنخفضة ⏱ ~60 min advanced

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

الخطوات
  1. قم بمسح المجلد
    اكتب مُحملًا يعكس كل ملف .dll ويسجل أساليب [McpTool] ديناميكيًا.✓ تم النسخ
    → تظهر الأدوات دون تغيير القوائم ذات الترميز الثابت
  2. إعادة التحميل بأمان
    أضف عزل AssemblyLoadContext حتى لا تتسرب عمليات إعادة التحميل.✓ تم النسخ
    → تم تفريغ التجميعات القديمة بين عمليات إعادة التحميل

النتيجة: مجموعة أدوات قابلة للتوصيل مع دورة حياة تجميع مناسبة.

المزالق
  • تسرب التجميعات مع سياق التحميل الافتراضي — استخدم AssemblyLoadContext القابل للتحصيل لعمليات إعادة التحميل المعزولة

التركيبات

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

mcpsharp + fastmcp

قارن تأليف خادم .NET وPython MCP

قم بنقل أدوات Python FastMCP الخاصة بي إلى MCPSharp لمكدس .NET الحالي.✓ تم النسخ
mcpsharp + csharp-sdk

حزمة SDK الرسمية مقابل حزمة المجتمع — اختر ما يناسبك

قارن MCPSharp وcsharp-sdk الرسمي لاحتياجاتي.✓ تم النسخ
mcpsharp + azure-ai-gateway

ضع خادم C# MCP خلف سياسات بوابة Azure AI

واجهة خادم MCPSharp الخاص بي باستخدام بوابة Azure AI لحدود المصادقة/المعدل.✓ تم النسخ

الأدوات

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

الأداةالمدخلاتمتى تستدعيهاالتكلفة
[McpTool] C# method signature في كل طريقة تريد أن يتصل بها الوكيل 0
[McpResource] C# member عندما تريد الكشف عن الموارد القابلة للقراءة (الملفات/البيانات) وليس الأدوات 0
[McpParameter] method parameter قم بوضع علامة على المعلمات المطلوبة وقم بإعطاء أوصاف المعلمات 0
MCPServer.StartAsync name, version بدء تشغيل الخادم عبر stdio (أو النقل الذي تم تكوينه) 0
MCPClient server address من C# للتحدث إلى خادم MCP آخر 0

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

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

حصة API
لا شيء - إنها مكتبة
الرموز لكل استدعاء
يعتمد على أدواتك؛ المكتبة نفسها صغيرة
التكلفة المالية
مجاني (OSS على غرار معهد ماساتشوستس للتكنولوجيا)
نصيحة
قم بتشكيل كائنات DTO للاستجابة بشكل متعمد - تعمل نقاط JSON الكبيرة على تضخيم كل من الرموز المميزة وزمن الوصول.

الأمان

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

تخزين بيانات الاعتماد: مهما كانت خدماتك التي تستخدمها (تكوين ASP.NET، KeyVault، وما إلى ذلك). لا يمتلك MCPSharp بيانات الاعتماد.
نقل البيانات الخارجي: يعتمد على النقل (stdio local؛ HTTP/عن بعد إذا تم تكوينه).

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

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

الأداة لم يكتشفها العميل

تأكد من أن الطريقة عامة وتحتوي على [McpTool] وأن اسم السمة يطابق ما تسميه. تحقق أيضًا من اسم الخادم الذي تم تمريره إلى StartAsync.

تحقق: MCPServer.ListTools() at startup
استثناء التسلسل عند العودة

إرجاع POCO/DTO؛ تجنب كيانات وأنواع EF المحملة ببطء والتي تحتوي على مراجع دورية.

تحقق: Unit test serialization with System.Text.Json
النواة الدلالية لا ترى الأدوات

قم بتسجيل ملحق MCP بشكل صريح وتأكد من أن منشئ النواة على علم بذلك؛ تتطلب بعض إصدارات SK استيرادًا صريحًا.

تحقق: Log plugins at startup

البدائل

MCPSharp مقابل البدائل

البديلمتى تستخدمهاالمقايضة
csharp-sdk (official)تريد Anthropic/MCP C# SDK الرسميبيئة العمل المختلفة. انتبه لاختلافات الميزات
fastmcpأنت تفضل بايثوننظام بيئي مختلف
mcp-agentأنت تريد أنماط وكيل مبنية على لغة بايثون، وليس فقط تأليف الخادمليس .NET

المزيد

الموارد

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

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

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