使用说明
Go中的MCP服务器
Go 1.22.1中的模型上下文协议(MCP)服务器实现。
特性
1.回声工具-文本转换
调用内置的回显工具来转换短信:
参数:
message(必填):要转换的文本(1-1000个字符)prefix(可选):在消息前添加文本(最多100个字符)suffix(可选):消息后添加的文本(最多100个字符)uppercase(可选):将结果转换为大写(布尔值)
例子: 将前缀为“>>>”和后缀为“<<<”的“hello”转换为大写返回值“>>>hello<<<
2.注册新工具
通过实现注册自定义工具 ToolFactory 接口:
所需方法:
GetName():工具标识符GetDescription():工具说明GetVersion():工具版本GetCapabilities():工具功能(最多20个)Create(ctx, config):创建工具实例Validate(config):验证工具配置
您的工具必须执行 mcp.Tool 与Name、Description、Parameters和Handler方法的接口。
3.注册新资源
通过实现来注册自定义资源 ResourceFactory 接口:
支持的URI方案: file://,config://,api://,custom://,http://,https://,https://
所需方法:
GetURI():资源URIGetName():资源名称GetDescription():资源描述GetMimeType():内容MIME类型Create(ctx, config):创建资源实例Validate(config):验证资源配置
资源支持缓存、访问控制和生命周期管理。
4.发现端点
在不访问源代码的情况下查询可用的工具和资源:
GET/工具 -列出所有已注册的工具:
curl http://localhost:3000/tools
GET/tools/{name} -获取详细的工具信息:
curl http://localhost:3000/tools/echo
GET/资源 -列出所有已注册的资源:
curl http://localhost:3000/resources
快速开始
先决条件
- 转到1.22.1或更高版本
- Git
安装
-
克隆存储库:
git clone <repository-url> cd mcp-server -
构建服务器:
go build -o mcp-server ./cmd/mcp-server -
运行服务器:
./mcp-server
配置
可以使用环境变量配置服务器:
MCP_SERVER_HOST:服务器主机(默认:“localhost”)MCP_SERVER_PORT:服务器端口(默认值:3000)MCP_LOG_LEVEL:日志级别(默认值:“info”)MCP_LOG_FORMAT:日志格式-“json”或“text”(默认:“json”)MCP_SERVICE_NAME:日志记录服务名称(默认:“mcp-server”)MCP_VERSION:日志记录版本(默认:“dev”)
例子:
export MCP_SERVER_HOST=0.0.0.0
export MCP_SERVER_PORT=8080
export MCP_LOG_LEVEL=debug
./mcp-server
发展
建筑
# Build for development
go build -o mcp-server ./cmd/mcp-server
# Build for production
go build -ldflags="-w -s" -o mcp-server ./cmd/mcp-server
测试
# Run tests
go test ./...
# Run tests with coverage
go test -cover ./...
代码质量
# Format code
go fmt ./...
# Vet code
go vet ./...
项目结构
此项目遵循标准Go项目布局:
cmd/:主要应用internal/:私有应用程序代码pkg/:可供外部应用程序使用的库代码configs/:配置文件deployments/:部署配置scripts/:构建和部署脚本tests/:集成测试docs/:文件specs/:实施规范
贡献
请阅读 specs/ 在进行更改之前,请先访问目录。每个更改都应该有一个相应的规范,概述实现细节。
许可证
待定
