Web Analytics

pubchem-agent-toolkit

⭐ 2 stars Persian by Milor123

version version version version version version version version version version version version version version version version version version version version

سرور پیشرفته PubChem MCP برای دستیارهای هوش مصنوعی

🧪 یک سرور MCP پیشرفته، مقاوم و متمرکز بر حفظ حریم خصوصی که به دستیارهای هوش مصنوعی امکان جستجو و دسترسی هوشمندانه به اطلاعات ترکیبات شیمیایی از PubChem را می‌دهد.

این سرور PubChem MCP به عنوان پلی قدرتمند بین دستیارهای هوش مصنوعی (مانند موارد موجود در AnythingLLM) و پایگاه داده عظیم PubChem عمل می‌کند. این سرور با استفاده از Model Context Protocol (MCP) به مدل‌های هوش مصنوعی اجازه می‌دهد تا جستجوهای هوشمند و مقاوم برای ترکیبات شیمیایی انجام دهند و خواص دقیق آن‌ها را به صورت برنامه‌نویسی شده دریافت کنند.


✨ ویژگی‌های اصلی

این فقط یک پوشش ساده برای PubChem نیست. این سرور کاملاً بازسازی شده تا بسیار مقاوم و هوشمند باشد:

---


🚀 بدون نصب: همین حالا در Smithery.ai امتحان کنید

برای کسانی که با سرورهای MCP آشنا نیستند یا فقط می‌خواهند امکانات این ابزار را بدون نصب محلی آزمایش کنند، نسخه زنده و میزبانی شده در Smithery.ai در دسترس است. این امکان را می‌دهد تا مستقیماً از طریق مرورگر با عامل گفت‌وگو کنید.

<-- نسخه زنده عامل PubChem را در Smithery.ai بررسی کنید -->

چگونه شروع کنید:

> ✅ مدل‌های توصیه‌شده برای بهترین نتایج >
برای دقت بالاتر، به‌ویژه در اعداد اعشاری طولانی، استفاده از مدل‌های قدرتمند توصیه می‌شود. مدل‌های زیر آزمایش شده‌اند و با این ابزار به‌خوبی کار می‌کنند:
>
* Claude 3 Sonnet از Anthropic
* GPT-4 توربو از OpenAI (یا نسخه‌های جدیدتر مانند GPT-4o)
>
ما تأیید کردیم که هر دو مدل، دقت کامل اعداد اعشاری بازگردانده‌شده توسط ابزار را بدون هیچگونه گرد کردن به درستی پردازش کردند.


🚀 شروع سریع و نصب

این سرور برای اجرا به صورت محلی طراحی شده است؛ یا روی دسکتاپ شما یا در محیط Docker مربوط به AnythingLLM.

1. پیش‌نیازها

این پروژه به چند کتابخانه پایتون وابسته است. مطمئن شوید که آن‌ها را در محیط خود نصب کرده‌اید.

یک فایل requirements.txt با محتوای زیر ایجاد کنید:

requests
bs4 
mcp 
pubchempy
pandas
PySocks
آن‌ها را با استفاده از uv یا pip نصب کنید:

uv venv
.venv\Scripts\activate
uv pip install -r requirements.txt
(توجه: PySocks تنها در صورتی مورد نیاز است که قصد دارید از ویژگی پراکسی Tor SOCKS5 استفاده کنید.)

۲. پیکربندی

سرور از طریق یک فایل config.ini پیکربندی می‌شود که به صورت خودکار ساخته می‌شود هنگامی که برای اولین بار آن را اجرا کنید. این فایل در همان دایرکتوری که اسکریپت pubchem_server.py قرار دارد ظاهر خواهد شد.

config.ini پیش‌فرض:

[proxy]

Change 'use_proxy' to 'true' to route all requests through a proxy.

Essential for protecting your privacy if you use Tor.

use_proxy = false

Defines the proxy type. Options:

socks5h -> (Recommended for Tor) The native SOCKS proxy for Tor. More secure.

http -> An HTTP proxy. If using Tor, requires additional configuration.

proxy_type = socks5h

The proxy address. THIS IS A CRITICAL SETTING!

- If you run this script on your DESKTOP, use: 127.0.0.1

- If you run this script inside DOCKER, use: host.docker.internal

host = 127.0.0.1

The proxy port.

9050 -> Default port for Tor's SOCKS proxy.

8118 -> Default port for Tor's HTTP proxy (if enabled).

port = 9050

۳. ادغام با AnythingLLM

دستورالعمل رسمی را دنبال کنید تا این مورد را به عنوان یک سرور MCP سفارشی اضافه کنید. نکته کلیدی این است که command را به اجرایی پایتون خود و اسکریپت pubchem_server.py اشاره دهید.

مثال برای AnythingLLM Desktop (plugins/anythingllm_mcp_servers.json):

{
  "mcpServers": {
    "pubchem": {
      "name": "PubChem Server (Enhanced)",
      "transport": "stdio",
      "command": "\"C:\\path\\to\\your\\.venv\\Scripts\\python.exe\" \"C:\\path\\to\\your\\project\\pubchem_server.py\"",
      "cwd": "C:\\path\\to\\your\\project"
    }
  }
}

3.1 نمونه‌هایی از پیاده‌سازی با AnythingLLM

