MCP服务器示例

这是一个用Go语言实现的Model Context Protocol (MCP)服务器示例,展示了如何构建一个简单的MCP服务器,包含自定义工具和实时通信功能。

  • by carlossantin
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 carlossantin/mcp-server-go

使用说明

MCP服务器Go示例

这是用Go编写的模型上下文协议(MCP)服务器的示例实现。这个项目演示了如何使用自定义工具构建一个简单的MCP服务器。

⚠️ 重要免责声明

这只是一个示范项目! 此服务器提供的温度读数为 不是真的 并且纯粹是出于示例目的而虚构的。请勿将其用于实际天气信息或任何生产用例。

关于本项目

这个MCP服务器提供了一个“疯狂温度”工具,可以返回巴西各个城市的幽默、虚构的温度读数。这些回复是用巴西葡萄牙语方言写的,旨在展示MCP服务器的功能,而不是提供真实的天气数据。

特性

  • MCP服务器:使用 mcp-go 图书馆
  • 自定义工具:使用巴西幽默的温度工具
  • SSE服务器:为实时通信提供服务器发送事件端点
  • 恢复中间件:包括错误恢复机制

项目结构

.
├── go.mod              # Go module dependencies
├── go.sum              # Go module checksums
├── LICENSE             # Project license
├── main.go             # Main server entry point
├── tools/
│   └── temperature.go  # Temperature tool implementation
└── README.md           # This file

依赖项

  • 转到1.24.1 或以后
  • mcp走:Go的MCP(模型上下文协议)库

安装

  1. 克隆存储库:

    git clone https://github.com/carlossantin/mcp-server-go.git
    cd mcp-server-go
    
  2. 安装依赖项:

    go mod tidy
    

用法

运行服务器

启动MCP服务器:

go run main.go

服务器将在端口8080上启动,具有以下端点:

  • SSE 终端: http://localhost:8080/mcp/events
  • 消息端点: http://localhost:8080/mcp/message

可用工具

crazy_temperature

返回巴西城市的虚构温度读数。

参数:

  • city (必填):城市名称

支持城市:

  • 阿莱格里港 / POA
  • 贝洛奥里森特 / 波斯尼亚
  • 圣保罗/桑帕
  • 里约热内卢/里约热内卢/RJ
  • 任何其他城市(一般回应)

示例用法:

{
  "method": "tools/call",
  "params": {
    "name": "crazy_temperature",
    "arguments": {
      "city": "Porto Alegre"
    }
  }
}

发展

建筑

go build -o mcp-server-go

运行测试

go test ./...

MCP集成

此服务器可以与任何兼容MCP的客户端集成。该服务器实现了模型上下文协议规范,并提供了AI助手和其他MCP客户端可以发现和使用的工具。

许可证

请参阅 许可证 文件以获取详细信息。

贡献

这是一个示例项目。您可以根据自己的学习目的对其进行分叉和修改。

致谢

  • 内置于 mcp走
  • 使用模型上下文协议规范

记住:这只是一个示范项目。温度数据完全是虚构的,不应用于任何现实世界的应用!