Cline + GitHub MCP 学习记录

简介

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

配置MCP

alt text

安装Cline插件。

alt text

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

alt text

测试能否对话。

alt text

成功收到模型的响应。

alt text

点击MCP Servers。

alt text

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

alt text

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

alt text

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

alt text

alt text

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

alt text

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

alt text

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

alt text

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

alt text

我们在GitHub上创建一个token

alt text

给token命名。

alt text

赋予所有仓库的权限。

alt text

alt text

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

alt text

alt text

点击生成token。

alt text

复制token到cline对话。

alt text

添加token到配置文件cline_mcp_settings.json

alt text

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

alt text

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

alt text

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

alt text

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

创建仓库

alt text

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

alt text

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

image-20250416025344308

image-20250416025419939

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

alt text

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

alt text

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

推送文件

alt text

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

alt text

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

alt text

点击保存。

alt text

alt text

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

alt text

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

alt text

修改默认终端为Windows PowerShell。

alt text

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

alt text

alt text

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

alt text

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

alt text

alt text

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

alt text

alt text

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

alt text

工具执行再次失败,并出现相同的错误。显示 create_branch 工具也要求仓库有一些初始内容。

ai将尝试使用 create_or_update_file 工具直接在仓库中创建一个文件。这应该会初始化仓库并创建一个默认分支。

alt text

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

alt text

可以看到响应信息。

image-20250416031247227

可以看到提交信息。

{
  "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": "wenwenzi2022@outlook.com",
      "date": "2025-04-15T17:29:27Z"
    },
    "committer": {
      "name": "16Miku",
      "email": "wenwenzi2022@outlook.com",
      "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": []
  }
}

alt text

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

alt text

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

alt text

收到响应信息。

alt text

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

alt text

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

拉取文件

alt text

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

alt text

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

alt text

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

alt text

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

提交到分支

alt text

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

alt text

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

alt text

收到响应信息。

alt text

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

alt text

alt text

收到响应信息。

alt text

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

alt text

可以看到github仓库中成功创建了branch1并提交了所有文件。

总结

通过本文的详细步骤,我们成功地完成了以下操作:

  1. 配置 Cline 插件并连接 GitHub MCP 服务器: 详细介绍了如何在 Cline 中配置 API Provider、API Key、Model 和 Custom Instructions,并成功连接 GitHub MCP 服务器。解决了连接失败的问题,确保了 Cline 与 GitHub MCP 服务器的正常通信。
  2. 创建 GitHub 仓库: 使用 MCP 服务的 create_repository 工具成功创建了一个名为 MCP-Test 的公共仓库,为后续的文件操作奠定了基础。
  3. 推送文件到 GitHub 仓库: 解决了仓库为空导致推送失败的问题,通过 create_or_update_file 工具创建了 README.md 文件,初始化了仓库并创建了默认分支,最终成功将 index.html 文件推送到了 MCP-Test 仓库。
  4. 从 GitHub 仓库拉取文件: 使用 MCP 服务的 get_file_contents 工具成功将远程仓库中的 README.md 文件拉取到本地,实现了远程仓库与本地文件的同步。
  5. 创建并提交到新的分支: 使用 MCP 服务的 create_branch 工具成功创建了名为 branch1 的新分支,并将当前项目的所有文件推送到了该分支,实现了多分支管理。

总而言之,本文完整地演示了如何使用 Cline 插件和 GitHub MCP 服务进行代码仓库的管理,包括配置、创建、推送、拉取和分支管理等操作。希望本文能帮助你更好地理解和使用 GitHub MCP 服务,提高开发效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值