发现工具与资源
以编程方式列出服务器提供的内容。
发现工具与资源 是 CoddyKit 上的免费 MCP Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 MCP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 MCP Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
Ask Before You Act
A client should never assume what a server can do. Once connected, it discovers the available capabilities by asking the server to list them.
List the Tools
Call session.list_tools() and the server returns every tool it exposes, ready for your code to inspect.
result = await session.list_tools()Read Each Tool
The result carries a tools list. Each entry has a name and a human-readable description so you know what it does.
for tool in result.tools:
print(tool.name, tool.description)Inspect the Input Shape
Every tool also exposes an inputSchema, a JSON Schema describing the arguments it accepts. This is how you learn what to send.
print(result.tools[0].inputSchema)List the Resources
Servers can offer read-only data too. Call session.list_resources() to fetch the set of resources you may read.
res = await session.list_resources()Resources Have URIs
Each resource is addressed by a uri, like a file path or a custom scheme. You use that uri later to fetch its contents.
for r in res.resources:
print(r.uri, r.name)List the Prompts
The third primitive is prompts. session.list_prompts() reveals reusable instruction templates the server publishes.
prompts = await session.list_prompts()Discovery Is Capability-Gated
You only get what the server advertised at the handshake. If it declared no resources, listing them returns an empty set.
Build a Live Menu
Discovery means a client adapts at runtime. Plug in a new server and its tools simply appear, with no client code changes needed.
Feed It to a Model
Discovered tool names, descriptions, and schemas are exactly what a model needs to decide which tool fits a request later on.
Cache or Re-List
Tool lists can change, so a careful client may re-list after an update notification rather than trusting a stale snapshot.
Quick Check
Which session call returns the server tool list with their schemas?
Recap: Knowing the Menu
You learned to discover a server at runtime: list its tools, resources, and prompts, then read each name, description, and schema before acting.
常见问题解答
「发现工具与资源」课时是免费的吗?
是的 — 「发现工具与资源」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 MCP Academy 课程的其余内容,请升级到 CoddyKit PRO。 MCP Academy 课程共包含 4 节课。
「发现工具与资源」这节课中我会学到什么?
以编程方式列出服务器提供的内容。 你通过在浏览器中直接运行的动手代码来练习 MCP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 MCP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 MCP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「发现工具与资源」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 MCP Academy 课中编写并运行代码吗?
能。每节 MCP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 打开客户端会话
- 发现工具与资源
- 从代码调用工具
- 通过 LLM 路由工具调用