一条龙开发指南:MCP AI Agent 理论+项目实战开发你的MCP Server

前言

halo,我是不易, 继ChatGPT发布已经过去了快三年了, 随着 AI 人工智能的不断发展给我们开发人员甚至UI设计人员带来了巨大的变化.

24年横空出世Claude 3.5 模型给我震撼到了, 力压 ChatGPT

我的小程序以及UI设计差不多都是它完成, 这个团队的强大让我不得不去关注.

24年10月2日,Anthropic 发布 MCP 协议,旨在为 AI 模型提供一个开放、通用且有共识的协议标准。

它允许开发者将 AI 模型连接到各种数据源和工具,从而实现更强大的 AI 应用。

你可以把 MCP 想象成 AI 世界的“USB-C 接口”——就像 USB-C 让各种设备轻松互联,MCP 也为 AI 模型连接不同数据源和工具提供了标准化方式。

这又是AI 再次迎来新突破, 新的概念, 新的协议, 新的生态.

那时 MCP 还没现在这么火,也没有这么多 MCP Server, 大部分的MCP Server 都是基于Nodejs 开发, 没有Java 的生态, 随着 Spring 的生态支持,Java 也迎来了“春天”——只需简单配置,就能实现自己的 MCP Server。

对于刚接触的朋友来说,MCP 和 MCP Server 可能有些陌生。别担心,接下来我们会一步步探索它们的玩法:从认识概念,到简单操作,再到实战开发。流程图如下:

⚠️ 本文纯手敲, 涵盖了理论知识+实战知识, 如果您觉得帮助到了您,请给我点个👍
如果本文有错别字,或者有不对的地方请指出谢谢啦!
🛫 本期内容涉及较多, 本次的理论知识较多,如果你已经掌握了理论那么可以直接前往项目实战开发
MCP Server 开发技术选型:
Java + Spring Ai 来完成我们的腾讯云开发者社区 MCP Server
另外接入支付宝 MCP 来完成支付场景, 带着大家结合起来情景演绎, AI 助手让AI调用多个MCP Server
比如有人找我写论文我 AI 生成完毕需要让他交钱我们就可以生成链接让他去支付
最后会统一将这些 MCP 串联起来形成 MCP Agent 变成一个 AI 小助手
如下图的结合

什么是 MCP? 为什么一定要用 MCP?

  • MCP 是一个标准协议,就像给 AI 大模型装了一个 “万能接口”,让 AI 模型能够与不同的数据源和工具进行无缝交互。它就像 USB-C 接口一样,提供了一种标准化的方法,将 AI 模型连接到各种数据源和工具。
  • MCP 旨在替换碎片化的 Agent 代码集成,从而使 AI 系统更可靠,更有效。通过建立通用标准,服务商可以基于协议来推出它们自己服务的 AI 能力,从而支持开发者更快的构建更强大的 AI 应用。开发者也不需要重复造轮子,通过开源项目可以建立强大的 AI Agent 生态。
  • MCP 可以在不同的应用 / 服务之间保持上下文,增强整体自主执行任务的能力。

下面图展现了 MCP 在实际应用中的整体架构和数据流转过程:

  1. MCP Client(如 Claude、IDE、工具等):这是你本地的“指挥中心”,负责发起各种 AI 能力请求。无论你用的是 AI 助手、开发工具还是自动化脚本,只要支持 MCP 协议,都可以作为 MCP Client。
  2. MCP 协议:它就像一根“万能数据线”,把 MCP Client 和不同的 MCP Server 连接起来。所有的请求和响应都通过 MCP 协议进行标准化传递,保证了兼容性和可扩展性。
  3. MCP Server A/B/C:每个 MCP Server 都可以对接不同的数据源或服务。例如:
    • MCP Server A 连接本地数据源 A(如本地数据库、文件等)
    • MCP Server B 连接本地数据源 B
    • MCP Server C 通过 Web API 连接远程服务 C(如云端 API、第三方平台等)
  4. 数据流转:当 MCP Client 发起请求时,会根据需求选择合适的 MCP Server。Server 再去访问对应的数据源或服务,获取结果后通过 MCP 协议返回给 Client。
  5. 本地与远程资源整合:无论数据源在本地还是远程,MCP 都能实现统一调用和管理。比如你既可以让 AI 读取本地文件,也能让它调用云端服务,全部通过同一套 MCP 协议完成。

