MCP Server自动发现新标准:/.well-known/mcp.json深度解读
MCP Server 自动发现机制详解
MCP 生态最近迎来一项实质性推进:/.well-known/mcp.json 自动发现机制已正式落地。客户端不再需要手动告知 MCP 服务的位置,而是能自主探测。这套标准化路径约定,类似于互联网上早已成熟的 robots.txt,为服务发现提供了统一入口。
/.well-known/mcp.json 是什么?
简单来说,这是一个固定、约定俗成的网络路径。任何 MCP 客户端只要访问服务端域名下的 /.well-known/mcp.json,即可获取一个 JSON 文件,其中明确列出了该服务端提供的 MCP 工具及其连接方式。
举例而言,访问 aiphotoshop.mynatapp.cc/.well-known/mcp.json,会看到类似以下配置:
{"mcpServers": {"shotapi": {"type": "streamable-http","url": "https://aiphotoshop.mynatapp.cc/mcp","description": "Screenshot & HTML render MCP server"}}}
这份 JSON 告知客户端:存在一个名为 shotapi 的 MCP 服务,类型为 streamable-http,地址为 https://aiphotoshop.mynatapp.cc/mcp,主要功能是截屏与 HTML 渲染。
streamable-http vs stdio
这里需要厘清两个概念:streamable-http 与 stdio。
传统的 stdio 方式要求本地安装各类依赖库,配置步骤相对冗长。而 streamable-http 的核心优势在于“一行配置搞定”。以上述示例为例,客户端只需执行一条命令:
claude mcp add --transport streamable-http shotapi https://aiphotoshop.mynatapp.cc/mcp
客户端即可通过 HTTP 协议与服务端通信,彻底摆脱本地环境依赖。
技术原理
streamable-http 的传输流程并不复杂,核心分三步:
- 客户端向 MCP 的 endpoint 发起一个
POST请求。 - 服务端以
JSON-RPC格式返回响应数据。 - 整个过程支持长连接与流式传输,适用于实时性要求较高的场景。
这套机制确保客户端与服务端之间能进行结构化、双向的通信,而非简单的“请求-响应”模式。
实际应用
以 ShotAPI 服务为例,当前暴露了三个 MCP 工具:
- screenshot_one_liner:直接截取指定 URL 的页面截图。
- screenshot:通过 CSS 选择器精准定位页面元素并截图。
- render:将一段 HTML 代码渲染成图片。
这三项工具覆盖了从整页截图、局部元素提取到自定义渲染的典型需求。其配置依然极简,核心代码如下:
{"mcpServers": {"shotapi": {"type": "streamable-http","url": "https://aiphotoshop.mynatapp.cc/mcp"}}}
更多技术细节与接口文档,可参考官方地址:aiphotoshop.mynatapp.cc/docs。
