从头到尾构建计算器工具
构建一个小巧但完整的算术工具。
从头到尾构建计算器工具 是 CoddyKit 上的免费 MCP Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 MCP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 MCP Academy 课程共包含 4 节课。
构建一个完整的 Tool
让我们把所有内容组合起来,构建一个小型的计算器 tool:从清晰的名称开始,到生成模型可以信任的整洁结果。🧮
从服务器开始
首先创建一个 FastMCP 实例来保存 tool。为它指定一个名称,以便客户端识别您的服务器。
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("calculator")命名操作
选择一个准确的名称。我们要将两个数字相加,因此函数 add 对您和模型来说都很清晰。
声明带类型的参数
使用类型提示,让模型发送数字而不是文本。我们接收两个浮点数,因此既支持小数,也支持整数值。
def add(a: float, b: float) -> float:
...编写文档字符串
文档字符串会变成描述,因此请明确说明 tool 的作用以及它返回的内容。
def add(a: float, b: float) -> float:
"""Add two numbers and return the sum."""将其装饰为 Tool
添加 tool 装饰器,这样 FastMCP 就会注册该函数,并向任何已连接的客户端公布它。
@mcp.tool()
def add(a: float, b: float) -> float:
"""Add two numbers."""
return a + b返回清晰的结果
返回总和当然可行,但带标签的结果对模型和看到答案的用户来说都更容易理解。
return a + b添加第二个 Tool
一个 tool 负责一项工作,因此请创建一个单独的 divide tool,而不是把多种模式塞进 add。这样每个 tool 都易于调用。
@mcp.tool()
def divide(a: float, b: float) -> float:
return a / b防范错误输入
除零会导致程序崩溃,因此请先进行检查,并返回一条模型可以读取和解释的清晰错误消息。
if b == 0:
return "Error: cannot divide by zero."运行服务器
最后调用 run,这样启动该文件时服务器就会启动,并通过标准输入输出等待客户端连接。
if __name__ == "__main__":
mcp.run()测试整个工具
启动它,让一个客户端列出您的工具。看到 add 和 divide 及其描述,就说明连接配置正确。
快速检查
为什么要为 divide 单独创建一个工具,而不是给 add 添加模式标志?
回顾
您构建了一个完整的计算器工具:名称清晰、参数有类型、文档字符串提供描述、错误得到防护,并且返回模型可以信任的整洁结果。✅
常见问题解答
「从头到尾构建计算器工具」课时是免费的吗?
是的 — 「从头到尾构建计算器工具」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 MCP Academy 课程的其余内容,请升级到 CoddyKit PRO。 MCP Academy 课程共包含 4 节课。
「从头到尾构建计算器工具」这节课中我会学到什么?
构建一个小巧但完整的算术工具。 你通过在浏览器中直接运行的动手代码来练习 MCP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 MCP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 MCP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「从头到尾构建计算器工具」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 MCP Academy 课中编写并运行代码吗?
能。每节 MCP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 为工具命名并写好描述
- 使用类型提示声明参数
- 返回有用的结果
- 从头到尾构建计算器工具