Skip to main content
Glama
kujenga
by kujenga

Модель сервера контекстного протокола для Zotero

Статус ветки GitHub PyPI - Версия

Этот проект представляет собой сервер Python, реализующий протокол контекста модели (MCP) для Zotero , предоставляя вам доступ к вашей библиотеке Zotero в помощниках AI. Он предназначен для реализации небольшого, но максимально полезного набора взаимодействий с Zotero для использования с клиентами MCP .

Функции

Этот сервер MCP предоставляет следующие инструменты:

  • zotero_search_items : Поиск элементов в вашей библиотеке Zotero с помощью текстового запроса

  • zotero_item_metadata : Получить подробную информацию о метаданных определенного элемента Zotero

  • zotero_item_fulltext : Получить полный текст определенного элемента Zotero (т. е. содержимое PDF)

Их можно обнаружить и получить к ним доступ через любой клиент MCP или через MCP Inspector .

Каждый инструмент возвращает форматированный текст, содержащий соответствующую информацию из ваших элементов Zotero, а помощники на основе искусственного интеллекта, такие как Клод, могут использовать их последовательно, выполняя поиск элементов, а затем извлекая их метаданные или текстовое содержимое.

Related MCP server: Zotero MCP Server

Установка

Этот сервер может работать либо с локальным API, предлагаемым приложением Zotero для настольных компьютеров , либо через Zotero Web API . Локальный API может быть немного более отзывчивым, но требует, чтобы приложение Zotero было запущено на том же компьютере с включенным API. Чтобы включить локальный API, выполните следующие действия:

  1. Откройте Zotero и откройте «Настройки Zotero».

  2. На вкладке «Дополнительно» установите флажок «Разрешить другим приложениям на этом компьютере взаимодействовать с 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.

Разработка

Информация о внесении изменений и участии в проекте.

  1. Клонировать этот репозиторий

  2. Установите зависимости с помощью uv , выполнив: uv sync

  3. Создайте файл .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

Соответствующая документация

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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