Skip to main content
Glama
jluckyiv
by jluckyiv

op-mcp

MCP-сервер, который является оберткой для 1Password CLI (op), предоставляя MCP-клиентам (Cowork, Claude Code, Claude Desktop) доступ к секретам и управлению элементами.

Архитектура

MCP client (Cowork, Claude Code, Claude Desktop)
  ↓ stdio (MCP protocol)
op-mcp (this Python server)
  ↓ subprocess per tool call
op CLI (1Password CLI)
  ↓ biometric prompt (Touch ID) + 1Password desktop app
1Password vaults

Python-сервер намеренно сделан максимально легким. Каждый обработчик инструментов вызывает CLI op и либо парсит JSON, либо возвращает «сырой» вывод. CLI берет на себя биометрическую аутентификацию, кэширование сессий и весь доступ к хранилищу. Python-часть отвечает за протокол MCP и формирование аргументов командной строки.

Этот дизайн по своей сути является stateless: каждый вызов инструмента запускает новый процесс CLI. op кэширует свою сессию внутри настольного приложения 1Password — мы не управляем сессиями, токенами или учетными данными. Полное обоснование см. в docs/design-notes.md.

Предварительные требования

  • Python 3.11 или новее

  • Установленный CLI op, доступный в PATH. Установка через Homebrew: brew install --cask 1password-cli (протестировано с v2.33.1).

  • Установленное настольное приложение 1Password и включенная интеграция с CLI: 1Password → Настройки → Разработчикам → ✓ «Интегрировать с 1Password CLI».

  • Включенный Touch ID для авторизации CLI (в той же панели настроек).

Установка

uv tool install .

Это создает изолированную виртуальную среду (venv) и добавляет op-mcp в PATH. Для обновления после внесения изменений в код:

uv tool install --force --reinstall .

Оба флага обязательны — --force перезаписывает существующий исполняемый файл, --reinstall обходит кэш сборки.

Запуск

Сервер обменивается данными через stdio, поэтому обычно он запускается MCP-клиентом, а не вручную. Для локального тестирования:

op-mcp

Сервер записывает логи в stderr и ожидает сообщения протокола MCP через stdin. Нажмите Ctrl-C для выхода.

Настройка MCP-клиента

Claude Desktop: Настройки → Коннекторы → Добавить → введите op-mcp в качестве команды. Или отредактируйте claude_desktop_config.json напрямую:

{
  "mcpServers": {
    "op": {
      "command": "op-mcp"
    }
  }
}

Claude Code: Добавьте в .mcp.json (проект) или ~/.claude/mcp.json (глобально) с той же структурой.

Cowork: Добавьте через конфигурацию MCP-сервера в Cowork.

Рекомендуемые разрешения

Чтение можно разрешить без ограничений; для записи следует запрашивать подтверждение.

{
  "permissions": {
    "allow": [
      "mcp__op__op_ping",
      "mcp__op__op_version",
      "mcp__op__op_list_vaults",
      "mcp__op__op_get_item",
      "mcp__op__op_read_secret",
      "mcp__op__op_list_items"
    ],
    "ask": [
      "mcp__op__op_create_item",
      "mcp__op__op_edit_item",
      "mcp__op__op_delete_item"
    ]
  }
}

Разработка

uv sync --extra dev
uv run pytest                              # unit tests (fake `op` binary)
RUN_LIVE_OP_TESTS=1 uv run pytest -m live  # live tests against real op CLI
uv run ruff check
uv run pyright

Тесты используют фиктивный бинарный файл op (временные shell-скрипты), поэтому они не требуют реального CLI или доступа к 1Password. «Живые» тесты (помеченные @pytest.mark.live) запускаются против реального CLI, требуют Touch ID и по умолчанию пропускаются.

Инструменты

Всего 9 инструментов: 2 инфраструктурных, 4 для чтения, 3 для записи.

Инфраструктура

Инструмент

Описание

op_ping

Проверка работоспособности MCP-сервера

op_version

Версия бинарного файла op CLI

Инструменты чтения

Инструмент

Описание

op_list_vaults

Список всех доступных хранилищ (имена и ID)

op_get_item

Получение всех полей элемента по имени или ID

op_read_secret

Чтение секрета по ссылке op://vault/item/field

op_list_items

Список элементов в хранилище (или во всех хранилищах)

Инструменты записи

Инструмент

Описание

op_create_item

Создание нового элемента

op_edit_item

Редактирование существующего элемента

op_delete_item

Архивация или безвозвратное удаление элемента

Вне области применения (на данный момент)

  • op signin / op signout — управление сессиями является задачей op.

  • op document / op vault — добавим, когда появятся соответствующие сценарии использования.

  • op inject / op run — внедрение шаблонов и загрузка переменных окружения являются удобствами командной строки, не имеющими прямого аналога в MCP.

-
security - not tested
F
license - not found
-
quality - not tested

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/jluckyiv/op-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server