简介
本文旨在引导读者快速入门 GitHub MCP (Model Context Protocol) 服务,并结合 Cline 插件进行实践操作。通过本文,你将了解到如何配置 Cline 以连接 GitHub MCP 服务器,创建仓库,推送和拉取文件,以及创建和提交到新的分支。本文以图文并茂的方式,详细记录了整个操作过程,帮助你轻松上手 GitHub MCP 服务。
配置MCP

安装Cline插件。

在settings中配置API Provider、API KEY、Model、Custom Instructions,点击Done保存。

测试能否对话。

成功收到模型的响应。

点击MCP Servers。

可以看到很多可选择的MCP服务。

我们选择GitHub的MCP服务进行安装。

点击安装后,进入聊天窗口,ai会引导MCP的安装。


运行命令,在当前的工作区创建了github-mcp-server
目录。

接着,ai会读取MCP的配置文件cline_mcp_settings.json
。

ai读取后,请求修改cline_mcp_settings.json
文件的内容。添加了 GitHub MCP 服务器的配置。使用 write_to_file
工具来更新文件,使用 README 中的 NPX 示例,并将 disabled
设置为 false
,autoApprove
设置为 []
。

更新后,ai向我们请求GitHub的token。

我们在GitHub上创建一个token

给token命名。

赋予所有仓库的权限。


选择细微权限的配置,我们允许Administration(仓库创建、删除、设置、团队和协作者)、Codespaces(创建、编辑、删除和列出 Codespaces)、Contents(仓库内容、提交、分支、下载、发行版和合并)的读写权限。


点击生成token。

复制token到cline对话。

添加token到配置文件cline_mcp_settings.json
。

cline_mcp_settings.json
更新后添加了 GitHub 个人访问令牌。ai请求通过使用 search_repositories
工具来演示服务器的功能,搜索查询词为 "modelcontextprotocol" 的仓库。

工具报错了,提示连接失败,因为配置文件里的路径写错了。

将cline_mcp_settings.json文件手动修改为图中样式。

可以看到GitHub这里滑块已经显示绿色,表明它的MCP服务安装成功。
创建仓库

请求ai创建一个名为MCP-Test的公共仓库。

这里调用了MCP服务的create_repository工具来创建仓库。


至此已成功设置了 GitHub MCP 服务器,并在我的 16Miku 账户下创建了一个名为 MCP-Test 的公共仓库。

可以在https://github.com/16Miku/MCP-Test
查看到该仓库已成功创建。

可以在这里查看该MCP服务有哪些功能。
推送文件

我们创建一个MCP-Test本地空间。

用Trae打开该文件夹,请求ai在当前文件夹创建一个精美的网页文件,用于介绍MCP协议。

点击保存。


这里open index.html
是一个 macOS 系统上用于在默认浏览器中打开 HTML 文件的便捷命令。 由于我的系统是windows11,不能执行该命令。

更改默认的终端设置Terminal: Select Default Profile
。

修改默认终端为Windows PowerShell。

命令ai使用powershell打开index.html。


可以看到ai编写的MCP介绍简易网页。

让ai将当前项目提交到MCP-Test仓库。


这里显示推送文件到 GitHub 仓库时报错,提示仓库为空。虽然创建仓库时设置了自动初始化,但可能没有成功创建 main
分支。所以要确认分支名称是 main
,然后再次尝试推送。


工具执行再次失败,并出现相同的错误。即 create_repository
工具中的 autoInit
参数并没有创建默认分支。ai将尝试使用 create_branch
工具显式地创建一个分支,然后再推送文件。

工具执行再次失败,并出现相同的错误。显示 create_branch
工具也要求仓库有一些初始内容。
ai将尝试使用 create_or_update_file
工具直接在仓库中创建一个文件。这应该会初始化仓库并创建一个默认分支。

MCP服务调用了create_or_update_file
工具来创建README.md文件。

可以看到响应信息。

