使用说明

项目简介

本项目 '1Password MCP 服务器' 是一个概念验证 (PoC) 的 MCP 服务器实现,旨在演示如何通过 Model Context Protocol (MCP) 将 1Password 密码管理器中的凭据安全地提供给大型语言模型 (LLM) 使用。它利用 1Password Python SDK 与 1Password 服务账户进行安全认证和数据访问,并通过 MCP 协议将凭据信息以标准化的方式提供给 LLM 客户端,例如 Claude Desktop 等 Agentic AI 应用。

请注意: 本项目仅为教育目的和概念验证,不建议在生产环境中使用。

主要功能点

  • 1Password 凭据访问: 允许 LLM 通过 MCP 协议安全地获取存储在 1Password 中的用户名和密码等凭据信息。
  • 基于 MCP 协议: 遵循 Model Context Protocol 标准,易于与支持 MCP 协议的 LLM 客户端集成。
  • 工具 (Tool) 注册: 实现 'get_1password_credentials' 工具,LLM 客户端可以调用此工具来获取指定 1Password 项目的凭据。
  • 快速启动: 提供详细的快速启动指南和示例配置,方便用户快速部署和测试。

安装步骤

  1. 安装 Python 3.11+: 确保你的系统已安装 Python 3.11 或更高版本。
  2. 安装 uv 包管理器: 打开终端并运行 'pip install uv' 安装 uv,这是一个更快的 Python 包安装工具。
  3. 同步依赖包: 在项目根目录下运行 'uv sync' 命令,安装项目所需的 Python 依赖包。
  4. 配置 1Password:
    • 在 1Password 中创建一个名为 'AI' 的保险库 (Vault)。
    • 将你希望通过 MCP 服务器访问的网站凭据等项目添加到 'AI' 保险库中。
    • 创建一个 1Password 服务账户,并授予该服务账户访问 'AI' 保险库的适当权限。
    • 获取服务账户的 Token,后续配置服务器时需要使用。

服务器配置

MCP 服务器需要配置在 MCP 客户端中才能使用。以下是配置 '1Password MCP 服务器' 的 JSON 示例,通常添加到 LLM 客户端(如 Claude Desktop)的配置文件中 (例如 'claude_desktop_config.json')。

{
  "mcpServers": {
    "1Password": {  // MCP 服务器名称,客户端内唯一标识,可自定义
      "command": "uv",  // 启动服务器的命令,这里使用 uv
      "args": [  // 启动参数列表
        "run",  // uv run 命令,用于运行 Python 脚本
        "--with", // uv 参数,用于指定需要加载的 extras (可选功能/依赖)
        "mcp[cli]", // 加载 mcp extra,包含 mcp 命令行工具和相关依赖
        "--with",
        "onepassword-sdk", // 加载 onepassword-sdk extra,包含 1Password SDK 依赖
        "mcp",  // 运行 mcp 命令
        "run",  // mcp run 子命令,用于启动 MCP 服务器
        "/your/dir/here/onepassword-mcp-server/server.py"  // MCP 服务器脚本 server.py 的绝对路径,**请替换为实际路径**
      ],
      "env": {  // 环境变量配置
        "OP_SERVICE_ACCOUNT_TOKEN": "INSERT_KEY_HERE"  // 1Password 服务账户 Token,**请替换为你的 Token**
      }
    }
  }
}

配置说明:

  • 'mcpServers': 定义 MCP 服务器配置的顶级 JSON 对象。
  • '"1Password"': 你为该 MCP 服务器定义的名称,在客户端中用于标识和引用。可以自定义,例如 "My1PasswordServer"。
  • 'command': 启动 MCP 服务器的命令。这里使用 'uv' 包管理器来运行 Python 脚本。
  • 'args': 启动命令的参数列表。
    • '"run"': 'uv run' 命令用于执行 Python 脚本。
    • '"--with", "mcp[cli]"': 使用 'uv' 的 '--with' 参数加载 'mcp[cli]' extra,这会安装并启用 MCP Python SDK 的命令行界面和相关依赖,使得 'mcp run' 命令可用。
    • '"--with", "onepassword-sdk"': 使用 'uv' 的 '--with' 参数加载 'onepassword-sdk' extra,安装 1Password Python SDK 的依赖,使服务器能够与 1Password 服务交互。
    • '"mcp"', '"run"': 调用 MCP Python SDK 提供的 'mcp run' 命令来启动 MCP 服务器。
    • '"/your/dir/here/onepassword-mcp-server/server.py"': 务必替换为 'server.py' 脚本在你的系统上的实际绝对路径。
  • 'env': 环境变量配置。
    • '"OP_SERVICE_ACCOUNT_TOKEN"': 必须设置为你的 1Password 服务账户 Token。 这是服务器连接 1Password API 进行身份验证的关键。

基本使用方法

  1. 配置 MCP 客户端: 根据上述 "服务器配置" 部分,将 JSON 配置添加到你的 MCP 客户端 (例如 Claude Desktop) 的配置文件中,并确保替换了正确的路径和 1Password 服务账户 Token。

  2. 启动 MCP 客户端: 启动配置好的 MCP 客户端应用。客户端会根据配置启动 '1Password MCP 服务器'。

  3. 在 LLM 中使用: 在 LLM 客户端中,你可以通过自然语言提示词来调用 '1Password MCP 服务器' 提供的工具。例如,在 Claude Desktop 中,你可以尝试以下提示:

    Get 1Password credentials for ticktick.com

    服务器会调用 'get_1password_credentials' 工具,根据提示词中的 "ticktick.com" (作为 'item_name' 参数) 从 1Password 中检索对应的凭据,并将结果返回给 LLM 客户端。

    你还可以结合其他 MCP 服务器一起使用,例如 'mcp-browser-use' 仓库演示的自动化浏览器操作示例:

    get 1Password credentials for ticktick.com and log into https://ticktick.com/signin

    这个提示词会同时调用 '1Password MCP 服务器' 获取凭据,并可能调用 'mcp-browser-use' 服务器控制浏览器自动登录到 'ticktick.com'。

信息

分类

开发者工具