[project]
name = "sf-permits-mcp"
version = "0.1.0"
description = "MCP server exposing San Francisco public permitting data to Claude"
readme = "README.md"
requires-python = ">=3.11"
license = {text = "MIT"}
authors = [{name = "Tim Brenneman"}]
dependencies = [
"mcp[cli]>=1.26.0",
"httpx>=0.27.0",
"duckdb>=1.1.0",
"pypdf>=4.0.0",
"psycopg2-binary>=2.9.0",
"anthropic>=0.40.0",
"pdf2image>=1.17.0",
"Pillow>=10.0.0",
"openai>=1.0.0",
"gevent>=24.0.0",
"posthog>=3.0.0",
"redis>=5.0.0",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.23",
"playwright>=1.40.0",
"fakeredis>=2.20.0",
"pyyaml>=6.0",
]
web = [
"flask>=3.1.0",
"markdown>=3.10.0",
"gunicorn>=23.0.0",
]
[build-system]
requires = ["setuptools>=75.0"]
build-backend = "setuptools.build_meta"
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
markers = [
"network: tests that require network access (SODA API, external services)",
]