MCP服务器工具包

一个用于构建Model Context Protocol (MCP)服务器的Go语言工具包,提供可重用组件和示例工具,支持计算器工具、健康检查端点和结构化日志记录等功能。

  • by muzfr7
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 muzfr7/mcp-toolkit

使用说明

MCP工具包

在Go中构建模型上下文协议(MCP)服务器的样板,使用 官方Go SDK 对于MCP。该项目为使用可重用组件和示例工具创建MCP实现提供了基础。

🚧 进行中 -该项目正在积极开发和改进中。

特性

  • 计算器工具:支持加、减、乘、除运算
  • 健康检查端点:Kubernetes就绪活性和就绪性探测
  • 结构化JSON日志记录:包含服务器名称和环境元数据
  • 环境配置:可通过环境变量进行配置
  • 清洁建筑:遵循Go最佳实践

快速开始

1.设置环境

复制环境模板并自定义:

cp .env.dist .env
# Edit .env with your preferred values

2.运行服务器

# Using default configuration
go run ./cmd/mcp-server

# Or with custom environment variables
SERVER_NAME=mcp-server PORT=9090 go run ./cmd/mcp-server

3.为生产而建造

# Build the server
go build -o bin/mcp-server ./cmd/mcp-server
./bin/mcp-server

用法

MCP服务器

运行后,服务器将在端口8080(或您配置的端口)可用:

  • MCP端点: http://localhost:8080/sse
  • 活体检测: http://localhost:8080/live
  • 准备就绪检查: http://localhost:8080/ready

计算器工具

计算器工具接受:

{
  "x": 10.5,
  "y": 3.2,
  "operation": "add"
}

支持的操作: add, subtract, multiply, divide

健康检查

服务器提供与Kubernetes兼容的健康检查端点:

存活探针

  • 端点: /live
  • 目的:检查应用程序是否正在运行并且没有死锁
  • 响应:带有状态、时间戳、服务名称和版本的JSON

就绪探针

  • 端点: /ready
  • 目的:检查应用程序是否已准备好为流量提供服务
  • 响应:带有状态、时间戳、服务名称和版本的JSON

示例响应

{
  "status": "healthy",
  "timestamp": "2025-10-27T05:57:11.899468+01:00",
  "service": "mcp-server",
  "version": "0.0.1"
}

发展

添加新工具

  1. 在下创建新包 internal/tools/
  2. 实现工具接口和处理程序
  3. 在中注册该工具 internal/mcpserver/server.go

许可证

该项目在MIT许可证下分发。看 LICENSE.md 了解更多信息。