ساخت یک MCP Server و Client با Spring AI و Ollama

مدل‌های هوش مصنوعی باید فراتر از پاسخ دادن به سوالات عمل کنند. آن‌ها باید بتوانند با سیستم‌های خارجی تعامل داشته باشند و اقدامات واقعی انجام دهند.

پروتکل مدل کانتکست (Model Context Protocol یا MCP) این امر را ممکن می‌سازد. این یک پروتکل باز است که به اپلیکیشن‌های هوش مصنوعی اجازه می‌دهد ابزارها، داده‌ها و پرامپت‌ها را با استفاده از یک زبان مشترک به اشتراک بگذارند.

من یک سیستم کامل را با استفاده از موارد زیر ساختم:

  • Java 17 و Spring Boot
  • Spring AI 1.0.0
  • Ollama برای LLMهای محلی
  • Docker برای استقرار (deployment)
  • WebFlux برای استریمینگ بلادرنگ (real-time streaming)

معماری: • کاربر یک پرامپت را از طریق یک Rest API ارسال می‌کند. • MCP Client از Spring AI برای گفتگو با LLM استفاده می‌کند. • LLM از Ollama برای پردازش درخواست به صورت محلی استفاده می‌کند. • اگر LLM نیاز به انجام اقدامی داشته باشد، MCP Server را فراخوانی می‌کند. • MCP Server ابزار را اجرا کرده و داده‌ها را بازمی‌گرداند.

آنچه می‌توانید با این سیستم بسازید:

  • ابزارها (Tools): اقداماتی مانند دریافت وضعیت آب و هوا یا جستجو در پایگاه‌های داده.
  • منابع (Resources): داده‌هایی مانند اسناد یا فایل‌های پیکربندی.
  • پرامپت‌ها (Prompts): قالب‌های قابل استفاده مجدد برای هدایت هوش مصنوعی.

در این پروژه، مدل از یک ابزار برای یافتن املاک با قیمت کمتر از ارزش واقعی استفاده می‌کند. این مدل نتایج را به صورت بلادرنگ از طریق یک استریم بازمی‌گرداند. شما می‌توانید کل این تنظیمات را به صورت محلی با استفاده از Docker و مدل Granite4:3b اجرا کنید.

کد کامل و راهنمای گام‌به‌گام را در GitHub بررسی کنید.

منبع: https://dev.to/jlcastrillon91/building-an-mcp-server-and-client-with-spring-ai-and-ollama-ccl

جامعه یادگیری اختیاری: https://t.me/GyaanSetuAi