- MCP Server - Test Project
MCP Server - Test Project
MCP Server - Test Project
Описание
MCP сервер, который получает:
- Текущий курс доллара.
- Прогноз погоды в заданном городе.
- Текущую погоду в заданном городе.
- Сводку новостей за последнюю неделю.
Вся информация предоставляется через API и результат выводится в формате JSON.
Структура проекта
Проект состоит из нескольких основных файлов и папок:
app/: Основная папка с приложением.currency.py: Логика для получения курса валют.main.py: Основной сервер с FastAPI.news.py: Логика для получения новостей.weather.py: Логика для получения прогноза погоды.
tests/: Папка с тестами для проверки работы приложения.test_currency.py: Тесты для работы с курсом валют.test_news.py: Тесты для работы с новостями.test_weather.py: Тесты для работы с прогнозом погоды.
requirements.txt: Список зависимостей проекта..gitignore: Файл, который игнорирует временные и системные файлы.pytest.ini: Конфигурация для Pytest.
Установка
Для установки и запуска проекта выполните следующие шаги:
- Клонируйте репозиторий:
git clone https://github.com/nemono0ne/test_mcp_server.git
- Зайдите в папку:
cd test_mcp_server
- Создайте и активируйте виртуальное окружение:
python -m venv .venv
.\.venv\Scripts\activate # для Windows
source .venv/bin/activate # для Linux/Mac
- Установите зависимости:
pip install -r requirements.txt
5.Запустите сервер:
uvicorn app.main:app --reload
Использование API
Swagger UI доступен по адресу:
http://127.0.0.1:8000/docs
Через Swagger UI вы можете протестировать все доступные эндпоинты, такие как:
GET /currency — Получение текущего курса доллара.GET /weather/{city_name} — Получение текущей погоды для заданного города.GET /forecast/{city_name} — Получение прогноза погоды для заданного города.GET /news — Получение новостей за последнюю неделю.
Примечания
-
Бесплатные API: В проекте используются временные бесплатные API для получения данных о курсе доллара, погоде и новостях. Эти API могут перестать работать в любое время, так как предоставляются без обязательства поддержки.
- Для погоды используется API с сайта OpenWeatherMap. Если API перестанет работать, вы можете зарегистрироваться на сайте и получить собственный API-ключ, который можно заменить в проекте.
- Для новостей используется API с сайта NewsAPI. Аналогично, если API перестанет работать, зарегистрируйтесь на сайте, получите ключ и обновите его в проекте.
Важные моменты при тестировании погоды
-
Город: Убедитесь, что название города указано правильно, лучше на английском языке.
-
Примеры запросов:
GET /weather/MoscowGET /weather/New YorkGET /weather/Paris
-
Ошибки: Если город не найден, проверьте правильность написания, особенно для городов с пробелами или специальными символами.
-
Прогноз и погода: Для текущей погоды используйте
GET /weather/{city_name}, а для прогноза —GET /forecast/{city_name}.