可以看到提交信息。
perl
{
"content": {
"name": "README.md",
"path": "README.md",
"sha": "6df9e3391c2545417f91eb0eb835bfe93e027ef3",
"size": 52,
"url": "https://api.github.com/repos/16Miku/MCP-Test/contents/README.md?ref=main",
"html_url": "https://github.com/16Miku/MCP-Test/blob/main/README.md",
"git_url": "https://api.github.com/repos/16Miku/MCP-Test/git/blobs/6df9e3391c2545417f91eb0eb835bfe93e027ef3",
"download_url": "https://raw.githubusercontent.com/16Miku/MCP-Test/main/README.md",
"type": "file",
"_links": {
"self": "https://api.github.com/repos/16Miku/MCP-Test/contents/README.md?ref=main",
"git": "https://api.github.com/repos/16Miku/MCP-Test/git/blobs/6df9e3391c2545417f91eb0eb835bfe93e027ef3",
"html": "https://github.com/16Miku/MCP-Test/blob/main/README.md"
}
},
"commit": {
"sha": "7e51328cb860bc173935dac54bb88b02cf7201f0",
"node_id": "C_kwDOOZ_f8doAKDdlNTEzMjhjYjg2MGJjMTczOTM1ZGFjNTRiYjg4YjAyY2Y3MjAxZjA",
"url": "https://api.github.com/repos/16Miku/MCP-Test/git/commits/7e51328cb860bc173935dac54bb88b02cf7201f0",
"html_url": "https://github.com/16Miku/MCP-Test/commit/7e51328cb860bc173935dac54bb88b02cf7201f0",
"author": {
"name": "16Miku",
"email": "[email protected]",
"date": "2025-04-15T17:29:27Z"
},
"committer": {
"name": "16Miku",
"email": "[email protected]",
"date": "2025-04-15T17:29:27Z"
},
"message": "Create README.md",
"tree": {
"sha": "54535f544b314b0ff453cedf70c1ec2249f82535",
"url": "https://api.github.com/repos/16Miku/MCP-Test/git/trees/54535f544b314b0ff453cedf70c1ec2249f82535"
},
"parents": []
}
}

这里显示在 MCP-Test 仓库中成功创建了 README.md 文件。表明已经初始化了仓库并创建了一个默认分支。ai将再次尝试推送 index.html 文件。

这里ai调用了MCP服务的push_files
工具。

收到响应信息。

这里显示已成功推送index.html文件到MCP-Test仓库。

在GitHub上可以看到出现了README.md和index.html文件。
拉取文件

请求ai将在远程仓库创建的README.md同步拉取到本地。

ai调用了MCP服务的get_file_contents
工具,请求拉取README.md文件。

从远程仓库加载了README.md文件,并准备写在本地。

保存后,成功拉取了README.md文件到本地。
提交到分支

请求ai创建一个branch_test.html文件,并在远程仓库创建新的分支branch1,提交当前项目所有文件到该分支。

创建了branch_test.html
文件。接下来将使用MCP服务的create_branch
工具,在远程仓库中创建名为 branch1
的新分支。

收到响应信息。

创建了branch1分支后,调用MCP服务的push_files
工具推送所有文件到该分支。


收到响应信息。

这里显示已创建分支branch1,并推送当前所有文件到该分支。

可以看到github仓库中成功创建了branch1并提交了所有文件。
总结
通过本文的详细步骤,我们成功地完成了以下操作:
- 配置 Cline 插件并连接 GitHub MCP 服务器: 详细介绍了如何在 Cline 中配置 API Provider、API Key、Model 和 Custom Instructions,并成功连接 GitHub MCP 服务器。解决了连接失败的问题,确保了 Cline 与 GitHub MCP 服务器的正常通信。
- 创建 GitHub 仓库: 使用 MCP 服务的
create_repository
工具成功创建了一个名为 MCP-Test 的公共仓库,为后续的文件操作奠定了基础。 - 推送文件到 GitHub 仓库: 解决了仓库为空导致推送失败的问题,通过
create_or_update_file
工具创建了 README.md 文件,初始化了仓库并创建了默认分支,最终成功将 index.html 文件推送到了 MCP-Test 仓库。 - 从 GitHub 仓库拉取文件: 使用 MCP 服务的
get_file_contents
工具成功将远程仓库中的 README.md 文件拉取到本地,实现了远程仓库与本地文件的同步。 - 创建并提交到新的分支: 使用 MCP 服务的
create_branch
工具成功创建了名为branch1
的新分支,并将当前项目的所有文件推送到了该分支,实现了多分支管理。
总而言之,本文完整地演示了如何使用 Cline 插件和 GitHub MCP 服务进行代码仓库的管理,包括配置、创建、推送、拉取和分支管理等操作。希望本文能帮助你更好地理解和使用 GitHub MCP 服务,提高开发效率。