Skip to main content

MCP (Model Context Protocol) Guide

Что такое MCP?

Model Context Protocol (MCP) — это открытый протокол для подключения AI-моделей к внешним данным и инструментам. MCP позволяет создавать серверы, которые предоставляют инструменты (tools) для AI-моделей, расширяя их возможности.

Основные концепции:

  • MCP Server — сервер, который предоставляет инструменты и данные
  • MCP Client — клиент, который подключается к серверам и использует их инструменты
  • Tools — функции, которые может вызывать AI-модель (например, поиск в интернете, работа с файлами, API вызовы)

Как работает MCP?

  1. Сервер регистрирует инструменты и запускается
  2. Клиент подключается к серверу и получает список доступных инструментов
  3. AI-модель использует инструменты через клиента для выполнения задач
  4. Результаты возвращаются модели для дальнейшей обработки

Архитектура проекта

MCP_guide/
├── mcp_server.py      # MCP сервер с инструментами
├── main.py           # Клиент и агент
├── model.py          # Модель Groq
├── settings.py       # Настройки
├── requirements.txt  # Зависимости
└── README.md        # Этот файл

Установка и запуск

1. Установка зависимостей

pip install -r requirements.txt

2. Настройка переменных окружения

Создайте файл .env в корне проекта:

GROQ_API=your_groq_api_key_here
MODEL_NAME=llama3-8b-8192
MCP_SERVER_URL=http://127.0.0.1:8000
TAVILY_API=your_tavily_api_key_here

3. Получение API ключей

  • Groq API: Зарегистрируйтесь на groq.com
  • Tavily API: Зарегистрируйтесь на tavily.com

4. Запуск проекта

Для начала запускаем сервер mcp_server.py

python mcp_server.py 

Либо

fastmcp run mcp_server.py

Затем сам код

python main.py

Доступные инструменты

В данном проекте реализованы следующие инструменты:

1. tavily_search

  • Описание: Поиск информации в интернете
  • Параметры: query (строка)
  • Пример: Поиск новостей, информации о технологиях

2. add

  • Описание: Сложение двух чисел
  • Параметры: a (int), b (int)
  • Пример: add(5, 3)8

3. reverse

  • Описание: Переворачивание текста
  • Параметры: text (строка)
  • Пример: reverse("hello")"olleh"

4. greet

  • Описание: Создание приветствия
  • Параметры: name (строка)
  • Пример: greet("Анна")"Привет, Анна!"

Транспорты MCP

stdio (рекомендуется)

  • Простой и надежный
  • Работает через стандартный ввод/вывод
  • Подходит для локальной разработки

streamable-http

  • Работает через HTTP с Server-Sent Events
  • Требует правильных заголовков
  • Подходит для веб-приложений

Примеры использования

Базовый пример

import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient

async def main():
    # Подключение к MCP серверу
    client = MultiServerMCPClient({
        "demo": {
            "command": "python",
            "args": ["mcp_server.py"],
            "transport": "stdio",
        }
    })
    
    # Получение инструментов
    tools = await client.get_tools()
    print(f"Доступно инструментов: {len(tools)}")

asyncio.run(main())

Использование с LangGraph

from langgraph.prebuilt import create_react_agent

# Создание агента с MCP инструментами
agent = create_react_agent(
    tools=tools,
    model=llm
)

# Вызов агента
result = agent.invoke({
    "messages": [{"role": "user", "content": "Сложи 5 и 3"}]
})

Устранение неполадок

Ошибка "Not Acceptable: Client must accept text/event-stream"

  • Причина: Неправильная конфигурация HTTP транспорта
  • Решение: Используйте stdio транспорт или добавьте правильные заголовки

Ошибка "Expected dict, got string"

  • Причина: Неправильный формат входных данных для агента
  • Решение: Передавайте данные в формате {"messages": [...]}

Ошибка подключения к серверу

  • Причина: Сервер не запущен или неправильный URL
  • Решение: Убедитесь, что сервер запущен и URL корректный

Расширение функциональности

Добавление нового инструмента

  1. Добавьте функцию в mcp_server.py:
@mcp.tool()
def multiply(a: int, b: int) -> int:
    """Умножить два числа."""
    return a * b
  1. Перезапустите сервер

Подключение к внешним API

@mcp.tool()
def weather(city: str) -> str:
    """Получить погоду для города."""
    # Ваш код для API вызова
    return f"Погода в {city}: солнечно"

Полезные ссылки

Лицензия

MIT License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_switchblxdee_mcp_guide-0.1.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_switchblxdee_mcp_guide-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_switchblxdee_mcp_guide-0.1.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_switchblxdee_mcp_guide-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5f17230f7db062e6ff5c533691154b4e43e44ba0644ce9bc0ca5bbf3aad89a04
MD5 74d9d0fa63a41eae1cdb040da60a9043
BLAKE2b-256 811d1df348c21aafd6356bf22c655b1a3d6800930a66b165d3a79a57cabdfeab

See more details on using hashes here.

File details

Details for the file iflow_mcp_switchblxdee_mcp_guide-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_switchblxdee_mcp_guide-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_switchblxdee_mcp_guide-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 232f7e6103b43de9e1bf79a0f6d32cd893778ddcf88c552ba65ed7e223c6acdf
MD5 9510e1d458460ca470743fef55acfd85
BLAKE2b-256 5fed5db5c93d551cf9f6ed0b211424cfaac1fc53a2d393b63281959aa5ac891d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page