در حال بارگذاری

پرش به مطلب اصلی

اجرای سرور MCP نشان روی سیستم یا سرور خودتان

اگر به‌جای سرور آماده‌ی نشان ترجیح می‌دهید سرور MCP را خودتان اجرا کنید، این راهنما را دنبال کنید. در این روش سرور روی سیستم یا زیرساخت شما اجرا می‌شود و هر سرویس با کلید و تعرفه‌ی فعلی خودش فراخوانی می‌شود.

پیش‌نیازها​

  1. Python 3.10 یا بالاتر.
  2. کلید API نشان: در پلتفرم نشان ثبت‌نام کنید و کلید سرویس‌های مورد نظر خود را بگیرید.
  3. یک کلاینت MCP: Claude Desktop، Cursor یا هر کلاینت دیگری که از MCP پشتیبانی می‌کند.

نصب​

مخزن پروژه را کلون کنید و داخل پوشه‌ی پروژه، پکیج را نصب کنید:

git clone https://github.com/NeshanMaps/Neshan-MCP.git
cd Neshan-MCP
pip install -e .

تنظیم کلید API​

یکی از سه روش زیر را انتخاب کنید:

روش ۱: متغیر محیطی در تنظیمات کلاینت (پیشنهادی برای Claude Desktop)

مقدار NESHAN_API_KEY را در بخش env تنظیمات کلاینت بگذارید. نمونه‌ی کامل در صفحه‌ی اتصال کلاینت‌ها آمده است.

روش ۲: فایل env (برای اجرا در ترمینال یا Docker)

cp .env.example .env
# در فایل .env مقدار NESHAN_API_KEY را با کلید خود جایگزین کنید
یادداشت

فایل .env از پوشه‌ای خوانده می‌شود که سرور از آن اجرا می‌شود. کلاینت‌های دسکتاپ معمولاً سرور را از پوشه‌ی دیگری اجرا می‌کنند، پس برای آن‌ها روش ۱ مطمئن‌تر است.

روش ۳: ارسال کلید در هدر درخواست (برای حالت HTTP)

اگر سرور را در حالت HTTP اجرا کنید، کلید را می‌توانید در هر اتصال جداگانه بفرستید و به فایل env نیازی نیست. نام هدرها در صفحه‌ی اتصال کلاینت‌ها آمده است.

اجرا​

سرور دو حالت اجرا دارد:

neshan-mcp

حالت پیش‌فرض، برای Claude Desktop و Cursor. معمولاً لازم نیست این دستور را دستی اجرا کنید؛ کلاینت خودش آن را اجرا می‌کند.

در حالت HTTP می‌توانید کلید را به‌جای فایل .env در هدر هر درخواست بفرستید.

متغیرهای محیطی​

همه‌ی متغیرها اختیاری هستند، به‌جز اینکه دست‌کم یک کلید (از متغیر محیطی یا هدر درخواست) باید در دسترس باشد. نمونه‌ی این فایل در .env.example مخزن آمده است.

متغیرتوضیحاتمقدار پیش‌فرض
NESHAN_API_KEYکلید پیش‌فرض، برای همه‌ی سرویس‌هایی که کلید جداگانه ندارند.—
NESHAN_KEY_<SERVICE>کلید اختصاصی یک سرویس، مثلاً NESHAN_KEY_STATIC. جدول کامل در ادامه آمده است.—
NESHAN_TRANSPORTحالت اجرا: stdio یا http.stdio
NESHAN_HOSTآدرسی که سرور HTTP روی آن گوش می‌دهد.127.0.0.1
NESHAN_PORTپورت سرور HTTP.3000
NESHAN_TIMEOUTمهلت هر درخواست به سرویس‌های نشان، برحسب ثانیه.15
NESHAN_MAX_RETRIESتعداد تلاش دوباره برای درخواست‌های ناموفق.2
NESHAN_LOG_LEVELسطح لاگ‌ها.INFO
NESHAN_BASE_URLآدرس پایه‌ی سرویس‌های نشان.https://api.neshan.org
NESHAN_MAP_MATCHING_PATHمسیر سرویس تطبیق نقشه./v3/map-matching
NESHAN_MAP_OUTPUT_DIRپوشه‌ای که ابزار neshan_map_view فایل HTML نقشه‌ی تعاملی را در آن ذخیره می‌کند.پوشه‌ی موقت سیستم

کلید اختصاصی هر سرویس​

کلیدهای نشان برای هر سرویس جداگانه صادر می‌شوند. اگر برای سرویس‌های مختلف کلید متفاوت دارید، متغیر همان سرویس را مقدار بدهید؛ در غیر این صورت NESHAN_API_KEY استفاده می‌شود.

متغیرسرویسابزارهای مرتبط
NESHAN_KEY_SEARCHجستجو و تبدیل مختصات به آدرسneshan_search، neshan_reverse_geocode
NESHAN_KEY_GEOCODINGتبدیل آدرس به مختصاتneshan_geocode، neshan_geocode_plus
NESHAN_KEY_ROUTINGمسیریابی (با ترافیک، بدون ترافیک و الگوی معمول)neshan_direction
NESHAN_KEY_HISTORICALمسیریابی پیش‌بینیneshan_direction با traffic_mode برابر historical
NESHAN_KEY_MATRIXماتریس فاصلهneshan_distance_matrix
NESHAN_KEY_TSPمسیر چندتوقفه (TSP)neshan_tsp
NESHAN_KEY_STATICنقشه‌ی استاتیکneshan_static_map
NESHAN_KEY_STATIC_ARCنقشه‌ی استاتیک با کمانneshan_static_map_arc
NESHAN_KEY_ISOCHRONEایزوکرونneshan_isochrone
NESHAN_KEY_MAP_MATCHINGتطبیق نقشهneshan_map_matching
NESHAN_KEY_TRAFFICتحلیل ترافیکneshan_traffic_analytics
NESHAN_KEY_VRPمسیریابی ناوگان (VRP)neshan_vrp_logistic
NESHAN_KEY_POINTاطلاعات مکان‌های شاخصneshan_get_point_by_hash
اطلاع

کلید هر سرویس را از پنل کاربری نشان بگیرید. اگر در پنل برای کلید محدودیت IP یا دامنه گذاشته‌اید، آدرس سروری که MCP روی آن اجرا می‌شود را هم مجاز کنید.