simple_mcp
2 месяца назад
3 месяца назад
3 месяца назад
2 месяца назад
2 месяца назад
2 месяца назад
2 месяца назад
2 месяца назад
2 месяца назад
2 месяца назад
3 месяца назад
3 месяца назад
README.md
MCP File Server + AI Agent
Проект демонстрирует интеграцию Model Context Protocol (MCP) сервера с AI-агентом, работающим на базе GPT-4. Агент может автономно использовать инструменты файлового сервера для чтения и перечисления файлов.
📋 Описание
Проект реализует паттерн ReAct (Reasoning + Acting):
- AI Agent анализирует запросы пользователя
- MCP Client подключается к MCP серверу
- MCP File Server предоставляет инструменты для работы с файлами в изолированной директории
- OpenAI API используется для логики принятия решений
🏗️ Архитектура
┌─────────────┐
│ main.py │ (точка входа)
└──────┬──────┘
│
├─► MCPClient ─────► stdio процесс
│ │
│ └─► mcp_file_server.py
│
└─► AgentHost (ReAct цикл)
│
├─► OpenAI API (GPT-4)
│
└─► Использует MCP инструменты
📁 Структура проекта
.
├── agent_host.py # Агент с ReAct логикой
├── mcp_client.py # MCP клиент (подключение к серверу)
├── mcp_file_server.py # MCP сервер с инструментами
├── main.py # Точка входа приложения
├── pyproject.toml # Конфигурация проекта
├── demo_files/ # Рабочая директория для тестирования
│ ├── demo.py
│ └── demo.txt
└── README.md # Этот файл
🚀 Быстрый старт
Предварительные требования
- Python 3.12+
- OpenAI API ключ
Установка зависимостей
Конфигурация
Создайте файл в корне проекта:.env
Запуск
Ожидаемый результат:
--- Запускаем сервер: mcp_file_server.py ---
✅ Сервер подключен
Вопрос: Какие файлы лежат в рабочей папке? Если есть текстовые, прочитай любой из них.
--- Ответ ИИ ---
[Агент перечислит файлы и прочитает один из них]
--- Соединение закрыто ---
📚 Компоненты
1. mcp_file_server.py — MCP Сервер
Предоставляет два инструмента:
— возвращает список файлов вlist_files()demo_files/— читает содержимое файла (с проверкой безопасности)read_file(filename)
2. mcp_client.py — MCP Клиент
Управляет подключением к MCP серверу:
- Запускает сервер как подпроцесс (stdio)
- Инициализирует JSON-RPC сессию
- Предоставляет методы для вызова инструментов:
— подключение к серверуconnect()— получить доступные инструментыlist_tools()— вызвать инструментcall_tool(name, arguments)— корректное завершениеcleanup()
3. agent_host.py — AI Agent
Реализует ReAct цикл (Рассуждение + Действие):
Процесс:
- Получить список инструментов от сервера
- Отправить запрос пользователя в OpenAI с описанием инструментов
- Если LLM выбрал инструмент — вызвать его
- Добавить результат в контекст и повторить
- Когда LLM вернет финальный ответ — завершить
4. main.py — Точка входа
Демонстрационный скрипт, который:
- Инициализирует MCPClient
- Подключается к серверу
- Создает AgentHost
- Выполняет фиксированный запрос
🔒 Безопасность
- Изоляция файлов: Сервер работает только в директории demo_files/
- Проверка пути: Использется
для предотвращения path traversalos.path.join() - Обработка ошибок: Все исключения перехватываются и возвращаются как строки
🧪 Демо-файлы
В находятся примеры файлов для тестирования:demo_files/
— текстовый файлdemo.txt— Python скриптdemo.py
📖 Документация MCP
🛠️ Требования к окружению
Python: 3.12+
Dependencies:
- mcp >= 0.1.0
- openai >= 1.0.0
- python-dotenv >= 1.0.0
👥 Автор
Проект создан как демонстрация интеграции MCP с AI агентами.