这下懂了吧, 是不是觉得很强大, 赋予一个 “USB” 就可以访问你的数据库, 并且进行让他 CRUD、操作本地文件等等.

MCP Stdio 协议 & JSON-RPC 传输格式

在前面的架构图中,我们已经看到 MCP 如何像"USB-C"一样,把本地和远程的各种数据源、工具统一接入到 AI 系统中。这种统一接入极大提升了开发效率和系统扩展性。

这就很像 function call 让模型可以按需调用预设函数,自动获取数据或执行等等操作, 确实带来了便利,但也引入了新的问题:平台依赖强、API 不兼容,每次更换模型或平台都要重写集成代码,既费时又容易出错,还存在安全和交互上的局限。

MCP 正是为了解决这些"碎片化对接"的难题而生。它最大的特点就是"开箱即用"——你无需编写任何代码,只需通过简单的配置,就能直接接入和调用各种工具和服务。

接下来,我们重点介绍 MCP 的接入协议

MCP 支持很多协议: Stdio/SSE/Str/eamable HTTP/同进程调用, 其余的本文内容较多将另外单开一个专题详细讲解

我这里就重点介绍 MCP 协议之一:Stdio

标准输入/输出(Stdio)

Stdio 协议通过标准输入和输出流实现通信,非常适合本地集成和命令行工具开发。常见的使用场景包括:

  • 构建命令行工具
  • 实现本地系统集成
  • 简单的进程间通信
  • 使用 shell 脚本自动化

传输格式与配置示例

MCP 的配置也非常直观。你只需在 mcpServers 中定义好需要接入的 MCP Server(比如 mcp-gitee、支付宝mcp、mysql mcp 等),然后通过 MCP 客户端统一调用即可

例如下面的配置 JSON-RPC 传输格式 :

{
   
   
  "mcpServers": {
   
   
    "gitee": {
   
   
      "command": "npx",
      "args": [
        "-y",
        "@gitee/mcp-gitee@latest"
      ],
      "env": {
   
   
        "GITEE_API_BASE": "https://gitee.com/api/v5",
        "GITEE_ACCESS_TOKEN": "<your personal access token>"
      }
    }
  }
}

在任何支持MCP协议的客户端使用, 比如 Claude Desktop 、腾讯云代码助手、Cursor 等等

通过这种方式,无论你需要接入什么工具或服务,只需简单配置即可,无需关心底层实现细节,极大提升了开发效率和系统可维护性。

实操 MCP

那么接下来我们来看看如何使用, 以 腾讯云代码助手为例(非常好用强烈推荐), 接入 mcp-gitee 实现创建仓库、查询仓库、提交代码、推送代码等操作

前往 GITEE 仓库搜索 mcp-gitee 地址: https://gitee.com/oschina/mcp-gitee

往下滑可以看到 npx 启动方式 这个方式就需要你安装 Node.js 还有一种就是可执行文件启动这个就是要你自己去源码构建了, 我这边就直接使用 Node.js 方式集成, 如果你还没安装 Node.js 那么打开腾讯云 ai 对话问它如何安装即可非常全: https://copilot.tencent.com/chat/

{
  "mcpServers": {
    "gitee": {
      "command": "npx",
      "args": [
        "-y",
        "@gitee/mcp-gitee@latest"
      ],
      "env": {
        "GITEE_API_BASE": "https://gitee.com/api/v5",
        "GITEE_ACCESS_TOKEN": "<your personal access token>"
      }
    }
  }
}

继续往下滑可以看到这个 mcp server 支持的功能

有很多功能工具, 也有环境变量、也有命令行配置信息

