[project]
name = "ontario-data-mcp"
version = "0.2.2"
description = "MCP server for searching, downloading, and analyzing datasets from Ontario open data portals (Ontario, Toronto, Ottawa, Waterloo, Kitchener, Region of Waterloo)"
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
authors = [
    { name = "A. Mathur" },
]
keywords = ["mcp", "open-data", "ontario", "toronto", "ottawa", "waterloo", "kitchener", "duckdb", "ckan"]
classifiers = [
    "Development Status :: 4 - Beta",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Scientific/Engineering :: Information Analysis",
    "Topic :: Database",
]
dependencies = [
    "fastmcp>=3.0.0",
    "httpx>=0.27.0",
    "duckdb>=1.5.0",
    "pandas>=2.2.0",
    "openpyxl>=3.1.0",
    "geopandas>=1.0.0",
    "shapely>=2.0.0"
]

[project.urls]
Homepage = "https://sprine.github.io/ontario-data-mcp/"
Repository = "https://github.com/sprine/ontario-data-mcp"
Documentation = "https://github.com/sprine/ontario-data-mcp#readme"
Changelog = "https://github.com/sprine/ontario-data-mcp/blob/main/CHANGELOG.md"
Issues = "https://github.com/sprine/ontario-data-mcp/issues"

[project.scripts]
ontario-data-mcp = "ontario_data.__main__:main"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/ontario_data"]

[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
markers = [
    "live: hits real APIs (deselected by default, run with --live)",
]

[dependency-groups]
dev = [
    "pytest>=8.0",
    "pytest-asyncio>=0.24.0",
    "pytest-httpx>=0.34.0",
    "respx>=0.22.0"
]
