📘 Soluzione dell’Assegnazione: Estendere il tuo Server MCP del Calcolatore con uno Strumento per la Radice Quadrata
In questa assegnazione, hai migliorato il tuo server MCP del calcolatore aggiungendo un nuovo strumento che calcola la radice quadrata di un numero. Questa aggiunta permette al tuo agente AI di gestire query matematiche più avanzate, come "Qual è la radice quadrata di 16?" o "Calcola √49," utilizzando comandi in linguaggio naturale.
Per aggiungere questa funzionalità, hai definito una nuova funzione strumento nel file server.py. Ecco l’implementazione:
"""
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)- Importare il modulo
math: Per eseguire operazioni matematiche oltre l’aritmetica di base, Python offre il modulo integratomath. Questo modulo include diverse funzioni e costanti matematiche. Importandolo conimport math, puoi usare funzioni comemath.sqrt(), che calcola la radice quadrata di un numero. - Definizione della funzione: Il decoratore
@server.tool()registra la funzionesqrtcome uno strumento accessibile dal tuo agente AI. - Parametro di input: La funzione accetta un singolo argomento
adi tipofloat. - Gestione degli errori: Se
aè negativo, la funzione solleva unValueErrorper evitare di calcolare la radice quadrata di un numero negativo, operazione non supportata damath.sqrt(). - Valore di ritorno: Per input non negativi, la funzione restituisce la radice quadrata di
ausando il metodo integratomath.sqrt()di Python.
Dopo aver aggiunto il nuovo strumento sqrt, è fondamentale riavviare il server MCP per assicurarti che l’agente riconosca e possa utilizzare la nuova funzionalità.
Ecco alcuni comandi in linguaggio naturale che puoi usare per testare la funzionalità della radice quadrata:
- "Qual è la radice quadrata di 25?"
- "Calcola la radice quadrata di 81."
- "Trova la radice quadrata di 0."
- "Qual è la radice quadrata di 2.25?"
Questi comandi dovrebbero far sì che l’agente invochi lo strumento sqrt e restituisca i risultati corretti.
Completando questa assegnazione, hai:
- Esteso il tuo server MCP del calcolatore con un nuovo strumento
sqrt. - Permesso al tuo agente AI di gestire calcoli di radice quadrata tramite comandi in linguaggio naturale.
- Messo in pratica l’aggiunta di nuovi strumenti e il riavvio del server per integrare funzionalità aggiuntive.
Sentiti libero di sperimentare ulteriormente aggiungendo altri strumenti matematici, come l’esponenziazione o le funzioni logaritmiche, per continuare a potenziare le capacità del tuo agente!
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Pur impegnandoci per garantire accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.