我就列举几个教大家如何简单使用, 其他的同学们感兴趣就多玩玩

可用工具

服务器提供了各种与 Gitee 交互的工具:

工具 类别 描述
list_user_repos 仓库 列出用户授权的仓库
get_file_content 仓库 获取仓库中文件的内容
create_user_repo 仓库 创建用户仓库
create_org_repo 仓库 创建组织仓库
create_enter_repo 仓库 创建企业仓库
fork_repository 仓库 Fork 仓库
create_release 仓库 为仓库创建发行版
list_releases 仓库 列出仓库发行版
search_open_source_repositories 仓库 搜索开源仓库
list_repo_pulls Pull Request 列出仓库中的拉取请求
merge_pull Pull Request 合并拉取请求
create_pull Pull Request 创建拉取请求
update_pull Pull Request 更新拉取请求
get_pull_detail Pull Request 获取拉取请求的详细信息
comment_pull Pull Request 评论拉取请求
list_pull_comments Pull Request 列出拉取请求的所有评论
create_issue Issue 创建 Issue
update_issue Issue 更新 Issue
get_repo_issue_detail Issue 获取仓库 Issue 的详细信息
list_repo_issues Issue 列出仓库 Issue
comment_issue Issue 评论 Issue
list_issue_comments Issue 列出 Issue 的评论
get_user_info 用户 获取当前认证用户信息
search_users 用户 搜索用户
list_user_notifications 通知 列出用户通知

获取 MCP-GITEE 配置信息

在上面可以看到 mcp server 配置当中需要填入 GITEE_ACCESS_TOKEN 点击下面链接前往获取

填写好你的令牌名称、过期时间

⚠️ 令牌可千万别泄漏了, 别人是可以拿这个访问可以访问的操作权限.

使用 MCP-GITEE

前往下载腾讯云代码助手 https://copilot.tencent.com/#install

我就使用 Cursor 来下载腾讯云代码助手进行使用, 我这里已经下载过了, 同学们没下载的速度下载.

在侧边栏点击助手图标就可以使用了, 点击到 Craft 模式它支持 MCP 服务的使用

点击小花花图标, 可以看到 MCP 市场 我们搜索 MCP-GITEE 搜索不到, 因为还没收录进来

我们就手动添加即可, 复制上面的 mcp-gitee server json

点击已经安装, 配置 MCP Server , 会弹出编辑 mcp 配置文件

复制进去之后,在配置好 gitee 的令牌 token 即可看到旁边的 gitee 显示出这么多的工具

⚠️ 注意: 复制上面的npx命令,如果你是windows用户,需要做如下的修改:command修改为cmd ,下面的args数组增加 “/c"和 “npx”,注意顺序不要乱undefined"服务”: {
“command”: “cmd”,
“args”:
“/c”,
“npx”,
“-y”,
“@modelcontextprotocol/xxxxxxxxxxx”
undefined }

尝鲜 MCP Server 接入客户端使用

继续点击旁边的播放图标, 让 CodeBuddy 进行测试它是否可以正常使用

那么可以看到已经是输出了, 并且调用了 查询工具 去查询 gitee 上面叫 ruanyf 的技术博主, 接下来我们来搜索自己

可以看到也是可以正常的搜索出来的, 看到返回的信息没什么问题都是正确的

那么继续完成前面说的的任务吧

  • 获取当前登录用户的信息, 说实话很快嗷, 眼睛没眨眼就输出出来了, 腾讯云助手这么快吗

  • 创建用户仓库
  • 帮我创建一个仓库名称为: mcp-study 为公开仓库, 默认生成readme.md 里面的内容是 从零玩转MCP

不得不夸一下腾讯云部署的模型了,这么快的吗? 我用别的模型都要等 30 秒

可以看到调用了三个 mco 工具 , 但是仓库不默认给我公开, 可能是安全原因吧, 下面也提示我要我主动去设置一下.

1、创建仓库

2、获取仓库文件修改仓库文件为 我们指定的内容

3、创建了 issue

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值