GitHub MCP 测试项目
一个Python项目,用于测试GitHub令牌并创建能够通过MCP(模型上下文协议)服务器与GitHub仓库进行交互的AI代理。
🎯 项目概述
这个项目提供:
- GitHub令牌验证 - 快速测试以验证您的GitHub令牌是否有效
- MCP服务器测试 - 测试MCP服务器与GitHub集成的连接
- 人工智能聊天代理 - 可以与GitHub仓库进行聊天的Azure AI代理
- 适用于公共仓库的安全性 - 所有密钥均通过环境变量管理
📋 前提条件
- Python 3.8或更高版本
- GitHub个人访问令牌
- Azure AI 项目凭据
- Node.js(用于MCP服务器-
npx命令)
🚀 快速入门
1. 克隆或下载
cd "c:\Users\Charles Elwood\Documents\MCP Test Github Token"2. 创建虚拟环境
python -m venv venv
.\venv\Scripts\Activate.ps13. 安装依赖项
pip install -r requirements.txt4. 配置环境变量
复制示例环境文件:
copy .env.example .env编辑 .env 并添加您的凭据:
# GitHub Configuration
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here
# Azure AI Project Configuration
AZURE_AI_PROJECT_CONNECTION_STRING=your_connection_string_here
# Optional: Model Configuration
MODEL_NAME=gpt-4o5. 测试您的设置
步骤1:测试GitHub令牌
python quick-github-test.py步骤2:测试MCP聊天(可选)
python test-mcp-github-chat.py步骤3:运行高级代理
python advanced-mcp-github-agent.py📁 项目结构
MCP Test Github Token/
├── .env.example # Environment template (safe to commit)
├── .env # Your actual credentials (NEVER commit)
├── .gitignore # Protects secrets from being committed
├── requirements.txt # Python dependencies
├── README.md # This file
├── quick-github-test.py # Simple GitHub token validator
├── test-mcp-github-chat.py # MCP server connection test
└── advanced-mcp-github-agent.py # Full-featured AI agent🔑 获取您的凭据
GitHub个人访问令牌
- 访问 https://github.com/settings/tokens
- 点击“生成新令牌”→“生成新经典令牌”
- 给它起个名字(例如,“MCP 测试”)
- 选择范围:
- repo (对私有仓库的完全控制) - read:user (读取用户资料数据) - read:org (阅读组织和团队成员信息)
- 点击“生成令牌”
- 立即复制令牌 (你再也见不到它了!)
- 添加到您的
.env文件
Azure AI 项目连接字符串
选项1:通过Azure门户
- 访问 https://portal.azure.com
- 导航至您的Azure AI项目
- 前往“密钥和终端节点”
- 复制连接字符串
选项2:从Azure AI Studio
- 访问 https://ai.azure.com
- 选择您的项目
- 前往“设置”→“项目属性”
- 复制连接字符串
📝 脚本描述
quick-github-test.py
目的: 快速验证您的GitHub令牌\ 它的功能是:
- 测试令牌认证
- 显示用户信息
- 显示API速率限制
- 列出最近的存储库
使用时机: 验证你的GitHub令牌是否有效的第一步
test-mcp-github-chat.py
目的: 测试MCP服务器连接\ 它的功能是:
- 初始化 Azure AI 客户端
- 配置MCP GitHub服务器
- 创建一个人工智能代理
- 测试一段简单对话
使用时机: 验证MCP集成是否正常工作
advanced-mcp-github-agent.py
目的: 适用于GitHub的全功能AI代理\ 它的功能是:
- 创建一个智能的GitHub助手
- 支持多种对话模式(演示/交互式)
- 可以搜索仓库、读取文件、分析代码
- 处理有关仓库的复杂查询
使用时机: 主要用于在GitHub仓库上进行聊天的应用
🎓 使用示例
示例1:验证令牌
python quick-github-test.py预期输出:
✅ GitHub token is VALID!
📊 User Information:
Username: octocat
Name: The Octocat
Public Repos: 8
...示例2:询问仓库信息
python advanced-mcp-github-agent.py示例对话:
Select mode:
1. Demo mode (automated questions)
2. Interactive mode (chat freely)
Enter choice: 2
👤 You: What are the top Python ML libraries?
🤖 Assistant: Based on GitHub data, the top Python ML libraries are:
1. tensorflow/tensorflow - ⭐ 185k stars
2. pytorch/pytorch - ⭐ 79k stars
...🛡️ 安全最佳实践
✅ 应该做:
- 保持
.env在里面.gitignore(已配置) - 使用
.env.example作为模板(可以安全提交) - 定期轮换令牌
- 使用最小必要的令牌范围
- 定期审查令牌权限
❌ 不要:
- 提交(或:承诺)
.env将文件提交到Git(或:文件上传至Git) - 在聊天/电子邮件中分享令牌
- 使用包含不必要权限的令牌
- 在脚本中硬编码凭证
- 将推送令牌推送到公共仓库
提交前检查:
git status # Verify .env is not listed
git diff # Check no secrets in tracked files🔧 故障排除
问题:“未找到 GITHUB_PERSONAL_ACCESS_TOKEN”
解决方案:
- 验证
.env文件已存在(不是.env.example) - 检查令牌变量名是否完全匹配
- 确保周围没有多余的空格
=标志;符号
问题:从 GitHub 收到“401 未授权”错误
解决方案:
- 令牌可能已过期 - 请生成一个新的
- 检查令牌是否包含所需的范围
- 验证令牌是否正确复制(无多余空格)
问题:“Azure AI 连接失败”
解决方案:
- 验证连接字符串是否完整
- 检查Azure凭据是否有效
- 确保Azure AI项目已部署
- 尝试
az login刷新凭据
问题:“模块未找到”
解决方案:
pip install -r requirements.txt问题:“npx 未找到”(MCP 服务器)
解决方案: 从 https://nodejs.org 安装 Node.js
🔄 更新依赖项
pip install --upgrade -r requirements.txt📚 额外资源
🤝 贡献
这是一个个人测试项目,但请随意:
- 报告问题
- 提出改进建议
- 分享你自己的例子
📄 许可证
这个项目仅用于教育和测试目的。
⚠️ 重要注意事项
- 永远不要把自己的
.env文件 - 它里头藏着秘密呢! - 根据上述信息,以下是原文内容的翻译:GitHub API 请求速率限制适用 - 已验证的请求每小时可获得5,000次
- 可能会产生Azure费用 - 监控您的使用情况
- MCP需要Node.js - 确保
npx可用
🎉 成功核对清单
- \[ \] 已创建Python虚拟环境
- \[ \] 已安装依赖项
- \[ \]
.env配置了凭据的文件 - \[ \] GitHub令牌已通过验证,使用
quick-github-test.py - \[ \] 已测试Azure AI连接
- \[ \] 成功执行至少一次聊天查询
- \[ \]
.env在……中得到确认.gitignore
______________________________________________________________________
需要帮助吗? 查看故障排除部分或仔细检查错误信息——它们通常会指出问题所在!
