إنتقل إلى المحتوى الرئيسي

بناء أول خادم MCP لك وربطه

متقدّم

لنكشف أداة مخصّصة لـ Claude عبر بناء خادم MCP صغير وربطه. سنبقيه بسيطاً قدر الإمكان حتى يكون الربط واضحاً — ثم تستبدل منطقك الفعلي مكانه.

ما الذي نبنيه

خادم stdio بأداة واحدة، word_count، يستطيع Claude استدعاؤها. النمط نفسه يتوسّع إلى "استعلِم من قاعدة بياناتي"، "افتح تذكرة"، وما إلى ذلك.

الخطوة 1 — الخادم

server.py (Python؛ تتوفّر نسخة TypeScript في هياكل MCP):

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("text-tools")

@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a piece of text."""
return len(text.split())

if __name__ == "__main__":
mcp.run() # stdio transport

الخطوة 2 — الإعلان عنه

أضف إلى .mcp.json في جذر مستودعك:

{ "mcpServers": {
"text-tools": { "command": "python", "args": ["server.py"] }
} }

الخطوة 3 — الربط والاختبار

شغّل Claude Code داخل المستودع. اسأل: "استخدم خادم text-tools لعدّ الكلمات في: 'the quick brown fox'." يُفترض أن يستدعي Claude الأداة word_count ويُبلّغ بالنتيجة 4. إن لم يستطع رؤية الأداة، تأكّد من أن الخادم يبدأ بنظافة بمفرده وأن مسار .mcp.json صحيح.

الخطوة 4 — اجعله حقيقياً

استبدل word_count بقدرتك الفعلية — استعلام قاعدة بيانات، أو استدعاء واجهة برمجية داخلية، أو عملية على ملف. أضف التحقق من المدخلات وأعِد الأخطاء كنتائج.

قائمة التحقق الأمني

:::warning الخادم هو شيفرة + وصول

  • الحد الأدنى من الامتيازات — فقط البيانات/الإجراءات التي يحتاجها (تأمين الوكلاء).
  • تحقّق من المدخلات التي يرسلها النموذج.
  • البيانات غير الموثوقة التي يعيدها قد تحمل حقن التعليمات.
  • راجع أي خادم طرف ثالث قبل ربطه. :::

التالي