[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "gmc-mcp" version = "0.2.5" description = "MCP server for Google Merchant Center on Merchant API v1. MIT-licensed, pip install-able, 126 tools across 19 modules with audit log, rollback, and dry-run." readme = "README.md" requires-python = ">=3.10" license = { text = "MIT" } authors = [{ name = "eric.eom", email = "eric.eom@gmail.com" }] keywords = [ "mcp", "model-context-protocol", "gmc", "google-merchant-center", "google-merchant-center-mcp", "merchant-api", "merchant-center", "google-shopping", "google-shopping-ads", "shopping-ads", "free-listings", "ecommerce", "shopify", "claude", "claude-desktop", "anthropic", "llm-tools", "agent-tools", ] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP", "Topic :: Office/Business", "Topic :: Software Development :: Libraries", "Typing :: Typed", ] dependencies = [ "mcp>=1.2.0", "google-auth>=2.30.0", "google-auth-oauthlib>=1.2.0", "httpx>=0.27.0", "pydantic>=2.7.0", "python-dotenv>=1.0.1", "click>=8.1.0", ] [project.optional-dependencies] test = [ "pytest>=8.0", "pytest-cov>=5.0", "pytest-asyncio>=0.23", "respx>=0.21", ] dev = [ "ruff>=0.8", "mypy>=1.10", "pre-commit>=3.7", "build>=1.2", ] [project.urls] Homepage = "https://github.com/kiwoongeom/gmc-mcp" Documentation = "https://github.com/kiwoongeom/gmc-mcp#readme" Repository = "https://github.com/kiwoongeom/gmc-mcp" Issues = "https://github.com/kiwoongeom/gmc-mcp/issues" Changelog = "https://github.com/kiwoongeom/gmc-mcp/blob/main/CHANGELOG.md" [project.scripts] gmc-mcp = "gmc_mcp.cli:main" [tool.hatch.build.targets.wheel] packages = ["src/gmc_mcp"] [tool.hatch.build.targets.sdist] include = [ "/src", "/tests", "/examples", "/README.md", "/CHANGELOG.md", "/CONTRIBUTING.md", "/LICENSE", "/pyproject.toml", ] [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "SIM", "RUF"] ignore = ["E501"] # handled by formatter [tool.mypy] python_version = "3.10" strict = false warn_unused_ignores = true warn_redundant_casts = true no_implicit_optional = true check_untyped_defs = true ignore_missing_imports = true [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-ra --strict-markers" asyncio_mode = "auto"