Этот репозиторий содержит практическую реализацию по материалам статьи "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)