خادم PubChem MCP المحسن لمساعدي الذكاء الاصطناعي
🧪 خادم MCP متقدم وقوي يركز على الخصوصية، يتيح لمساعدي الذكاء الاصطناعي البحث والوصول الذكي إلى معلومات المركبات الكيميائية من PubChem.
يعمل هذا الخادم كجسر قوي بين مساعدي الذكاء الاصطناعي (مثل أولئك في AnythingLLM) وقاعدة بيانات PubChem الضخمة للمواد الكيميائية. يستفيد من بروتوكول Model Context Protocol (MCP) لتمكين نماذج الذكاء الاصطناعي من إجراء عمليات بحث ذكية ومرنة عن المركبات الكيميائية واسترجاع خصائصها التفصيلية برمجياً.
✨ الميزات الأساسية
هذا ليس مجرد غلاف آخر لـ PubChem. لقد أُعيد بناء هذا الخادم بالكامل ليكون عالي المتانة وذكي جداً:
- 🧠 بحث احتياطي ذكي: إذا فشل البحث باسم شائع (مثل "فيتامين د")، يقوم الخادم تلقائياً ببحث أعمق في قاعدة بيانات المواد في PubChem للعثور على المركب الصحيح. هذا يحسن بشكل كبير معدلات النجاح في الاستفسارات الغامضة.
- 🛡️ معالجة أخطاء قوية وإعادة المحاولة: تم تصميم الخادم للتعامل مع أخطاء واجهة برمجة التطبيقات بسلاسة. إذا واجه خطأ "الخادم مشغول" من PubChem، سينتظر تلقائياً ويعيد إرسال الطلب، مما يضمن نجاح الاستفسارات حتى تحت الضغط العالي.
- 🔒 دعم اختياري لوكيل Tor: لديك سيطرة كاملة على خصوصيتك. يسمح لك ملف
config.iniبسيط بتوجيه جميع الطلبات عبر شبكة Tor (عبر وكيل SOCKS5 أو HTTP)، مما يمنع كشف عنوان IP الخاص بك. الخادم آمن افتراضياً ولن يقوم أبداً بتسريب عنوان IP إذا فشلت اتصال الوكيل. - 🔎 بحث لمركب واحد أو متعدد: يتعامل بسلاسة مع الطلبات لمركب واحد أو عدة مركبات في طلب واحد.
- 🧪 استرجاع خصائص مفصلة: الوصول إلى خصائص كيميائية رئيسية مثل الاسم النظامي (IUPAC)، الصيغة الجزيئية، الكتلة الجزيئية، والأهم من ذلك، الكتلة الأحادية النظير.
🚀 بدون تثبيت: جربه مباشرة على Smithery.ai
لمن هم جدد على خوادم MCP أو يرغبون فقط في اختبار قدرات هذه الأداة دون أي إعداد محلي، يتوفر إصدار مباشر مستضاف على Smithery.ai. يتيح لك هذا الدردشة مع الوكيل مباشرة من متصفحك.
<-- استكشف وكيل PubChem المباشر على Smithery.ai -->
كيفية البدء:
- اضغط على الرابط أعلاه للانتقال إلى صفحة الخادم.
- سجل الدخول باستخدام حسابك على GitHub أو Google.
- اضغط على زر "استكشاف القدرات" لفتح واجهة الدردشة وبدء التجربة!
للحصول على أعلى دقة، خاصة مع الأرقام العشرية الطويلة، نوصي بشدة باستخدام نماذج قوية. النماذج التالية تم اختبارها وتعمل بشكل ممتاز مع هذه الأداة:>
* Claude 3 Sonnet من Anthropic
* GPT-4 Turbo من 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.)2. الإعداد
يتم إعداد الخادم من خلال ملف 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 = falseDefines 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 = socks5hThe 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.1The proxy port.
9050 -> Default port for Tor's SOCKS proxy.
8118 -> Default port for Tor's HTTP proxy (if enabled).
port = 90503. التكامل مع 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 في السجلات.
من ناحية أخرى، أظهرت عدة نماذج أداءً ممتازاً. حققنا نتائج رائعة مع Google Gemini 2.5 Flash lite، حيث أظهر دقة ملحوظة في التعامل مع الأرقام العشرية الطويلة وتنسيق جدول Markdown النهائي بشكل صحيح.
يحافظ Google gemini 2.5 flash lite بدون موجه ومع الموجه على الأرقام العشرية المثالية (في المثال تم استخدام درجة حرارة 0.6)
بالنسبة لهذا الغرض المحدد، مفضلتي الشخصية هي Gemini 2.5 Flash lite بسبب دقته وموثوقيته المستمرة.
3.2 كيفية التحقق من نتائج MCP في السجلات
أفضل طريقة للتأكد من أن الوكيل يستقبل البيانات الصحيحة وأن النموذج اللغوي الكبير لا يرتكب أخطاء هي التحقق من ملف سجل التصحيح الذي ينشئه خادم MCP.
تم ضبط هذا الخادم تلقائياً لإنشاء ملف سجل في مجلد فرعي ضمن دليل مشروعك. سيكون الموقع:
your-project-folder/
└── logs_mcp/
└── mcp_debug.logداخل ملف mcp_debug.log، ستجد بيانات JSON الدقيقة التي يرسلها الأداة إلى نموذج اللغة الكبير (LLM) قبل أن يقوم النموذج بمعالجتها. يمكنك فحص هذا الـ JSON يدويًا للتحقق من أي قيم، خاصة الأرقام العشرية الطويلة من خصائص مثل monoisotopic_mass، لضمان أن نموذج اللغة لم يقم بإدخال أي أخطاء تقريب أو هلوسات في إجابته النهائية.
📊 الاستخدام
بمجرد التكامل، سيستخدم مساعد الذكاء الاصطناعي الخاص بك هذه الأداة تلقائيًا عند سؤاله عن معلومات كيميائية. الأداة الأساسية المتاحة هي 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.
سيقوم الوكيل باستدعاء أداة search_compounds_by_name، والتي ستقوم بالعثور على كل مركب بشكل ذكي، واسترجاع بياناته، وإرجاعها إلى النموذج اللغوي الكبير (LLM) لتنسيقها.
🛠 أداة MCP المكشوفة
search_compounds_by_name
يبحث عن عدة مركبات بالاسم، واحدة تلو الأخرى، باستخدام استراتيجية بديلة ذكية مع توقفات وإعادة المحاولة لتحقيق أقصى موثوقية.
المعلمات:
-
names(List[str]): قائمة بأسماء المركبات. مثال:["Aspirin", "Ibuprofen"]
🙏 الشكر والتقدير
استُلهم هذا المشروع بشكل كبير وبُني على أساس مشروع PubChem-MCP-Server الأصلي الذي أنشأه JackKuo666.
وعلى الرغم من أن هذا المستودع ليس نسخة متفرعة مباشرة، إلا أن المشروع الأصلي كان نقطة الانطلاق الحاسمة. يعزز هذا الإصدار المفهوم الأصلي مع التركيز على القوة الشديدة، واستراتيجيات البحث الذكية، وخصوصية المستخدم من خلال دمج اختياري مع Tor 🧅.
جزيل الشكر للمؤلف الأصلي على عمله الرائع ومشاركته مع المجتمع.
⚠️ إخلاء المسؤولية
هذه الأداة مخصصة للأغراض البحثية والتعليمية فقط. يرجى احترام شروط خدمة PubChem واستخدام هذه الأداة بشكل مسؤول.
--- Tranlated By Open Ai Tx | Last indexed: 2025-08-27 ---