Модель сервера контекстного протокола для Zotero
👁 Статус ветки GitHub
👁 PyPI - Версия
Этот проект представляет собой сервер Python, реализующий протокол контекста модели (MCP) для Zotero , предоставляя вам доступ к вашей библиотеке Zotero в помощниках AI. Он предназначен для реализации небольшого, но максимально полезного набора взаимодействий с Zotero для использования с клиентами MCP .
Функции
Этот сервер MCP предоставляет следующие инструменты:
zotero_search_items: Поиск элементов в вашей библиотеке Zotero с помощью текстового запросаzotero_item_metadata: Получить подробную информацию о метаданных определенного элемента Zoterozotero_item_fulltext: Получить полный текст определенного элемента Zotero (т. е. содержимое PDF)
Их можно обнаружить и получить к ним доступ через любой клиент MCP или через MCP Inspector .
Каждый инструмент возвращает форматированный текст, содержащий соответствующую информацию из ваших элементов Zotero, а помощники на основе искусственного интеллекта, такие как Клод, могут использовать их последовательно, выполняя поиск элементов, а затем извлекая их метаданные или текстовое содержимое.
Related MCP server: zotero-assistant-mcp
Установка
Этот сервер может работать либо с локальным API, предлагаемым приложением Zotero для настольных компьютеров , либо через Zotero Web API . Локальный API может быть немного более отзывчивым, но требует, чтобы приложение Zotero было запущено на том же компьютере с включенным API. Чтобы включить локальный API, выполните следующие действия:
Откройте Zotero и откройте «Настройки Zotero».
На вкладке «Дополнительно» установите флажок «Разрешить другим приложениям на этом компьютере взаимодействовать с Zotero».
[!ВАЖНО] Для доступа к конечной точке
/fulltextна локальном API, которая позволяет извлекать полное содержимое элементов в вашей библиотеке, вам необходимо установить сборку Zotero Beta (по состоянию на 2025-03-30). После выпуска версии 7.1 это больше не будет иметь места. Для получения дополнительной информации см. https://github.com/zotero/zotero/pull/5004 . Если вы не хотите этого делать, используйте вместо этого веб-API.
Чтобы использовать Zotero Web API, вам необходимо создать ключ API и найти свой идентификатор библиотеки (обычно это ваш идентификатор пользователя) в настройках вашей учетной записи Zotero здесь: https://www.zotero.org/settings/keys
Доступны следующие варианты конфигурации:
ZOTERO_LOCAL=true: использовать локальный API Zotero (по умолчанию: false, см. примечание ниже)ZOTERO_API_KEY: Ваш ключ API Zotero (не требуется для локального API)ZOTERO_LIBRARY_ID: Ваш идентификатор библиотеки Zotero (ваш идентификатор пользователя для пользовательских библиотек, не требуется для локального API)ZOTERO_LIBRARY_TYPE: Тип библиотеки (пользователь или группа, по умолчанию: пользователь)
uvx с локальным API Zotero
Чтобы использовать это с Claude Desktop и прямой установкой Python с uvx , добавьте следующее в конфигурацию mcpServers :
{
"mcpServers": {
"zotero": {
"command": "uvx",
"args": ["--upgrade", "zotero-mcp"],
"env": {
"ZOTERO_LOCAL": "true",
"ZOTERO_API_KEY": "",
"ZOTERO_LIBRARY_ID": ""
}
}
}
}Флаг --upgrade необязателен и будет загружать последнюю версию, когда появятся новые. Если у вас не установлен uvx , вы можете использовать pipx run вместо этого или клонировать этот репозиторий локально и использовать инструкции в разделе «Разработка» ниже.
Docker с Zotero Web API
Если вы хотите запустить этот сервер MCP в контейнере Docker, вы можете использовать следующую конфигурацию, вставив свой ключ API и идентификатор библиотеки:
{
"mcpServers": {
"zotero": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "ZOTERO_API_KEY=PLACEHOLDER",
"-e", "ZOTERO_LIBRARY_ID=PLACEHOLDER",
"ghcr.io/kujenga/zotero-mcp:main"
],
}
}
}Для обновления до новой версии запустите docker pull ghcr.io/kujenga/zotero-mcp:main . Также можно использовать установку на основе docker для взаимодействия с локальным API Zotero, но вам нужно будет изменить указанную выше команду, чтобы обеспечить сетевое подключение к локальному интерфейсу API приложения Zotero.
Разработка
Информация о внесении изменений и участии в проекте.
Клонировать этот репозиторий
Установите зависимости с помощью uv , выполнив:
uv syncСоздайте файл
.envв корне проекта с указанными выше переменными среды.
Запустите MCP Inspector для локального развития:
npx @modelcontextprotocol/inspector uv run zotero-mcpЧтобы протестировать локальный репозиторий с помощью Claude Desktop, запустите echo $PWD/.venv/bin/zotero-mcp в своей оболочке в этом каталоге, затем установите следующее в конфигурации Claude Desktop:
{
"mcpServers": {
"zotero": {
"command": "/path/to/zotero-mcp/.venv/bin/zotero-mcp"
"env": {
// Whatever configuration is desired.
}
}
}
}Проведение тестов
Чтобы запустить тестовый набор:
uv run pytestРазработка Докера
Создайте образ контейнера с помощью этой команды:
docker build . -t zotero-mcp:localЧтобы протестировать контейнер с помощью MCP-инспектора, выполните следующую команду:
npx @modelcontextprotocol/inspector \
-e ZOTERO_API_KEY=$ZOTERO_API_KEY \
-e ZOTERO_LIBRARY_ID=$ZOTERO_LIBRARY_ID \
docker run --rm -i \
--env ZOTERO_API_KEY \
--env ZOTERO_LIBRARY_ID \
zotero-mcp:localСоответствующая документация
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kujenga/zotero-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
