xiaozhi-server-go项目中的MCP协议支持解析
xiaozhi-server-go 项目地址: https://gitcode.com/gh_mirrors/xi/xiaozhi-server-go
背景介绍
xiaozhi-server-go是一个基于Go语言实现的智能设备服务端项目,该项目支持与各类智能终端设备进行通信和控制。其中,MCP(Model Context Protocol)协议作为一种设备控制协议,在项目中扮演着重要角色。
MCP协议支持现状
该项目目前已经实现了对MCP协议的支持,但需要满足以下条件才能正常工作:
-
客户端支持:连接的客户端设备必须在hello协议中明确声明支持MCP功能,具体表现为features字段中包含
mcp:true
的标识。 -
服务端配置:服务端需要正确配置才能启用MCP功能,最新发布的v0.0.2版本已经内置了相关支持。
服务端MCP配置详解
服务端可以通过创建.mcp_server_settings.json
配置文件来启用MCP功能。该文件应放置在项目根目录下,支持配置多种类型的MCP服务器:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:/workXF/github/mcptest"
]
},
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"],
"des": "run 'npx playwright install' first"
},
"windows-cli": {
"command": "npx",
"args": ["-y", "@simonb97/server-win-cli"]
}
}
}
开发者也可以配置自定义的MCP服务器,例如对接Zapier平台:
{
"mcpServers": {
"zapier": {
"command": "mcp-proxy",
"args": [
"https://actions.zapier.com/mcp/****/sse"
]
}
}
}
功能验证与调试
当MCP功能正常工作时,服务端会输出以下日志信息:
- 客户端MCP服务器信息,包括名称和版本号
- 客户端支持的工具数量
- 每个已注册工具的详细描述
典型的日志输出如下:
客户端MCP服务器信息: name=bread-compact-wifi, version=1.6.3
客户端设备支持的工具数量: 4
Registered tool: [self.get_device_status] 提供设备的实时信息...
Registered tool: [self.audio_speaker.set_volume] 设置音频扬声器音量...
Registered tool: [self.screen.set_brightness] 设置屏幕亮度...
Registered tool: [self.screen.set_theme] 设置屏幕主题...
常见问题排查
如果MCP功能无法正常工作,建议按照以下步骤排查:
- 确认客户端确实支持MCP协议
- 检查服务端版本是否为最新
- 查看服务端日志是否有MCP相关的输出
- 验证配置文件格式是否正确
- 确保网络连接正常,没有网络限制
总结
xiaozhi-server-go项目已经实现了对MCP协议的完整支持,开发者可以通过配置文件灵活地集成各种MCP服务。在使用过程中,需要注意客户端和服务端的版本兼容性,并正确配置相关参数。通过MCP协议,可以实现对智能设备更精细化的控制和状态监控。
xiaozhi-server-go 项目地址: https://gitcode.com/gh_mirrors/xi/xiaozhi-server-go
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考