使用说明
项目简介
本项目 '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 项目的凭据。
- 快速启动: 提供详细的快速启动指南和示例配置,方便用户快速部署和测试。
安装步骤
- 安装 Python 3.11+: 确保你的系统已安装 Python 3.11 或更高版本。
- 安装 uv 包管理器: 打开终端并运行 'pip install uv' 安装 uv,这是一个更快的 Python 包安装工具。
- 同步依赖包: 在项目根目录下运行 'uv sync' 命令,安装项目所需的 Python 依赖包。
- 配置 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 进行身份验证的关键。
基本使用方法
-
配置 MCP 客户端: 根据上述 "服务器配置" 部分,将 JSON 配置添加到你的 MCP 客户端 (例如 Claude Desktop) 的配置文件中,并确保替换了正确的路径和 1Password 服务账户 Token。
-
启动 MCP 客户端: 启动配置好的 MCP 客户端应用。客户端会根据配置启动 '1Password MCP 服务器'。
-
在 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'。
信息
分类
开发者工具