当前位置: 首页 > news >正文

MCP调用示例-GitHub仓库操作

在上一篇文章MCP核心概念和应用 ———AI 大模型的标准化工具箱里,我们讲述了MCP的安装,现在让我们试一试通过示例了解它的功能吧!
首先确保你已经有了相应的APIKEY。
💡大模型中转API推荐
✨中转使用教程
1、点击界面上的 「Done」按钮:
在这里插入图片描述
2、新建一个对话,点击 「New Task」按钮:
在这里插入图片描述
3、向 AI 提问,例如:
我的名字是 BNTang,我在 GitHub 上有哪些仓库?
在这里插入图片描述
我们无需手动指定 MCP 服务 或 工具,AI 会自动智能地选择最合适的 工具 进行处理。在发送问题后,AI 请求调用名为 search_repositories 的 MCP 工具:

在这里插入图片描述
4、点击 「Approve」按钮,允许 工具 调用:
在这里插入图片描述
此时,Cline 会调用 MCP 工具 并获取数据:

在这里插入图片描述
5、最终,大模型 会将获取到的数据进行整理,并返回 最终结果:
在这里插入图片描述
如图所示,AI 列举了我的 14 个公开仓库,说明 MCP Server 已成功配置并正常运行。

接下来,我们打开一个 Powershell 界面:
在这里插入图片描述
我们一起来探究一下 MCP 的本质究竟是什么。我先粘贴三行 命令:

$json = '{"jsonrpc":"2.0","id":123,"method":"tools/call","params":{"name":"search_repositories","arguments":{"query":"user:BNTang"}}}'$env:GITHUB_PERSONAL_ACCESS_TOKEN = "脱敏处理"echo $json | npx -y @modelcontextprotocol/server-github
  1. 第一行定义了一个 JSON 字符串,它正是客户端(Cline)向 MCP Server 传递的参数。我们看到 JSON 中的 method 字段是 “tools/call”,表示调用工具;params 中的工具名为 “search_repositories”,即搜索仓库;query 则是具体的搜索参数,这里是查询 GitHub 用户 “BNTang”。
  2. 第二行设置了运行时的 环境变量,即 GitHub 的 个人访问令牌(已脱敏)。
  3. 第三行则通过 管道符,将刚才定义的 JSON 参数传递给 MCP Server(一个基于 NodeJS 的程序)执行。
    现在我们 运行 一下上述 命令:

在这里插入图片描述
可以看到,成功获取了 GitHub 上用户 “BNTang” 的 仓库信息。

通过这个例子,我们发现 MCP 本质上并没有什么神秘之处。它的核心原理,就是客户端通过 命令行 调用本地(或服务器上)的 NodeJS 或 Python 程序,执行特定操作后再返回结果。

接下来,我们再 测试 一个新的 任务:创建一个名为 “cline_test” 的 GitHub 仓库。

我在 Cline 的 问答输入框 中输入:

请帮我创建一个 GitHub 仓库,名字叫做 cline_test

在这里插入图片描述
此时,Cline 会询问我是否允许它调用 MCP Server,我点击 Approve:

在这里插入图片描述
随后,Cline 显示 仓库创建成功,并返回了 仓库地址:

在这里插入图片描述
点击 链接,我们跳转到 GitHub 查看一下:

在这里插入图片描述
确认 仓库已经 成功创建:

在这里插入图片描述
我们注意到,单个 MCP Server 工具 提供了多达 26 项强大的功能,其中包括但不限于:

  1. 创建或更新文件 (create_or_update_file)
  2. 搜索仓库 (search_repositories)
  3. 创建仓库(create_repository)
  4. 获取文件内容 (get_file_contents)
  5. 推送文件 (push_files)

这些功能几乎涵盖了所有与 GitHub 交互的需求,一个 MCP 工具就可以轻松处理这些操作。

更重要的是,我们只需使用 自然语言,就能直接指挥 AI 完成这些工作,全程无需离开 VSCode,极大提升了我们的 工作效率。

通过以上示例,我们清晰地感受到了 MCP 的 强大 与 便捷 之处。

相关文章:

  • c++解决动态规划
  • 【16】数据结构之基于树的排序算法篇章
  • 行业深度:金融数据治理中的 SQL2API 应用创新
  • Google政策大更新:影响金融,新闻,社交等所有类别App
  • 亚远景-自动驾驶时代,ASPICE评估标准将如何演进?
  • 【GIT】放弃”本地更改,恢复到远程仓库的状态git fetch origin git reset --hard origin/分支名
  • 【安卓15】分析录屏应用与原生投放和屏幕共享的联系,停止共享后录屏结束
  • D3路网图技术文档
  • 第三篇:深入 Framer Motion Variants:掌握组件动画编排的艺术
  • 基于单片机的出租车计价系统
  • 驱动-兼容不同设备-container_of
  • GPU服务器声音很响可以怎么处理
  • STM32 HAL库之WDG示例代码
  • Python使用FastMCP开发MCP服务端
  • 构建批量论文格式修改系统:从内容识别到自动化处理
  • 【ARM】MDK烧录提示Error:failed to execute‘ ‘
  • 如何用AI将IPD项目评审效率提升300%?
  • IMX6ULL2025年最新部署方案2在Ubuntu24.04上编译通过Qt5.12.9且部署到IMX6ULL正点原子开发板上
  • MCP(模型上下文协议)、A2A(Agent2Agent)协议和JSON-RPC 2.0的前沿技术解析
  • 网络安全·工具篇1·Nmap的运用
  • 王毅会见泰国外长玛里:坚决有力打击电诈等跨境犯罪
  • 丁俊晖连续7年止步世锦赛16强,中国军团到了接棒的时候
  • 北京朝阳涉住宅组团地块126亿元成交
  • 纪录电影《中国有戏:天幕计划》启动,有望太空播放
  • 点燃“文化活火”,上海百年街区创新讲述“文化三地”故事
  • 泽连斯基与特朗普进行简短会谈