Go MCP演示

一个演示如何在Go中使用MCP的示例项目,包括HTTP服务器、streamableHTTP通信以及与ollama的HTTP通信。

  • by FantasyRL
  • Go
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 FantasyRL/go-mcp-demo

使用说明

go-mcp-demo 可以翻译为“Go语言MCP(可能是指某种中间件或通信协议)演示项目”或“Go语言MCP示例”。具体翻译可能需要根据上下文来确定“MCP”在这里的确切含义

一个演示,学习如何在Go语言中使用MCP

项目结构

  • 直接将Hertz HTTP服务器用于主机接收外部请求
  • mcp-host与mcp-server通过(某种方式或连接)可流式传输的HTTP通信
  • mcp-host与ollama通过HTTP通信

快速入门

  • 复制 config.example.yaml 到;向;朝 config.yaml (config.stdio.yaml同理
  • Windows需要安装makefile相关工具

stdio(标准输入输出)

make stdio # windows需要修改config.stdio.yaml中的mcp.stdio.server_cmd 为./bin/mcp-server.exe

HTTP单点通信

  • 注册表提供程序为none
  • mcp.transport 为 http
  • `mcp.http.base_url` 是 `mcp_server` 的 URL

本地启动

make mcp_local
make host #在另一个终端运行

使用Docker启动(network=host模式)

make docker-run-mcp_local
make docker-run-host

基于Consul集群启动

本地启动

make env
make host
make mcp_local#在另一个终端运行
make mcp_remote#在另一个终端运行

Docker启动(network=host模式)

make env
make docker-run-host
make docker-run-mcp_local
make docker-run-mcp_remote

通过使用API管理平台(如apifox/postman等)导入swagger/openapi.yaml,配置环境为host url,访问接口进行对话

记忆临时通过map保存在内存中,重启主机后会丢失