در اینجا چند نمونه از نحوه تعامل با عامل آورده شده است. این آزمایش‌ها با استفاده از AnythingLLM Desktop و اتصال به مدل‌های زبان بزرگ مختلف از طریق OpenRouter انجام شده‌اند.

یافته‌ای حیاتی از آزمایش‌های ما اهمیت مدل انتخابی شماست. ما به شدت توصیه می‌کنیم از مدل‌های کوچک یا محلی برای این کار استفاده نکنید. مدل‌های کوچک اغلب در تجزیه صحیح داده‌های بازگردانده‌شده توسط ابزار مشکل دارند و موجب بروز خطاهایی مانند مقادیر خیالی، قالب‌بندی اشتباه یا، مهم‌تر از همه، گرد کردن اعداد اعشاری می‌شوند که هدف ابزار دقیق ما را نقض می‌کند.

برای حفظ صحت نتایج خود، همیشه بهتر است داده خام بازگردانده‌شده توسط MCP را بررسی کنید. می‌توانید نحوه انجام این کار را در بخش بعدی بیاموزید: 3.2 نحوه تأیید خروجی‌های MCP در لاگ‌ها.

imagen

از طرف دیگر، چندین مدل عملکرد بسیار خوبی را نشان داده‌اند. ما با مدل Gemini 2.5 Flash lite گوگل نتایج برجسته‌ای به دست آوردیم. این مدل دقت چشمگیری در پردازش اعداد اعشاری طولانی و قالب‌بندی صحیح جدول نهایی مارک‌داون داشت.

مدل Google gemini 2.5 flash lite بدون پرامپت و با پرامپت اعشارها را کاملاً حفظ می‌کند (در نمونه از مقدار 0.6 برای دما استفاده شده است)

imagen

برای این کار خاص، مدل مورد علاقه شخصی من Gemini 2.5 Flash lite است، به دلیل دقت و قابلیت اطمینان مداوم آن.

3.2 نحوه تأیید خروجی‌های MCP در لاگ‌ها

بهترین راه برای اطمینان از اینکه عامل داده صحیحی دریافت می‌کند و مدل LLM اشتباه نمی‌کند، بررسی فایل لاگ دیباگ تولیدشده توسط سرور MCP است.

این سرور به گونه‌ای پیکربندی شده که به طور خودکار یک فایل لاگ در یک زیرپوشه در مسیر پروژه شما ایجاد کند. این محل خواهد بود:

your-project-folder/
└── logs_mcp/
    └── mcp_debug.log

درون فایل mcp_debug.log، داده‌ی دقیق JSON را خواهید یافت که ابزار قبل از پردازش مدل به LLM بازمی‌گرداند. می‌توانید این JSON را به صورت دستی بررسی کنید تا هر مقداری، به ویژه اعداد اعشاری طولانی از ویژگی‌هایی مانند monoisotopic_mass را تأیید کنید و مطمئن شوید که LLM هیچ خطای گرد کردن یا توهمی در پاسخ نهایی خود ایجاد نکرده است.


📊 نحوه استفاده

پس از یکپارچه‌سازی، دستیار هوش مصنوعی شما به طور خودکار از این ابزار هنگام پرسش درباره اطلاعات شیمیایی استفاده خواهد کرد. ابزار اصلی ارائه‌شده، search_compounds_by_name است.

نمونه درخواست

این درخواست توانایی ابزار را در مدیریت لیستی از ترکیبات با انواع نام‌های مختلف و استخراج چندین ویژگی نشان می‌دهد.

@agent
Please use your PubChem tool to find information on the following compounds:

  • Thiamine (Vitamin B1)
  • Riboflavin (Vitamin B2)
  • Folic Acid
  • Hydroxocobalamin
For each compound found, please retrieve the IUPAC Name, Molecular Formula, and Monoisotopic Mass.

Present all the results in a single Markdown table.

عامل (Agent) ابزار search_compounds_by_name را فراخوانی خواهد کرد که به طور هوشمند هر ترکیب را پیدا می‌کند، داده‌های آن را دریافت کرده و برای قالب‌بندی به LLM بازمی‌گرداند.


🛠 ابزار MCP معرفی شده

search_compounds_by_name

چندین ترکیب را به صورت جداگانه و با استفاده از استراتژی جایگزین هوشمند، توقف‌ها و تلاش مجدد برای اطمینان بیشتر، جستجو می‌کند.

پارامترها:

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


🙏 تقدیر و تشکر

این پروژه به شدت از PubChem-MCP-Server اصلی ساخته شده توسط JackKuo666 الهام گرفته و بر اساس آن توسعه یافته است.

اگرچه این مخزن یک شاخه مستقیم نیست، اما پروژه اصلی نقطه شروع حیاتی بود. این نسخه با تاکید بر استحکام زیاد، استراتژی‌های جستجوی هوشمند و حفظ حریم خصوصی کاربر از طریق ادغام اختیاری با Tor 🧅، مفهوم اصلی را ارتقا داده است.

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


⚠️ سلب مسئولیت

این ابزار تنها برای اهداف پژوهشی و آموزشی ارائه شده است. لطفاً به شرایط خدمات PubChem احترام بگذارید و این ابزار را مسئولانه استفاده نمایید.

--- Tranlated By Open Ai Tx | Last indexed: 2025-08-27 ---