Web Analytics

pubchem-agent-toolkit

⭐ 2 stars Russian by Milor123

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

Улучшенный сервер PubChem MCP для AI-ассистентов

🧪 Продвинутый, надежный и ориентированный на конфиденциальность сервер MCP, позволяющий AI-ассистентам интеллектуально искать и получать информацию о химических соединениях из PubChem.

Этот сервер PubChem MCP служит мощным мостом между AI-ассистентами (например, в AnythingLLM) и обширной химической базой данных PubChem. Он использует Model Context Protocol (MCP), чтобы дать AI-моделям возможность выполнять умные, устойчивые поиски химических соединений и программно получать их подробные свойства.


✨ Основные возможности

Это не просто еще одна оболочка PubChem. Сервер был полностью переработан для высокой надежности и интеллектуальности:

---


🚀 Не требуется установка: попробуйте онлайн на Smithery.ai

Если вы новичок в серверах MCP или просто хотите протестировать возможности этого инструмента без локальной установки, доступна живая хостинговая версия на Smithery.ai. Это позволяет общаться с агентом прямо в вашем браузере.

<-- Исследуйте живого агента PubChem на Smithery.ai -->

Как начать:

> ✅ Рекомендуемые модели для лучших результатов >
Для достижения максимальной точности, особенно при работе с длинными десятичными числами, мы настоятельно рекомендуем использовать мощные модели. Следующие варианты протестированы и отлично работают с этим инструментом:
>
* Claude 3 Sonnet от Anthropic
* OpenAI GPT-4 Turbo (или более новые версии, такие как GPT-4o)
>
Мы подтвердили, что обе модели корректно обрабатывают полную точность десятичных чисел, возвращаемых инструментом, без округления.


🚀 Быстрый старт и установка

Этот сервер предназначен для локального запуска, либо на вашем рабочем столе, либо в среде Docker AnythingLLM.

1. Зависимости

Этот проект использует несколько библиотек Python. Убедитесь, что они установлены в вашей среде.

Создайте файл requirements.txt со следующим содержимым:

requests
bs4 
mcp 
pubchempy
pandas
PySocks

Установите их с помощью uv или pip:

uv venv
.venv\Scripts\activate
uv pip install -r requirements.txt
(Примечание: PySocks требуется только если вы планируете использовать функцию Tor SOCKS5 proxy.)

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 = 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

3. Интеграция с AnythingLLM

Следуйте официальной документации, чтобы добавить это как пользовательский MCP сервер. Ключевой момент — указать command на ваш исполняемый файл Python и скрипт 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

С другой стороны, несколько моделей показали отличные результаты. Мы достигли выдающихся результатов с Google Gemini 2.5 Flash lite. Эта модель проявила высокую точность при работе с длинными десятичными числами и корректном форматировании итоговой Markdown-таблицы.

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 не внес никаких ошибок округления или галлюцинаций в окончательном ответе.


📊 Использование

После интеграции ваш AI-ассистент будет автоматически использовать этот инструмент при запросе химической информации. Основной предоставляемый инструмент — 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

Осуществляет поиск нескольких соединений по названию, поочередно, используя умную стратегию отката с паузами и повторными попытками для максимальной надежности.

Параметры:

Возвращает: Список словарей, где каждый словарь содержит либо информацию о найденном соединении, либо сообщение об ошибке с деталями, почему поиск для данного соединения не удался.


🙏 Благодарности

Данный проект был вдохновлен и построен на основе оригинального PubChem-MCP-Server, созданного JackKuo666.

Хотя этот репозиторий не является прямым форком, оригинальный проект был важной отправной точкой. Эта версия расширяет исходную концепцию, делая упор на максимальную надежность, интеллектуальные стратегии поиска и конфиденциальность пользователя через интеграцию Tor 🧅.

Огромное спасибо автору оригинального проекта за отличную работу и за то, что он поделился ею с сообществом.


⚠️ Отказ от ответственности

Этот инструмент предназначен для исследовательских и образовательных целей. Пожалуйста, уважайте условия использования PubChem и используйте этот инструмент ответственно.

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