使用说明
GitHub上的OpenAI MCP客户端 这是一个Node.js命令行应用程序,通过模型上下文协议(MCP)服务器和OpenAI的API与GitHub集成。它允许用户执行GitHub操作(例如,创建存储库、列出存储库),并使用MCP服务器的上下文向OpenAI查询GitHub相关信息。 特性
GitHub运营: 创建新存储库。 列出所有存储库。 列出GitHub API端点。
OpenAI集成: 从MCP服务器使用GitHub上下文查询OpenAI以获取详细答案(例如,“如何创建拉取请求”)。
交互式CLI: 用于输入命令的简单命令行界面。
安全配置: 为API键使用环境变量。
先决条件
Node.js:版本14或更高(推荐:最新LTS)。 npm:附带Node.js。 GitHub个人访问令牌:需要GitHub API访问。 OpenAI API密钥:对于OpenAI查询是必需的。 Git:用于版本控制和推送到GitHub。
安装
克隆存储库: 克隆https://github.com/[您的用户名]/tessst.git cd tessst
安装依赖关系: npm安装
这将安装axios和dotenv(添加在下面)。
设置环境变量:
在项目根目录中创建.env文件:touch.env
添加API密钥:OPENAI_API_KEY=your_OPENAI_API_KEY GITHUB_PERSONAL_ACCESS_TOKEN=您的_个人_访问_令牌
注意:永远不要将.env提交到GitHub。它被.gitignore忽略了。
安装MCP服务器:
该脚本使用@modelcontextprotocol/server github。它是通过npx按需安装的,因此不需要额外的设置。
用法
运行应用程序: node-openai-mcp-client.js
这将启动交互式CLI。
可用命令:
创建一个新的存储库:创建名为my repo的新存储库
列出所有仓库:列出所有仓库
列出GitHub API端点:列出GitHub API
查询OpenAI:如何创建拉取请求
退出:退出
交互示例:
创建名为testrepo的新repo 已成功创建新存储库:https://github.com/[您的用户名]/test repo 列出所有存储库 您的存储库:
- tessst:2025-05-03通过MCP客户端创建的存储库(https://github.com/[您的用户名]/tesst)
- 测试仓库:2025年5月3日通过MCP客户端创建的仓库(https://github.com/[您的用户名]/test repo)
如何创建pull请求 OpenAI的回应: 在GitHub上创建pull请求:
- 将您的更改推送到分支。..
项目结构
openai-mcp-client.js:带有CLI和GitHub/openai逻辑的主脚本。 .gitignore:忽略node_modules/、.env、日志和系统文件。 .env:存储API密钥(不受Git跟踪)。 package.json:定义依赖关系和脚本。
依赖项
axios:用于对GitHub和OpenAI API的HTTP请求。 dotenv:用于从.env加载环境变量。
使用dotenv更新package.json: npm安装dotenv
安全说明
API密钥:将OPENAI_API_KEY和GITHUB_PERSONAL_ACCESS_TOKEN存储在.env中,而不是存储在代码中。 GitHub令牌:在以下位置生成令牌https://github.com/settings/tokens具有回购范围。 OpenAI密钥:从获取https://platform.openai.com/account/api-keys.
故障排除
“无法启动GitHub MCP服务器”: 确保GITHUB_PERSONAL_ACCES_TOKEN有效并且具有仓库范围。 检查互联网连接。
“查询OpenAI时出错”: 验证OPENAI_API_KEY是否正确。
Git中的node_modules: 确保.gitignore包含node_modules/,然后运行:git rm-r--cached node_module git commit-m“删除节点模块”
无法识别命令: 使用精确的措辞(例如,“创建名为my repo的新repo”)或检查脚本的handleGitHubOperation函数。
贡献
分叉存储库。 创建一个功能分支(git checkout-b feature/你的功能)。 提交更改(git Commit-m“添加您的功能”)。 推送到分支(git推送原点功能/你的功能)。 打开一个pull请求。
许可证 MIT许可证。有关详细信息,请参阅许可证。 联系 有关问题或建议,请在GitHub上打开问题或联系[您的用户名]。
