Cline + GitHub MCP 学习记录

简介

本文旨在引导读者快速入门 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 设置为 falseautoApprove 设置为 []

更新后,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": "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": []
  }
}

这里显示在 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并提交了所有文件。

总结

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

  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 服务,提高开发效率。

相关推荐
谷哥的小弟1 小时前
Brave Search MCP服务器安装以及客户端连接配置
搜索引擎·大模型·spring ai·mcp·brave search
太空眼睛1 小时前
【MCP】使用SpringBoot基于Streamable-HTTP构建MCP-Client
spring boot·ai·llm·sse·mcp·mcp-client·streamable
kaizq12 小时前
AI-MCP-SQLite-SSE本地服务及CherryStudio便捷应用
python·sqlite·llm·sse·mcp·cherry studio·fastmcp
太空眼睛15 小时前
【MCP】使用SpringBoot基于Streamable-HTTP构建MCP-Server
spring boot·sse·curl·mcp·mcp-server·spring-ai·streamable
康de哥1 天前
MCP Unity + Claude Code 配置关键步骤
unity·mcp·claude code
田井中律.1 天前
MCP协议
mcp
通义灵码1 天前
Qoder 支持通过 DeepLink 添加 MCP Server
人工智能·github·mcp
酩酊仙人3 天前
fastmcp构建mcp server和client
python·ai·mcp
kwg1263 天前
本地搭建 OPC UA MCP 服务
python·agent·mcp
小小工匠3 天前
LLM - 从通用对话到自治智能体:Agent / Skills / MCP / RAG 三层架构实战
agent·rag·skill·mcp