Skip to content

Latest commit

 

History

History
102 lines (79 loc) · 6.93 KB

File metadata and controls

102 lines (79 loc) · 6.93 KB

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