构建

连上去 — 传输不是配置,是一条要执行的命令

作者: makemind · 2026年3月20日

服务端课程六篇把服务端立了起来。这一轨是另一侧——接上去的那段代码。

连接的代码,全部

Future<Client> connect(String step) async {
  final r = await McpClient.createAndConnect(
    config: McpClient.simpleConfig(
        name: 'Course Client', version: '1.0.0', enableDebugLogging: false),
    transportConfig: TransportConfig.stdio(
      command: 'dart',
      arguments: ['run', 'bin/$step.dart'],
      workingDirectory: '../course-server',
    ),
  );
  return r.get();
}

config 说我们是谁,transportConfig 说怎么够过去。

传输就是命令

TransportConfig.stdio 的参数。没有主机,也没有端口。只有 commandarguments

客户端自己把服务端进程拉起来,再用那个进程的 stdin/stdout 说话。没有要配置的套接字,也没有要等它起来的服务。

看着不起眼,后面才值钱。因为换传输这件事,缩成了 启动哪个程序。

// 接串口设备
command: '../serial_bridge/serial_bridge',
arguments: ['/dev/cu.usbmodem1234', '115200'],

// 接网络设备
command: '../tcp_bridge/tcp_bridge',
arguments: ['mcp-esp32.local', '6270'],

客户端代码一个字都不用改。真板那篇之所以能用同一份代码接上 STM32 和 ESP32,靠的就是这个结构。

此内容需要开发者或更高等级

登录并升级您的方案即可继续阅读。

查看方案
Twitter