MCP凭证管理工具

mcpguard是一个本地优先的CLI工具,用于扫描MCP配置文件中的明文凭证,将其迁移到加密的保险库中,并在运行时注入凭证,确保安全。

  • by j0ltdevv
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 JulienPoitou/MCPGUARD

使用说明

🔒 mcpguard cli

AI代理的1Password --安全MCP凭据管理器

麦普加德 将MCP配置文件中的明文API密钥替换为加密的vault引用。凭据安全地存储在您的操作系统密钥链中,从不以明文形式写入磁盘。

⚠️ 问题

53%的MCP服务器使用 明文API密钥 存储在配置文件中。这些密钥可以获得:

  • 致力于git仓库
  • 跨机器共享
  • 暴露在数据泄露中

2026年2月,8000多台MCP服务器被发现可以在互联网上公开访问。

✅ 解决方案

mcpguard是本地第一个CLI工具,它:

  • 扫描MCP配置以查找明文凭据
  • 将它们迁移到加密的保管库(操作系统密钥链)
  • 用安全引用替换值
  • 在运行时注入凭据——从不在磁盘上注入

🚀 快速开始

# Install
npm install -g mcpguard-cli

# Audit your current setup
mcpguard audit

# Migrate all plaintext keys to vault
mcpguard migrate

# Done! Your credentials are now secure

🎬 演示

📋 命令

mcpguard audit

扫描MCP配置文件以查找明文凭据。

mcpguard audit
mcpguard audit --json
mcpguard audit --path ~/.config/claude/claude_desktop_config.json

输出示例:

⚠️  SECURITY ALERT

3 of your 4 MCP servers have plaintext API keys

📁 Claude Desktop: ~/.config/claude/claude_desktop_config.json

  🔴 github.API_KEY
     Risk: CRITICAL
     Value: ghp_...x7k9

  🟠 linear.TOKEN
     Risk: HIGH
     Value: lin_...a2b4

📋 Recommended Actions:

  1. Run mcpguard migrate to move all keys to secure vault
  2. Rotate exposed API keys immediately
  3. Check git history for accidentally committed secrets

mcpguard migrate

将所有明文凭据移动到安全保管库。

mcpguard migrate
mcpguard migrate --yes  # Skip confirmation

发生了什么:

  1. 扫描所有MCP配置文件
  2. 标识明文凭据
  3. 将每个存储在操作系统密钥链中(加密)
  4. 将值替换为 mcpguard:// 参考文献
  5. 您的配置文件不再包含机密

mcpguard add <service>

手动添加凭据。

mcpguard add github
mcpguard add linear --key API_TOKEN
mcpguard add notion --value ntn_1234567890abcdef

mcpguard list

列出所有存储的凭据。

mcpguard list
mcpguard list --json

mcpguard status

显示vault运行状况和统计信息。

mcpguard status

🔧 支持的配置文件

mcpguard会自动扫描这些位置:

配置 路径
克劳德桌面 ~/.config/claude/claude_desktop_config.json
克劳德桌面(macOS) ~/Library/Application Support/Claude/claude_desktop_config.json
光标 ~/.cursor/mcp.json
通用 ~/.mcp.json, ./.mcp.json, ./mcp.json

🛡️ 安全模型

  • OS钥匙扣:存储在macOS钥匙串、Linux特勤局或Windows凭据管理器中的凭据
  • AES-256:对不在密钥链中的凭据进行回退加密
  • 零明文:没有秘密写入磁盘
  • 本地优先:没有云同步,没有网络呼叫
  • 开源:通过透明度实现安全

📦 安装

npm

npm install -g mcpguard-cli

自制(macOS/Linux)

即将推出 --自制配方奶粉将在未来发布。

源自源头

git clone https://github.com/JulienPoitou/mcpguard
cd mcpguard
npm install
npm run build
npm link

🧪 工作流示例

在麦普加德之前

你的 claude_desktop_config.json:

{
  "mcpServers": {
    "github": {
      "command": "mcp-server-github",
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    },
    "linear": {
      "command": "mcp-server-linear",
      "env": {
        "LINEAR_API_KEY": "lin_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

⚠️ 问题:API密钥是纯文本的,暴露给任何有文件访问权限的人。

mcpguard迁移后

mcpguard migrate

您的配置变为:

{
  "mcpServers": {
    "github": {
      "command": "mcp-server-github",
      "env": {
        "GITHUB_TOKEN": "mcpguard://a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    },
    "linear": {
      "command": "mcp-server-linear",
      "env": {
        "LINEAR_API_KEY": "mcpguard://b2c3d4e5-f6a7-8901-bcde-f12345678901"
      }
    }
  }
}

✅ 安全:在操作系统密钥链中加密存储的凭据,在运行时注入。

🧩 运行时集成

mcpguard为MCP客户端提供了一个运行时填充程序:

# Run your MCP client through mcpguard
mcpguard run claude

或者使用Node.js API:

import { McpGuardRuntime } from 'mcpguard/runtime';

const runtime = new McpGuardRuntime();
const config = await runtime.injectCredentials(originalConfig);

📊 比较

功能 mcpguard 明文 1密码
MCP本地 ✅ ❌ ❌
操作系统钥匙链 ✅ ❌ ✅
自动迁移 ✅ 不适用 ❌
本地优先 ✅ ✅ ❌
免费 ✅ ✅ ❌
OAuth流程 ✅ (v0.2) ❌ ❌

🗺️ 路线图

  • v0.1 (当前):Vault+审计+迁移+基本CLI
  • v0.2:GitHub、Google、Linear、Notion的OAuth流;轮换警报;审计日志
  • v0.3:mcpscan集成;权限范围;提供者注册表
  • v1.0:团队金库;CI/CD集成;VSCode扩展

🧠 为什么是“mcpguard”?

模型上下文协议(MCP)已成为人工智能代理和工具之间的通用接口。MCP被Anthropic、OpenAI、谷歌采用,并得到Linux基金会的支持,现在为GitHub、Linear、Figma、Supabase、Notion等数百个平台的集成提供支持。

mcpguard确保这个生态系统不会重蹈过去的覆辙——明文证书不是一个可行的安全模型。

📄 许可证

麻省理工学院——见 许可证 了解详情。

🤝 贡献

欢迎投稿!请阅读 贡献.md 第一。

# Fork and clone
git clone https://github.com/YOUR_USERNAME/mcpguard
cd mcpguard

# Install dependencies
npm install

# Run tests
npm test

# Build
npm run build

📬 问题

报告错误和功能请求 github网站/JulienPoitou/mcpguard/issues.


建于❤️ 通过 朱利安·普瓦图