第一次有 AI 让我"review the tools list"的时候,我脑子里浮现的是一块仪表盘。其实它是一坨 JSON,而这恰恰是一个 MCP 服务器自我介绍的关键。学会读这种文件,你十秒钟就能看明白任何一个服务器能干嘛。下面带你把这份 JSON 真正看懂。
工具列表是什么
当客户端连上一个 MCP 服务器时,它会问"你能做什么?"服务器用一个 tools/list 响应来回答:一个工具定义的数组。每一项都给出工具名、用大白话描述它、并声明它接受什么参数。这份目录就是助手在决定要不要调用之前知道的一切。事实上,IPIPAI 的 /mcp-tools.json 文件(见 这里)就是这个目录的静态页面。
单个工具长什么样
列表里每个工具结构上都一样。有 name、description 和 inputSchema(输入格式)。先忽略那一堆括号,它读起来像份招聘启事:它叫什么、干什么、期望什么输入。一个查 IP 的示例条目长这样:
{
"name": "lookup_ip",
"description": "Get details about a public IP address.",
"inputSchema": {
"type": "object",
"properties": {
"ip": { "type": "string", "description": "The IP to look up." }
}
}
}
如果这个格式对你很陌生,它和整个协议用的是同一套语言,所以 JSON-RPC 2.0 指南 是帮你搞清这个响应在对话里位置的很好的温故。
值得读的三个字段
别全篇都扫。重点看三样。第一是 name,因为这就是助手必须调用时用的那个确切字符串。第二是 description,因为模型就是读它来判断这个工具合不合适。第三是 schema 里面的 properties,因为它告诉你哪些参数必填、哪些可选。熟手就是从这三样快速看出"这才是真正的规格"。
为什么描述这么重要
这里有个容易被忽略的细节。AI 不是靠魔法理解你的工具,它靠的是读描述和名字。如果你的描述写着"检查一个 IP 干不干净",那当用户正好问这个时,模型就会去调它。去读读 IPIPAI 的工具目录,你会发现每条描述都是用模型该读的方式写的。
它和工具调用怎么连起来
工具列表是菜单,工具调用是点单。助手读完列表后,选一个工具、按你的 schema 允许的范围填参数,客户端再发一个 tools/call。从菜单到点单的完整流程,这篇 LLM 怎么调用工具 的指南讲得很清楚。读列表是整个故事的第一步。
常见的读错方式
有几个坑反反复复出现。有人以为工具名必须等于某个 API 端点,其实往往不是。有人以为每个属性都必填,其实这儿有 required 显式标注,去看它就行。还有人以为描述越长越好,其实对模型来说,一条简短精确的描述胜过一堵字墙。在你搭自己的服务器之前先懂这些,能省很多事。要搭的话,这篇 入门搭建指南 里能看到同一个 schema 出现在真实代码中。
收个尾
MCP 工具列表就是一个整理得很齐的 JSON 目录,记录服务器能提供什么。读名字、描述和输入格式,你就知道任何助手都能调用什么。这是十秒钟的方向感,是解锁其它一切的前提。更多内容可以继续看 IPIPAI 的文章页。