Skip to main content
Glama

MCP-Server

MCP-Server — это небольшое рабочее пространство на Python, построенное на базе сервера FastMCP. Основной пакет находится в my-mcp/ и предоставляет сервер под названием DataTools, который объединяет локальные данные о погоде из SQLite с инструментами для работы с криптовалютами в реальном времени от CoinGecko.

Что включено

  • Инструменты MCP для запроса показаний погоды и расчета средних значений из локальной базы данных

  • Инструменты MCP для получения цен на криптовалюты и списка топовых монет от CoinGecko

  • Динамический ресурс MCP по адресу weather://latest

  • Промпт для сводки погоды для рабочих процессов LLM на стороне клиента

  • Постоянное хранилище SQLite с моделями SQLAlchemy и миграциями Alembic

  • Поддержка Docker для запуска сервера в контейнере

Related MCP server: Weather Service MCP Server

Структура репозитория

.
├── Dockerfile
├── pyproject.toml
├── uv.lock
└── my-mcp/
    ├── alembic.ini
    ├── migrations/
    ├── data/
    ├── pyproject.toml
    ├── README.md
    └── src/my_mcp/
        ├── server.py
        └── db/

Требования

  • Python 3.14

  • uv

Настройка

Установите зависимости из корня рабочего пространства:

uv sync

Сервер использует переменные окружения из .env, если они доступны. Наиболее важные из них:

  • HOST — адрес привязки для MCP-сервера, например 0.0.0.0

  • PORT — порт SSE, например 8080

  • DB_PATH — путь к базе данных SQLite, по умолчанию data/app.db

База данных

Схема базы данных управляется с помощью Alembic и хранится в SQLite.

Запустите миграции из каталога пакета:

cd my-mcp
uv run alembic upgrade head

Если вам нужны примеры данных, вы можете заполнить базу данных с помощью:

cd my-mcp
uv run python -m my_mcp.db.seed

Локальный запуск

Запустите сервер из корня репозитория:

uv run --package my-mcp my-mcp

По умолчанию сервер работает через SSE и прослушивает хост и порт, определенные в HOST и PORT.

Docker

Соберите образ:

docker build -t mcp-server .

Запустите его:

docker run --rm -p 8080:8080 -e HOST=0.0.0.0 -e PORT=8080 -e DB_PATH=data/app.db mcp-server

Инструменты и ресурсы MCP

Инструменты

  • readings_for_city(city, hours=6) — возвращает последние показания погоды для города

  • average_temp(city, hours=6) — возвращает среднюю температуру для города

  • get_crypto_price(coin_id="bitcoin") — возвращает цену, рыночную капитализацию и изменение за 24 часа для монеты

  • get_top_coins(limit=5) — возвращает топовые криптовалюты по рыночной капитализации

Ресурс

  • weather://latest — возвращает самое последнее показание погоды в базе данных

Промпт

  • weather_summary(city, hours=6) — подготавливает краткий промпт со сводкой погоды для клиента или LLM

Конфигурация клиента

Для клиентов на базе SSE укажите URL работающего сервера, например:

http://localhost:8080/sse

Для Claude Desktop или аналогичных инструментов используйте конфигурацию на основе команд, которая запускает uv run --package my-mcp my-mcp из этого репозитория.

Примечания

  • Инструменты для работы с криптовалютами вызывают публичный API CoinGecko, поэтому требуется доступ в интернет.

  • Файл базы данных создается автоматически, если он не существует.

  • Alembic уже настроен на использование sqlite:///./data/app.db внутри my-mcp/alembic.ini.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server for managing and persisting notes, offering CRUD operations, note summarization, and resource-based access via a note:// URI scheme.
    4
    7
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Claude-compatible MCP server that enables storing and summarizing notes through a simple note storage system with custom URI scheme.
    5
    -
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A simple notes system that allows creating, storing, and accessing text notes through MCP resources and tools, with built-in prompt support for generating summaries of stored notes.
    -