📘 Решение задания: Расширение вашего калькулятора MCP сервера инструментом для вычисления квадратного корня
В этом задании вы расширили ваш калькулятор MCP сервер, добавив новый инструмент, который вычисляет квадратный корень числа. Это позволяет вашему AI-агенту обрабатывать более сложные математические запросы, такие как «Каков квадратный корень из 16?» или «Вычисли √49», используя естественные языковые команды.
Для добавления этой функции вы определили новую функцию-инструмент в файле server.py. Вот её реализация:
"""
Sample MCP Calculator Server implementation in Python.
This module demonstrates how to create a simple MCP server with calculator tools
that can perform basic arithmetic operations (add, subtract, multiply, divide).
"""
from mcp.server.fastmcp import FastMCP
import math
server = FastMCP("calculator")
@server.tool()
def add(a: float, b: float) -> float:
"""Add two numbers together and return the result."""
return a + b
@server.tool()
def subtract(a: float, b: float) -> float:
"""Subtract b from a and return the result."""
return a - b
@server.tool()
def multiply(a: float, b: float) -> float:
"""Multiply two numbers together and return the result."""
return a * b
@server.tool()
def divide(a: float, b: float) -> float:
"""
Divide a by b and return the result.
Raises:
ValueError: If b is zero
"""
if b == 0:
raise ValueError("Cannot divide by zero")
return a / b
@server.tool()
def sqrt(a: float) -> float:
"""
Return the square root of a.
Raises:
ValueError: If a is negative.
"""
if a < 0:
raise ValueError("Cannot compute the square root of a negative number.")
return math.sqrt(a)- Импорт модуля
math: Для выполнения математических операций, выходящих за рамки базовой арифметики, Python предоставляет встроенный модульmath. В этом модуле содержится множество математических функций и констант. Импортируя его с помощьюimport math, вы получаете доступ к функциям, таким какmath.sqrt(), которая вычисляет квадратный корень числа. - Определение функции: Декоратор
@server.tool()регистрирует функциюsqrtкак инструмент, доступный вашему AI-агенту. - Параметр функции: Функция принимает один аргумент
aтипаfloat. - Обработка ошибок: Если
aотрицательное, функция вызывает исключениеValueError, чтобы предотвратить вычисление квадратного корня из отрицательного числа, что не поддерживается функциейmath.sqrt(). - Возвращаемое значение: Для неотрицательных значений функция возвращает квадратный корень числа
a, используя встроенный методmath.sqrt().
После добавления нового инструмента sqrt важно перезапустить ваш MCP сервер, чтобы агент распознал и смог использовать новую функциональность.
Вот несколько примеров запросов на естественном языке, которые можно использовать для тестирования функции вычисления квадратного корня:
- «Каков квадратный корень из 25?»
- «Вычисли квадратный корень из 81.»
- «Найди квадратный корень из 0.»
- «Каков квадратный корень из 2.25?»
Эти запросы должны вызвать у агента использование инструмента sqrt и вернуть правильные результаты.
Выполнив это задание, вы:
- Расширили ваш калькулятор MCP сервер новым инструментом
sqrt. - Позволили вашему AI-агенту выполнять вычисления квадратного корня через естественные языковые запросы.
- Попрактиковались в добавлении новых инструментов и перезапуске сервера для интеграции дополнительных функций.
Не стесняйтесь экспериментировать дальше, добавляя другие математические инструменты, такие как возведение в степень или логарифмы, чтобы продолжать улучшать возможности вашего агента!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному переводу, выполненному человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.