随着 MCP 越来越受欢迎,Go MCP 库应运而生。本文将介绍与MCP 相关的 Go 语言库。准备好了吗?准备一杯你最喜欢的咖啡或茶,随着本文一探究竟吧。 mcp-gomcp-go 是 Go 语言实现的 Model Context Protocol(MCP)库,通过这个库可以实现 LLM 应用与外部数据源和工具之间的无缝集成。 主要特点快速:高级接口意味着更少的代码和更快的开发速度简单:使用极少的样板代码构建 MCP 服务器完整:MCP Go 旨在提供 MCP 核心规范的完整实现快速入门package main import 亮点功能类型安全:将工具参数定义为原生 Go 结构体,其余部分由 mcp-golang 自动处理(如模式生成、反序列化、错误处理等)。 = nil { panic(err) } <-done } 小结本文介绍了 mcp-go 和 mcp-golang 两个库及其基本用法。
大多数开发者使用的 MCP 服务器开发库是官方提供的 typescript-sdk,而作为 Go 开发者,我们也可以借助优秀的第三方库去开发 MCP 服务器,例如 ThinkInAIXYZ/go-mcp 本文将详细介绍如何在 Go 语言中使用 go-mcp 库来开发一个查询 IP 信息的 MCP 服务器。准备好了吗?准备一杯你最喜欢的咖啡或茶,随着本文一探究竟吧。 命令# 在类 Unix 系统(Linux/macOS)上 go build -o mcp-ip-geo . /cmd/mcp-ip-geo # 在 Windows 上 go build -o mcp-ip-geo.exe . -p 8000:8000 mcp-ip-geo-server 安装预编译版本使用 Go 安装最新版本的服务:go install github.com/chenmingyong0423/mcp-ip-geo
随着 MCP 越来越受欢迎,Go MCP 官方库应运而生。本文将介绍如何在 Go 语言里面使用官方提供的库构建一个 MCP 客户端。 modelcontextprotocol/go-sdk要构建 MCP 客户端和服务器,我们需要使用 modelcontextprotocol/go-sdk 库。 该库的设计灵感来源于多个现有的 Go 语言 MCP SDK。 安装 MCP 库在 Go 项目根目录下,执行以下命令:go get github.com/modelcontextprotocol/go-sdk构建 MCP 客户端接下来,我们使用 go-sdk 库来构建一个通过 (*mcp.TextContent).Text) } } 小结本文介绍了如何通过 MCP 官方的 Go SDK 实现了一个 MCP 客户端,该客户端具备以下功能:使用 stdio 模式连接到 MCP
Go-MCP 不仅是一个 SDK,更是 MCP 开源生态的补齐。 项目地址:https://github.com/ThinkInAIXYZ/go-mcp 快速认识 Go-MCP SDK Go-MCP SDK 采用清晰的分层架构设计,确保代码模块化、可扩展性和可维护性。 在大模型应用快速进入大规模线上运行阶段的当下,基于 Go 语言开发的 Go-MCP 充分利用了 Go 的强类型系统、并发模型和内存管理机制,提供高度可靠的 MCP 协议的实现。 快速上手 安装 安装 Go-MCP 非常简单,只需使用 Go 的标准包管理工具 go get 命令: go get github.com/ThinkInAIXYZ/go-mcp 这将下载并安装 Go-MCP Go-MCP 需要 Go 1.18 或更高版本,以确保支持最新的语言特性和标准库。
序本文主要研究一下如何使用spring-ai-starter-mcp-server进行自定义mcp server步骤pom.xml <dependency> <groupId >org.springframework.ai</groupId> <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId query")public String query(String param1) {return "hello" + param1;}}源码syncToolsorg/springframework/ai/mcp serverProperties);}syncTools这一部分把ToolCallback转为SyncToolSpecifications注册到spring中mcpSyncServerorg/springframework/ai/mcp serverBuilder.build();}mcpSyncServer会把注入的List、List、List、List设置到serverBuilder的tools、resources、prompts中小结spring ai mcp
这也坚定了我的想法:就从这个最硬核、最具商业潜力的方向入手,搞一次真正的实战。 所以,这篇续作不再停留在“构想”,我会把自己这几天的深入设计、技术选型思考以及踩到的第一个“坑”分享出来。 架构核心如下: MCP Server 框架:直接基于 Anthropic 官方的 go-mcp SDK 开发,省去协议层面的烦恼。 决策路由:这是大脑。 阶段三:向量化嵌入(调用外部Embedding API,Go的HTTP客户端并发能力强)。 阶段四:批量写入向量数据库(如 weaviate-go 或 qdrant-go 客户端)。 这部分代码虽繁琐,但Go的静态类型和结构体Tag(如 validate:"required")能让它非常清晰健壮。 第一个实战坑:MCP 工具的动态注册 在原型开发阶段,我立刻遇到了一个棘手的问题。 利用Go的 text/template 包和 reflect 机制,动态生成符合MCP规范的Tool Definition,并注册到Server中。
前面我们介绍了如何使用buf加上proto-gen-go-mcp工具实现mcp-server代码的生成,并且介绍了最基础的一种本地实现代码的方式。 --connect-go_out=. --go-mcp_out=. example.proto protoc -I. -I/third/ --go_out=. --go-grpc_out=. --go-mcp_out=. example_service.proto 生成的代码和前一篇类似,这里就不详细介绍了,本质上只是把buf的自动化过程给手动实现了一遍。 STDIO版本的server package main import ( "context" "errors" "fmt" "github.com/mark3labs/mcp-go /mcp" "github.com/mark3labs/mcp-go/server" example "learn/langchain/protoc_gen_mcp/exp1/server
protoc-gen-go-mcp@latest 安装后确认下 % ls $GOPATH/bin |grep mcp protoc-gen-go-mcp 它的工作还依赖下面几个插件 /protoc-gen-go-mcp/cmd/protoc-gen-go-mcp"] - local: protoc-gen-go-mcp out: . nested3 = 2; } Nested2 nested2 = 2; } Nested nested = 5; optional string optional_string = 6; |____example.connect.go | | | |____examplev1mcp | | | | |____example.pb.mcp.go | | | |____example.pb.go "learn/langchain/protoc_gen_mcp/exp2/gen/go/example/v1/examplev1mcp" "github.com/mark3labs/mcp-go
一、项目定位与核心价值 MCP(Model Context Protocol)Gateway 是面向 Kubernetes 环境的反向代理与管理层,专为 会话感知的路由 与 MCP 实例生命周期管理 设计 Adapters:在 /adapters 路径下注册的逻辑资源,代表各 MCP 实例,可与其他资源(如 /agents)共存。 四、控制平面 API(示例) 方法 路径 功能 POST /adapters 部署并注册新 MCP GET /adapters 列出所有 MCP GET /adapters/{name} 获取适配器元数据 / │ └─ Microsoft.McpGateway.Management/ ├─ mcp-example-server/ # 示例 MCP 服务器 ├─ deployment/ 九、结语 MCP Gateway 为构建 可扩展、会话感知、企业级安全 的模型服务平台提供了完整的技术方案。
/exp1/server" "github.com/mark3labs/mcp-go/server" ) func main() { s := server.NewMCPServer( 在使用的最后,我们分析下生成的.pb.mcp.go文件的源码 // Code generated by protoc-gen-mcp-go. /mcp-go/mcp" mcpserver "github.com/mark3labs/mcp-go/server" "encoding/json" "google.golang.org , 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a , 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x7d}} ) // ExampleServiceServer is compatible with the grpc-go
大家好,我是人月聊IT,今天推荐一本关于MCP的书籍。 1. 大模型,MCP和AI Agent 大家可以看到最近MCP,AI Agent,上下文工程等一直是一个讨论的热点。 聊聊MCP开发从入门到实战 对于MCP原理和MCP开发的书我最近看了好几本,从里面选择一本我认为写得还不错得进行推荐。即人民邮电出版社出版的《MCP开发-从入门到实践这本书》。 为何推荐这本书,说几个关键点: MCP基础概念,把核心组件,提示词,资源,协议,工具讲解很清楚 偏应用实战,没有花太多篇幅去大量接收MCP底层原理 基于Claude Desktop来讲MCP应用和配置 而这本书基本是一本偏开发和实战的书,让你能够快速上手。 具体书籍的核心内容,参考出版社的介绍如下: 第1章介绍了MCP的基本概念、技术特点及其架构。 第6章介绍了MCP Inspector工具的使用,包括其基本功能、高级特性、最佳实践和实际应用案例。
解析配置 main函数通过 config.Init 函数来解析并 watch 配置文件(函数路径:config/config.go),config.go 源码为: package configimport apiserver_demos/demo02/ $GOPATH/src/apiserver 在 apiserver 目录下编译源码 $ cd $GOPATH/src/apiserver $ gofmt -w . $ go tool vet . $ go build -v . 环境变量名格式为config/config.go 文件中 viper.SetEnvPrefix("APISERVER")所设置的前缀和配置名称大写, 二者用 _连接,比如APISERVER_RUNMODE
大家好,我是地鼠哥,最近阳哥让我调研MCP相关的最佳实践。 作为一个 Go 开发者,说实话,看到隔壁 Python 在 AI 领域玩得风生水起,心里多少是有点痒的。 于是我决定深入挖一挖 Go + AI + MCP 到底能擦出什么火花,看看能不能搞个落地的项目出来。 发现 Anthropic 官方刚刚发布了 go-sdk,这说明 Go 语言在 MCP 生态里终于有了“正规军”。 我还关注到了 go-zero 社区,他们已经有了 mcp-zero 这样的尝试,主要集中在代码生成和脚手架上。我的思考:现有的 Go MCP 项目很多还是 Demo 级别,或者是偏底层的 SDK。 Go 微服务(API/RPC),想让 AI 调用它们,难道要为每个接口手写一遍 MCP Tool 定义吗?
开发 MCP Server 假设我们提供 web 搜索功能,那么怎么通过 MCP 对接到大模型上呢? 开发 MCP Client 上面开发了 MCP Server,那么怎么让大模型调用 MCP Server 呢? 服务器向 MCP 客户端发送sampling/createMessage请求 MCP 客户端审查该请求,并可以进行修改 MCP 客户端从 LLM 中生成一个结果 MCP 客户端审查生成的结果 MCP print(f'拒绝执行命令: {cmd}') returnf'命令执行被拒绝, content: {result.content}' 可以在调试界面中确认是否继续往下执行: 6. 资源或者项目 MCP 官方提供了很多服务,可以参考:https://mcp.so/。
MCP详解及手把手实战 Model Context Protocol(MCP)是一个开放协议,旨在标准化大型语言模型(LLM)与外部数据源和工具之间的集成方式。 什么是 MCP? MCP 可以被视为 AI 应用程序的“USB-C 接口”。正如 USB-C 提供了连接各种设备的标准化方式,MCP 为 LLM 提供了访问多种数据源和工具的统一协议。 如何开始使用 MCP? MCP 提供了多种入门路径: 快速入门:通过示例服务器连接到 Claude Desktop,快速体验 MCP 的功能。 开发一个MCP服务端 该服务端包含功能: 查询数据库用户信息 新增用户信息到数据库 MCP服务端数据表 MCP服务端代码 from mcp.server import FastMCP from selenium.webdriver () 编写代码之后运行 MCP客户端 使用vscode中的cline作为MCP客户端在进行模型对话的时候调用MCP服务端 安装cline插件 编辑cline中MCP服务端的配置文件 使用查询用户信息的询问
一、MCP核心底层逻辑与核心价值 1.1 MCP的本质与底层架构 MCP全称Model Context Protocol,是由OpenAI牵头推出的标准化开放协议,核心目标是打通大模型与外部系统、工具、 从底层来看,MCP是基于JSON-RPC 2.0规范的应用层协议,定义了大模型客户端(MCP Client)与外部服务(MCP Server)之间的通信标准、消息格式、能力发现与调用规范。 可观测性:MCP调用的日志、指标、链路追踪完全复用原有服务的可观测体系,实现全链路可监控、可排查 2.2 改造全流程 三、全链路改造实战落地 3.1 环境与依赖配置 项目基于JDK 17开发,核心pom.xml </configuration> </plugin> </plugins> </build> </project> 3.2 存量业务服务现状 本次实战以企业最常见的用户管理存量服务为例 //127.0.0.1:8080/mcp/jsonrpc MCP WebSocket服务,访问路径为ws://127.0.0.1:8080/mcp/ws 4.2 标准化能力发现验证 MCP协议定义了标准化的能力发现机制
随着 MCP 越来越受欢迎,Go MCP 库应运而生。本文将介绍如何在 Go 语言里面构建一个 MCP 服务器。 mcp-go要构建 MCP 客户端和服务器,我们需要使用 mcp-go 库。 mcp-go 是 Go 语言实现的 Model Context Protocol(MCP)库,通过这个库可以实现 LLM 应用与外部数据源和工具之间的无缝集成。 主要特点快速:高级接口意味着更少的代码和更快的开发速度简单:使用极少的样板代码构建 MCP 服务器完整:MCP Go 旨在提供 MCP 核心规范的完整实现安装 MCP 库在 Go 项目根目录下,执行以下命令 :go get github.com/mark3labs/mcp-go构建 MCP 服务器接下来,我们使用 mcp-go 提供的 server 模块,构建一个通过 stidio 方式连接的 MCP 服务器
1.前言虽然这个AI已经火了很久,无论是这个智能体,还是这个MCP之类的,都是非常流行的吧,但是其实我一直想要深入的学习一下这个MCP,我之前对于这个MCP的理解仅仅停留在这个使用cursor里面的配置 ,结合这个高德地图,微信读书做的两个小小的工具,而且那个时候应该是4月份,也就是我们的这个MCP刚刚兴起的哪个阶段,现在这个MCP已经是非常流行的了,但是我还是决定耐着性子吧这个里面的相关的原理学习梳理一下 ,因为我觉得自己对于MCP的理解还不是非常的深刻,但是我知道这个MCP的重要性还是非常的。 ,还有一些是和我们的这个Github相关的操作,这个时候我们的示意图变成了下面的这个样子:下面的这个就是有MCP和没有MCP的这个区别:1)没有这个MCP协议的时候,不同的这个大模型使用我们的不同的工具调用的时候这个标准可能是有所区别的 就是生效的;4.MCP本质通过上面的过程,我们可以发现,这个MCP其实没啥神秘的,就是我们的客户端调用MCP(nodejs程序,或者是python之类的程序),这个调用的程序执行操作,返回了一些我们想要的结果
随着 MCP 越来越受欢迎,Go MCP 库应运而生。本文将介绍如何在 Go 语言里面构建一个 MCP 客户端。 mcp-go要构建 MCP 客户端和服务器,我们需要使用 mcp-go 库。 mcp-go 是 Go 语言实现的 Model Context Protocol(MCP)库,通过这个库可以实现 LLM 应用与外部数据源和工具之间的无缝集成。 主要特点快速:高级接口意味着更少的代码和更快的开发速度简单:使用极少的样板代码构建 MCP 服务器完整:MCP Go 旨在提供 MCP 核心规范的完整实现安装 MCP 库在 Go 项目根目录下,执行以下命令 :go get github.com/mark3labs/mcp-go构建 MCP 客户端接下来,我们使用 mcp-go 提供的 client 模块,构建一个通过 stdio 方式连接到打包好的 MCP
先学习 MCP 的几种使用方式,然后基于 Spring AI 框架实战开发 MCP 客户端与服务端,帮你掌握 MCP 的架构原理和最佳实践。 具体内容包括: MCP 必知必会 MCP 的 3 种使用方式 Spring AI MCP 开发模式 Spring AI MCP 开发实战 - 图片搜索 MCP MCP 开发最佳实践 MCP 部署方案 MCP 如图: MCP 核心概念 很多同学以为 MCP 协议就只能提供工具给别人调用,但实际上,MCP 协议的本领可大着呢! 按照官方的说法,总共有 6 大核心概念。 二、使用 MCP 本节我们将实战 3 种使用 MCP 的方式: 云平台使用 MCP 软件客户端使用 MCP 程序中使用 MCP 无论是哪种使用方式,原理都是类似的,而且有 2 种可选的使用模式:本地下载 也就是说,开发者可以直接将之前开发的工具转换为 MCP 服务,极大提高了代码复用性: 四、MCP 开发实战 - 图片搜索服务 下面我们将开发一个网络图片搜索 MCP 服务,带大家快速掌握 MCP 开发