📘 Розв’язок завдання: Розширення вашого 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. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.