GitHub多令牌管理服务器

一个通过多个GitHub个人访问令牌(PAT)管理私有仓库访问的服务器,提供自动化令牌切换、速率限制管理和仓库内容获取功能。

  • by juliar13
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 juliar13/github-mcp-server

使用说明

GitHub MCP服务器🐙

GitHub MCP (Model Context Protocol) 服务器包含多个GitHub Personal Access Token (PAT) 的明细栏样式中定义的设置MCP 服务器。

机能✨

  • 🔐 多个GitHub PAT 认证和速率限制管理
  • 📦 获取专用存储库的发布信息
  • 📁 获取存储库内容(文件目录)
  • 📋 获取组织用户的存储库列表
  • ⚡ 自动速率限制管理和令牌切换

安装,安装🚀

1.安装相关性

npm install

2.设置环境变量

方法A: MCP在客户端环境变量中设置(建议)

Claude Desktop 在工作空间的边缘claude_desktop_config.json 中指定为环境变量:

{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["/absolute/path/to/github-mcp-server/dist/index.js"],
      "env": {
        "GITHUB_TOKENS": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,ghp_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
      }
    }
  }
}

3.构建

npm run build

使用方法 💡

开发模式

npm run dev

生产模式

npm start

MCP 工具🔧

此服务器包含:MCP 提供工具:

get_latest_release

获取存储库的最新发布信息。

参数:

  • owner:存储库所有者名称
  • repo:存储库名称
  • tokens: GitHub标记(可选,如果已在环境变量中设置)

get_repository_content

获取存储库的文件或目录内容。

参数:

  • owner:存储库所有者名称
  • repo:存储库名称
  • path:文件目录路径(可选,默认值:“”)
  • ref: Git引用(分支、标记和提交)(可选,默认值:“主”)
  • tokens: GitHub标记(可选,如果已在环境变量中设置)

list_repositories

获取组织或用户的存储库列表。

参数:

  • owner:组织名称或用户名
  • type:存储库类型(“all”、“owner”、“member”)(可选,默认值: “全部”)
  • tokens: GitHub标记(可选,如果已在环境变量中设置)

开発🛠️

命令

# 開発サーバー起動
npm run dev

# ビルド
npm run build

# テスト実行
npm test

# コード品質チェック
npm run lint              # ESLint実行
npm run lint:fix          # ESLint自動修正
npm run format            # Prettierフォーマット
npm run format:check      # フォーマットチェック
npm run type-check        # TypeScript型チェック

# セキュリティチェック
npm run security:check    # Gitleaksでシークレット検出

# Pre-commitフック
npm run pre-commit        # 全ファイルでpre-commitフック実行

# ブランチ管理
npm run check-branch       # 現在のブランチ確認
npm run create-feature-branch  # 新しいfeatureブランチ作成

分支管理🌿

特征分支开发

main分支受保护,无法直接提交。请按照以下顺序开发 是:

# 1. 現在のブランチ確認
npm run check-branch

# 2. フィーチャーブランチを作成
npm run create-feature-branch
# または手動で: git checkout -b feature/your-feature-name

# 3. 通常通り開発・コミット
git add .
git commit -m "Add new feature"

# 4. リモートにプッシュ
git push origin feature/your-feature-name

# 5. GitHubでPull Request作成

开发环境设置🔧

Pre-commit挂接设置

第一次设置时pre-commit安装挂钩:

# 依存関係インストール(pre-commitも含む)
npm install

# Pre-commitフックを手動でインストール(自動的に実行されない場合)
npx pre-commit install

代码质量检查

Pre-commit挂钩在提交前自动运行:

  • ✅ 分支保护: main防止直接提交到分支
  • ✅ 代码格式:更漂亮
  • ✅ 编码质量ESLint
  • ✅ 模具检查:TypeScript
  • ✅ 安全性: Gitleaks密码检测
  • ✅ 构建检查:编译确认
  • ✅ 文件完整性:换行、空格等

技术栈📚

  • Node.js + TypeScript
  • @模型上下文协议/sdk - MCP 协议实现
  • @奥克托基特/休息 - GitHub API 客户机
  • dotenv - 環境変数管理
  • 预承诺 + Gitleaks -安全性和代码质量
  • 更漂亮 + ESLint -代码格式和质量

许可证📄

麻省理工学院