op-mcp
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 vaultsPython-сервер намеренно сделан максимально легким. Каждый обработчик инструментов вызывает 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 для записи.
Инфраструктура
Инструмент | Описание |
| Проверка работоспособности MCP-сервера |
| Версия бинарного файла |
Инструменты чтения
Инструмент | Описание |
| Список всех доступных хранилищ (имена и ID) |
| Получение всех полей элемента по имени или ID |
| Чтение секрета по ссылке |
| Список элементов в хранилище (или во всех хранилищах) |
Инструменты записи
Инструмент | Описание |
| Создание нового элемента |
| Редактирование существующего элемента |
| Архивация или безвозвратное удаление элемента |
Вне области применения (на данный момент)
op signin/op signout— управление сессиями является задачейop.op document/op vault— добавим, когда появятся соответствующие сценарии использования.op inject/op run— внедрение шаблонов и загрузка переменных окружения являются удобствами командной строки, не имеющими прямого аналога в MCP.
This server cannot be installed
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