MCP Server logo

MCP Server

by aquental

This is a Weather MCP (Model Context Protocol) server implemented in Python. It provides an interface for accessing weather-related data.

View on GitHub

Last updated: N/A

MCP Server

Weather MCP server in python

docs

python-sdk

# Create a new directory for our project
uv init

# Create virtual environment and activate it
uv venv
source .venv/bin/activate

# Install dependencies
uv add "mcp[cli]" httpx

# Create our server file
touch weather.py

Testing

This project includes a comprehensive test suite for the weather service API. The tests use pytest and pytest-asyncio to test the asynchronous functions that interact with the National Weather Service API.

Test Requirements

  • Python 3.12+
  • pytest
  • pytest-asyncio
  • pytest-cov
  • httpx

Installing Development Dependencies

You can install all development dependencies using:

# Using uv
uv pip install -e ".[dev]"

# Or using pip
pip install -e ".[dev]"

Running the Tests

To run the tests:

# Run all tests
pytest

# Run with verbose output
pytest -v

# Run with code coverage
pytest --cov=weather

Test Coverage

The test suite covers:

  1. Unit Tests for Helper Functions

    • format_alert function for formatting alert data
    • Error handling in make_nws_request
  2. API Function Tests

    • get_alerts: Testing successful retrieval, empty results, and API failures
    • get_forecast: Testing successful forecast retrieval and error handling for both API endpoints
  3. Mock Responses

    • All HTTP requests are mocked using httpx.AsyncMock
    • Multiple test scenarios with different API responses

Continuous Integration

When adding new features to the weather service, please ensure all tests pass by running the test suite before submitting changes.

MCP Server - MCP Server | MCP Directory