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.

Related MCP server: @1claw/mcp

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

  • Python 3.11 или новее.

  • Установленный op CLI, доступный в 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 .

--force перезаписывает существующую точку входа и пересобирает проект из исходного кода. (--reinstall повторно загружает зависимости PyPI — для локальной установки это не требуется.)

Запуск

Сервер обменивается данными через 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_whoami",
      "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
make test                                  # uv run pytest (fake `op` binary)
RUN_LIVE_OP_TESTS=1 uv run pytest -m live  # live tests against real op CLI
make lint                                  # ruff + pyright
make install-mcp                           # reinstall after code changes

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

Инструменты

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

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

Инструмент

Описание

op_ping

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

op_version

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

op_whoami

Текущая аутентифицированная учетная запись 1Password

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

Инструмент

Описание

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.

  • Токены сервисных аккаунтов — этот сервер предполагает использование биометрической аутентификации на рабочем столе.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    A
    maintenance
    An MCP server that integrates 1Password with AI agents, providing secure access to vaults and items with secrets redacted by default.
    16
    11 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for secure, just-in-time secret retrieval from 1claw vault and malicious content inspection, enabling AI agents to access secrets and security analysis.
    1
    164 npm
    2
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    MCP server that enables AI models to securely interact with a Bitwarden password manager vault via the rbw CLI.
    11
    1
    -
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for secure AI agent access to Bitwarden/Vaultwarden vaults with BYOK, exposing tools to list items, reveal secrets via encrypted Sends, get TOTP codes, and save credentials.
    7
    37 npm
    MIT