Этот репозиторий содержит практическую реализацию по материалам статьи "MCP своими руками".
Model Context Protocol (MCP) - это протокол, разработанный Anthropic, который позволяет моделям искусственного интеллекта взаимодействовать с внешними сервисами и инструментами. В данном репозитории представлена имитация подобного протокола, демонстрирующая основные принципы работы.
server.py- MCP сервер, предоставляющий API для доступа к инструментамagent.py- клиент, использующий сервер для получения данныхagent_openai.py- альтернативная реализация с использованием библиотеки OpenAI Agents
# Установка uv (если еще не установлен) curl -LsSf https://astral.sh/uv/install.sh | sh # Создание виртуального окружения uv venv # Активация виртуального окружения source .venv/bin/activate # для Linux/Mac # или .venv\Scripts\activate # для Windows # Установка зависимостей из pyproject.toml uv pip sync
Для работы с локальными моделями необходимо установить Ollama:
# Установка Ollama (Linux/Mac) curl -fsSL https://ollama.com/install.sh | sh # Запуск сервера Ollama ollama serve
Для Windows скачайте установщик с официального сайта.
После установки Ollama необходимо скачать модель qwen2.5:14b:
# Скачивание модели qwen2.5:14b (в отдельном терминале)
ollama pull qwen2.5:14bВы можете проверить загруженные модели с помощью команды:
ollama list
# Запуск MCP сервера на порту 8000
uv run python server.pyПосле запуска сервер будет доступен по адресу http://localhost:8000, документация API доступна по адресу http://localhost:8000/docs.
# Запуск стандартного клиента
uv run python agent.py# Запуск клиента с использованием библиотеки OpenAI Agents
uv run python openai-agent.py# Получение списка доступных инструментов curl http://localhost:8000/tools # Получение цены акции Сбербанка curl "http://localhost:8000/get_stock_price?ticker=SBER" # Получение цены акции Газпрома curl "http://localhost:8000/get_stock_price?ticker=GAZP"
После запуска клиента agent.py или openai-agent.py вы можете задать следующие вопросы:
- "Какая сейчас цена акций Сбербанка?"
- "Сколько стоят акции Газпрома на Московской бирже?"
- "Цена на акции Аэрофлота?"
- Python 3.12 или выше
- Доступ к интернету для получения данных с Московской биржи
- Запущенный сервер Ollama с поддерживаемыми моделями
- uv - быстрый менеджер пакетов для Python (https://github.com/astral-sh/uv)