[project]
name = "filmladder-mcp"
version = "0.1.0"
description = "MCP server for Filmladder movie listings and recommendations in Amsterdam"
authors = [
{name = "Daniel Steman"}
]
readme = "README.md"
requires-python = "^3.11"
dependencies = [
"mcp (>=1.22.0,<2.0.0)",
"beautifulsoup4 (>=4.14.2,<5.0.0)",
"httpx (>=0.28.1,<0.29.0)",
"lxml (>=6.0.2,<7.0.0)",
"pydantic (>=2.12.5,<3.0.0)",
"pydantic-settings (>=2.12.0,<3.0.0)"
]
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
[dependency-groups]
dev = [
"ruff (>=0.14.6,<0.15.0)",
"black (>=25.11.0,<26.0.0)",
"mypy (>=1.18.2,<2.0.0)",
"pre-commit (>=4.5.0,<5.0.0)",
"pytest (>=9.0.1,<10.0.0)",
"pytest-asyncio (>=1.3.0,<2.0.0)"
]
[tool.black]
line-length = 100
target-version = ['py311']
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP"]
ignore = []
[tool.mypy]
python_version = "3.11"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
no_implicit_optional = true
strict_optional = true
strict_equality = true
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
asyncio_mode = "auto"