关于MCP(模型上下文协议,Model Context Protocol)服务器传输方式中的STDIO👉一开始对其“只能用于本地进程间通信”的定义抱有疑问。
因为实际应用场景中,我们常见的12306、飞常准等等很多Host MCP Server都支持以STDIO方式接入,但是它们的服务器代码也不在本地啊?
豆包在这里解释的特别清楚👇
上面所提到的MCP Server连接确实需要联网,但STDIO也确实不具备网络传输能力。因为它的配置是如下的“组合模式”
【MCP客户端】--stdio--【本地代理进程】--HTTP/HTTPS--【MCP远程服务器】
也就是说,STDIO的传输作用于客户端与本地代理进程的本地管道,相当于通过本地代理进程与远程服务器间接对接了远程MCP服务。
💡通俗的打个比方就很容易理解了:你和快递。
你在网上买了件快递,快递走了x通长途跋涉从远方仓库送到了——快递柜,而不是你的手里……
于是你下班后赶忙跑去快递柜打开柜门,终于拿到了你的快递。
【你】--柜门交互--【快递柜】--物流网络--【远方仓库】
- 【你】->【MCP客户端】
- 【快递柜】->【本地代理进程】
- 【本地代理进程】->【MCP远程服务器】
🧐这下理解多了。
那么其实“本地”的概念指的是通信范围,而非服务位置。就像是通过了本地代理进程中转,STDIO可以间接对接远程服务,但其实STDIO本身的通信范围始终是本地。
