xiaozhi-server-go项目中的MCP协议支持解析

xiaozhi-server-go项目中的MCP协议支持解析

背景介绍

xiaozhi-server-go是一个基于Go语言实现的智能设备服务端项目,该项目支持与各类智能终端设备进行通信和控制。其中,MCP(Model Context Protocol)协议作为一种设备控制协议,在项目中扮演着重要角色。

MCP协议支持现状

该项目目前已经实现了对MCP协议的支持,但需要满足以下条件才能正常工作:

  1. 客户端支持:连接的客户端设备必须在hello协议中明确声明支持MCP功能,具体表现为features字段中包含mcp:true的标识。

  2. 服务端配置:服务端需要正确配置才能启用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功能正常工作时,服务端会输出以下日志信息:

  1. 客户端MCP服务器信息,包括名称和版本号
  2. 客户端支持的工具数量
  3. 每个已注册工具的详细描述

典型的日志输出如下:

客户端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功能无法正常工作,建议按照以下步骤排查:

  1. 确认客户端确实支持MCP协议
  2. 检查服务端版本是否为最新
  3. 查看服务端日志是否有MCP相关的输出
  4. 验证配置文件格式是否正确
  5. 确保网络连接正常,没有网络限制

总结

xiaozhi-server-go项目已经实现了对MCP协议的完整支持,开发者可以通过配置文件灵活地集成各种MCP服务。在使用过程中,需要注意客户端和服务端的版本兼容性,并正确配置相关参数。通过MCP协议,可以实现对智能设备更精细化的控制和状态监控。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值