ServeMyAPI
个人 MCP(模型上下文协议)服务器,用于使用 macOS 钥匙串跨项目安全地存储和访问 API 密钥。
重要提示:ServeMyAPI 是一款 macOS 专用工具,依赖 macOS 钥匙串进行安全存储。它与 Windows 或 Linux 操作系统不兼容。更多详情,请参阅安全说明部分。
概述
ServeMyAPI 允许您将 API 密钥安全地存储在 macOS 钥匙串中,并通过一致的 MCP 接口访问它们。这让您可以轻松:
安全地存储 API 密钥(它们在 .env 文件或配置文件中不可见)
跨多个项目访问相同的密钥
使用自然语言来存储和检索密钥(与 Claude 等 LLM 一起使用时)
当您的人工智能助手需要访问服务时,直接向其提供密钥
Related MCP server: Terminal MCP Server
为什么使用 ServeMyAPI 而不是 .ENV 文件?
使用 ServeMyAPI 代替传统的 .ENV 文件可以解决几个常见问题:
GitHub 安全冲突:
为了安全起见,.ENV 文件需要从 Git 存储库中排除(通过 .gitignore)
这会产生“隐藏上下文”问题,其中重要的配置对于合作者和 LLM 是不可见的
新开发人员经常难以设置正确的环境变量
LLM 整合挑战:
由于安全限制,像 Claude 这样的 LLM 无法直接访问你的 .ENV 文件
当 LLM 需要 API 密钥来完成任务时,你通常需要手动解决方法
ServeMyAPI 让您的 AI 助手通过自然语言请求密钥
跨项目一致性:
使用 .ENV 文件,您通常需要在多个项目之间复制 API 密钥
当密钥改变时,需要更新多个文件
ServeMyAPI 提供了一个可从任何项目访问的中央存储位置
这种方法为您提供了两全其美的效果:安全存储敏感凭据,同时又不牺牲 AI 工具的可见性和可访问性。
特征
在 macOS 钥匙串中安全存储 API 密钥
用于存储、检索、列出和删除密钥的简单 MCP 工具
方便的 CLI 界面,用于基于终端的密钥管理
支持 stdio 和 HTTP/SSE 传输
与任何 MCP 客户端兼容(Claude Desktop 等)
安装
用法
CLI 界面
ServeMyAPI 带有命令行界面,可直接从您的终端快速管理密钥:
作为 stdio 服务器运行
这是将 ServeMyAPI 用作 MCP 服务器的最简单方法,尤其是在与 Claude Desktop 配合使用时:
作为 HTTP 服务器运行
对于需要 HTTP 访问的应用程序:
这将在端口 3000(或 PORT 环境变量中指定的端口)上启动服务器。
使用 Smithery
ServeMyAPI 可作为Smithery上的托管服务使用。
有关更多详细信息,请参阅Smithery API 文档。
配置 MCP 客户端
ServeMyAPI 可与任何兼容 MCP 的客户端兼容。示例配置文件位于examples目录中。
克劳德桌面
要将 ServeMyAPI 与 Claude Desktop 结合使用:
找到或创建 Claude Desktop 配置文件:
macOS :
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows :
%AppData%\Claude\claude_desktop_config.json
将 ServeMyAPI 添加到
mcpServers部分(您可以从examples/claude_desktop_config.json复制):{ "mcpServers": { "serveMyAPI": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/servemyapi/dist/index.js" ] } } }将
/ABSOLUTE/PATH/TO/servemyapi替换为 ServeMyAPI 安装的实际路径。重新启动 Claude Desktop。
风帆冲浪
要将 ServeMyAPI 与 Windsurf 一起使用:
打开 Windsurf 编辑器并导航至“设置”
使用
examples/windsurf_config.json中的示例将 ServeMyAPI 添加到您的 MCP 服务器配置中调整路径以适应您的本地安装
MCP 工具
ServeMyAPI 公开了以下工具:
商店 API 密钥
将 API 密钥存储在钥匙串中。
参数:
name:API 密钥的名称/标识符key:要存储的 API 密钥
示例(来自 Claude):
获取 API 密钥
从钥匙串中检索 API 密钥。
参数:
name:要检索的 API 密钥的名称/标识符
示例(来自 Claude):
删除 API 密钥
从钥匙串中删除 API 密钥。
参数:
name:要删除的 API 密钥的名称/标识符
示例(来自 Claude):
列出 API 密钥
列出所有存储的 API 密钥。
无需任何参数。
示例(来自 Claude):
安全说明
所有 API 密钥都安全地存储在 macOS 钥匙串中
只有当前用户可以访问密钥
钥匙串需要身份验证才能访问
没有以明文形式存储或记录任何密钥
路线图
ServeMyAPI 的未来计划包括:
代码扫描工具:该工具可自动扫描代码库中的 API 端点、敏感 URL 和环境变量,并建议将其存储在 Keychain 中的名称。这将允许开发人员继续在其常规工作流程中使用 .ENV 文件,同时确保凭据在需要时也可供 LLM 和其他工具使用。
跨平台支持:研究 Windows 和 Linux 的安全凭证存储选项,以使 ServeMyAPI 更广泛地被访问。
与流行框架集成:提供与 Next.js、Express 等框架的轻松集成。
密钥管理的 UI :一个简单的 Web 界面,用于直接管理您存储的 API 密钥。
欢迎通过提出问题或拉取请求来建议其他功能或为路线图做出贡献。
发展
执照
麻省理工学院