mcpField
A
api-credentials

api-credentials

github.com/oaustegard安全15755 次安装1 天前更新
代码仓库

关于 api-credentials

这是一款已弃用的技能,用于存储和读取 Anthropic、Google 与 GitHub 的 API 凭据。它仍可用于本地开发或向后兼容;托管技能则应改用项目知识文件。

主要功能

  1. 01读取三家服务商的凭据
  2. 02支持配置文件或环境变量
  3. 03检查凭据是否已配置
  4. 04生成脱敏密钥以便安全记录
  5. 05说明凭据安全管理方式

适用场景

  1. 01支持调用服务商 API 的旧技能
  2. 02管理本地开发环境中的凭据
  3. 03检查服务商密钥是否已配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oaustegard/claude-skills --skill api-credentials

安装后在 Claude Code 中输入/api-credentials确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
CHANGELOG.md
README.md
assets/
config.json.example
scripts/
credentials.py

详细介绍

API 凭据管理

🚨 已弃用:对于托管技能环境,不再需要此技能。

新方法: 技能现在会直接从项目知识文件中读取凭据:

  • ANTHROPIC_API_KEY.txt、GOOGLE_API_KEY.txt、GITHUB_API_KEY.txt(推荐)
  • 或 API_CREDENTIALS.json(合并文件)

请参阅更新后的技能文档:

仅用于旧版场景: 此技能对于本地开发环境或向后兼容可能仍有用。


⚠️ 警告:这是一个个人技能——切勿分享或提交包含实际凭据的内容!

此技能提供多个提供商的 API 凭据安全存储和检索功能。它是其他需要以编程方式调用外部 API 的技能所依赖的组件。

支持的提供商

  • Anthropic(Claude API)
  • Google(Gemini API、Vertex AI 等)
  • GitHub(GitHub API、个人访问令牌)
  • 可扩展以支持其他提供商

目的

  • 集中存储多个 API 提供商的凭据
  • 为依赖此技能的其他技能提供安全的凭据检索方法
  • 在缺少凭据时提供清晰的错误消息
  • 支持多种凭据来源(配置文件、环境变量)

其他技能的用法

需要调用 API 的技能应引用此技能:

Anthropic Claude API
import sys
sys.path.append('/home/user/claude-skills/api-credentials/scripts')
from credentials import get_anthropic_api_key

try:
    api_key = get_anthropic_api_key()
    # Use api_key for Claude API calls
except ValueError as e:
    print(f"Error: {e}")
Google Gemini API
import sys
sys.path.append('/home/user/claude-skills/api-credentials/scripts')
from credentials import get_google_api_key

try:
    api_key = get_google_api_key()
    # Use api_key for Gemini API calls
except ValueError as e:
    print(f"Error: {e}")
GitHub API
import sys
sys.path.append('/home/user/claude-skills/api-credentials/scripts')
from credentials import get_github_api_key

try:
    api_key = get_github_api_key()
    # Use api_key for GitHub API calls
except ValueError as e:
    print(f"Error: {e}")

设置说明

选项 1:配置文件(推荐)
  1. 复制示例配置:
cp /home/user/claude-skills/api-credentials/assets/config.json.example \
   /home/user/claude-skills/api-credentials/config.json
  1. 编辑 config.json 并添加你的 API 密钥:
{
  "anthropic_api_key": "sk-ant-api03-...",
  "google_api_key": "AIzaSy...",
  "github_api_key": "ghp_..."
}
  1. 确保配置文件位于 .gitignore 中(已配置)
选项 2:环境变量

为所需的提供商设置环境变量:

# Anthropic Claude
export ANTHROPIC_API_KEY="sk-ant-api03-..."

# Google Gemini
export GOOGLE_API_KEY="AIzaSy..."

# GitHub
export GITHUB_TOKEN="ghp_..."
# or
export GITHUB_API_KEY="ghp_..."

将其添加到 Shell 配置文件(/.bashrc、/.zshrc)中以保留设置。

优先级

每个提供商的凭据检索按以下优先级进行:

  1. 技能目录中的 config.json(最高优先级)
  2. 环境变量(ANTHROPIC_API_KEY 或 GOOGLE_API_KEY)
  3. 如果两者都不可用,则引发 ValueError

安全说明

  • 切勿提交包含真实凭据的 config.json
  • config.json 文件应加入 .gitignore
  • 仅应将 config.json.example 纳入版本控制
  • 在共享或生产环境中,建议使用环境变量
  • 定期轮换 API 密钥
  • 技能绝不应记录或显示完整的 API 密钥

文件结构

api-credentials/
├── SKILL.md              # This file
├── config.json           # YOUR credentials (gitignored)
├── scripts/
│   └── credentials.py    # Credential retrieval module
└── assets/
    └── config.json.example  # Template for users

错误处理

找不到凭据时,模块会引发 ValueError,并提供明确的指导:

  • config.json 的存放位置
  • 如何设置环境变量
  • 用于生成密钥的提供商控制台链接

技能应捕获 ValueError 异常并进行适当处理。

可用函数

get_anthropic_api_key() → str

  • 返回 Anthropic API 密钥
  • 未配置时引发 ValueError

get_google_api_key() → str

  • 返回 Google API 密钥
  • 未配置时引发 ValueError

get_github_api_key() → str

  • 返回 GitHub API 令牌(个人访问令牌)
  • 未配置时引发 ValueError

get_api_key_masked(api_key) → str

  • 返回经过掩码处理的版本,便于安全记录
  • 示例:"sk-ant-...xyz"

verify_credential(provider) → bool

  • 检查是否已配置提供商
  • 返回 True/False,不引发异常
  • 提供商:'anthropic'、'google'、'github'

添加新提供商

如需支持其他提供商:

  1. 在 assets/config.json.example 中添加字段
  2. 在 scripts/credentials.py 中添加获取函数:
    def get_provider_api_key() -> str:
        # Follow existing pattern with config file + env var
        pass
    
  3. 将其添加到 verify_credential() 映射中
  4. 更新本文档

Token 效率

加载此技能约使用 300 个 token,但能省去在多个调用外部 API 的技能中重复编写凭据管理代码。它为所有凭据处理提供了统一、一致的模式。

评论

支持 Markdown