НачатьНачать бесплатно

Вызов инструментов сервера

Теперь давайте запустим вызовы инструментов на сервере из клиента! Снова будем использовать асинхронные операции — они гарантируют, что ничего не зависнет и не сломается в ожидании завершения других операций.

Это упражнение является частью курса

Введение в Model Context Protocol (MCP)

Посмотреть курс

Инструкции к упражнению

  • Вызовите инструмент с параметрами tool_name и arguments, указанными пользователем; убедитесь, что вызов приостанавливается и ожидает ответа сервера — используйте подходящее ключевое слово Python.
  • Извлеките и выведите текстовое содержимое ответа сервера.
  • Запустите инструмент "convert_currency" с набором допустимых параметров (можете использовать любые значения и валюты на ваш выбор).

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def call_mcp_tool(tool_name: str, arguments: dict) -> str:
    params = StdioServerParameters(
        command=sys.executable,
        args=["currency_server.py"],
    )

    async with stdio_client(params) as (reader, writer):
        async with ClientSession(reader, writer) as session:
            await session.initialize()

            # Call the currency conversion tool
            result = ____ ____(tool_name, arguments)

            # Extract and print the text content of the server response
            text_content = result.____[0].____

            print(f"Conversion Result: {text_content}")
            return text_content

# Run the "convert_currency" tool
asyncio.run(
    call_mcp_tool("convert_currency",
                  {"amount": 250.0, "from_currency": "USD", "to_currency": "EUR"})
)
Редактировать и запускать код