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/Moscow
GET /weather/New York
GET /weather/Paris
Ошибки : Если город не найден, проверьте правильность написания, особенно для городов с пробелами или специальными символами.
Прогноз и погода : Для текущей погоды используйте GET /weather/{city_name}
, а для прогноза — GET /forecast/{city_name}
.